Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 12dd6bd4eb2d527989f4502c701e01f5121e8d75 https://github.com/WebKit/WebKit/commit/12dd6bd4eb2d527989f4502c701e01f5121e8d75 Author: Timothy Hatcher <timo...@apple.com> Date: 2024-02-09 (Fri, 09 Feb 2024)
Changed paths: A LayoutTests/http/tests/media/fairplay/content/elementary-stream-video-keyid-1.ts A LayoutTests/http/tests/media/fairplay/fps-mse-unmuxed-mpts-expected.txt A LayoutTests/http/tests/media/fairplay/fps-mse-unmuxed-mpts.html M LayoutTests/platform/mac/TestExpectations M Source/WTF/wtf/PlatformHave.h M Source/WebCore/platform/graphics/avfoundation/CDMFairPlayStreaming.cpp M Source/WebCore/platform/graphics/avfoundation/CDMFairPlayStreaming.h M Source/WebCore/platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm M Source/WebCore/platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm M Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm Log Message: ----------- [Cocoa] EME with encrypted MPEG2-TS fails to begin playback https://bugs.webkit.org/show_bug.cgi?id=268948 rdar://122030589 Reviewed by Andy Estes. When encrypted samples are parsed from containers by AVStreamDataParser, those samples have their associated initialization data attached to their CMFormatDescription as extensions. WebKit then reads those initialization data from the format description to determine the keyID needed to decrypt that key. For MPEG2-TS files, the initialization data is stored in a different key/value pair. Explicitly support this initData type as 'mpts'. * LayoutTests/http/tests/media/fairplay/content/elementary-stream-video-keyid-1.ts: Added. * LayoutTests/http/tests/media/fairplay/fps-mse-unmuxed-mpts.html: Added. * Source/WebCore/platform/graphics/avfoundation/CDMFairPlayStreaming.cpp: (WebCore::CDMPrivateFairPlayStreaming::extractKeyIDsSinf): (WebCore::CDMPrivateFairPlayStreaming::mptsName): (WebCore::CDMPrivateFairPlayStreaming::extractKeyIDsMpts): (WebCore::CDMPrivateFairPlayStreaming::sanitizeMpts): (WebCore::CDMPrivateFairPlayStreaming::mptsKeyIDs): (WebCore::validInitDataTypes): (WebCore::CDMFactory::platformRegisterFactories): (WebCore::CDMPrivateFairPlayStreaming::supportsInitData const): * Source/WebCore/platform/graphics/avfoundation/CDMFairPlayStreaming.h: * Source/WebCore/platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm: (WebCore::keyIDsForRequest): (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::requestLicense): * Source/WebCore/platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm: (WebCore::MediaSampleAVFObjC::commonInit): * Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: (WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID): Canonical link: https://commits.webkit.org/274351@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes