Changeset 256856 in webkit


Ignore:
Timestamp:
Feb 18, 2020 2:52:38 PM (4 years ago)
Author:
Peng Liu
Message:

MediaSource.isTypeSupported() says "video/mp4;codecs=\"avc3.42C015\"" is not supported, but it is
https://bugs.webkit.org/show_bug.cgi?id=207622

Reviewed by Eric Carlson.

Revert the behavior change of MediaPlayerPrivateMediaSourceAVFObjC::supportsType() in r253952.

  • platform/graphics/avfoundation/objc/AVAssetMIMETypeCache.mm:

(WebCore::AVAssetMIMETypeCache::canDecodeExtendedType):

Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r256853 r256856  
     12020-02-18  Peng Liu  <peng.liu6@apple.com>
     2
     3        MediaSource.isTypeSupported() says "video/mp4;codecs=\"avc3.42C015\"" is not supported, but it is
     4        https://bugs.webkit.org/show_bug.cgi?id=207622
     5
     6        Reviewed by Eric Carlson.
     7
     8        Revert the behavior change of MediaPlayerPrivateMediaSourceAVFObjC::supportsType() in r253952.
     9
     10        * platform/graphics/avfoundation/objc/AVAssetMIMETypeCache.mm:
     11        (WebCore::AVAssetMIMETypeCache::canDecodeExtendedType):
     12
    1132020-02-18  Antti Koivisto  <antti@apple.com>
    214
  • trunk/Source/WebCore/platform/graphics/avfoundation/objc/AVStreamDataParserMIMETypeCache.mm

    r256828 r256856  
    6060    ASSERT(isAvailable());
    6161
    62     String outputCodecs = type.parameter(ContentType::codecsParameter());
    63     ASSERT(!outputCodecs.isEmpty());
    64     if ([PAL::getAVStreamDataParserClass() respondsToSelector:@selector(outputMIMECodecParameterForInputMIMECodecParameter:)])
    65         outputCodecs = [PAL::getAVStreamDataParserClass() outputMIMECodecParameterForInputMIMECodecParameter:outputCodecs];
    66 
    67     String extendedType = makeString(type.containerType(), "; codecs=\"", outputCodecs, "\"");
    6862    if ([PAL::getAVStreamDataParserClass() respondsToSelector:@selector(canParseExtendedMIMEType:)])
    69         return [PAL::getAVStreamDataParserClass() canParseExtendedMIMEType:extendedType];
     63        return [PAL::getAVStreamDataParserClass() canParseExtendedMIMEType:type.raw()];
    7064
    7165    // FIXME(rdar://50502771) AVStreamDataParser does not have an -canParseExtendedMIMEType: method on this system,
  • trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm

    r256828 r256856  
    254254        return MediaPlayer::SupportsType::IsNotSupported;
    255255
     256    String extendedType = parameters.type.raw();
     257    String outputCodecs = parameters.type.parameter(ContentType::codecsParameter());
     258    if (!outputCodecs.isEmpty() && [PAL::getAVStreamDataParserClass() respondsToSelector:@selector(outputMIMECodecParameterForInputMIMECodecParameter:)]) {
     259        outputCodecs = [PAL::getAVStreamDataParserClass() outputMIMECodecParameterForInputMIMECodecParameter:outputCodecs];
     260        extendedType = makeString(parameters.type.containerType(), "; codecs=\"", outputCodecs, "\"");
     261    }
     262
    256263    auto supported = MediaPlayer::SupportsType::IsNotSupported;
    257264    auto& streamDataParserCache = AVStreamDataParserMIMETypeCache::singleton();
    258265    if (streamDataParserCache.isAvailable())
    259         supported = streamDataParserCache.canDecodeType(parameters.type.raw());
     266        supported = streamDataParserCache.canDecodeType(extendedType);
    260267    else {
    261268        auto& assetCache = AVAssetMIMETypeCache::singleton();
    262269        if (assetCache.isAvailable())
    263             supported = assetCache.canDecodeType(parameters.type.raw());
     270            supported = assetCache.canDecodeType(extendedType);
    264271    }
    265272
Note: See TracChangeset for help on using the changeset viewer.