Title: [281193] trunk/Source/WebCore
Revision
281193
Author
[email protected]
Date
2021-08-18 09:50:30 -0700 (Wed, 18 Aug 2021)

Log Message

REGRESSION(r280723): Protected HLS + EME playback fails with "temporary error"
https://bugs.webkit.org/show_bug.cgi?id=229201
<rdar://81807216>

Reviewed by Eric Carlson.

In r280723, we stopped unconditionally creating an AVPlayerLayer when we create an AVPlayer. However,
we will still create an AVPlayerItemVideoOutput when we create an AVPlayerItem. This leaves our
AVPlayer in a state where AVFoundation will throw a "temporary error; try again later" when given
an otherwise valid protected HLS stream and key data through EME.

To work around this behavior, delay creating the AVPlayerItemVideoOutput until explicitly told to
create video renderers, typically simultaneous to creating an AVPlayerLayer.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (281192 => 281193)


--- trunk/Source/WebCore/ChangeLog	2021-08-18 16:46:34 UTC (rev 281192)
+++ trunk/Source/WebCore/ChangeLog	2021-08-18 16:50:30 UTC (rev 281193)
@@ -1,3 +1,22 @@
+2021-08-18  Jer Noble  <[email protected]>
+
+        REGRESSION(r280723): Protected HLS + EME playback fails with "temporary error"
+        https://bugs.webkit.org/show_bug.cgi?id=229201
+        <rdar://81807216>
+
+        Reviewed by Eric Carlson.
+
+        In r280723, we stopped unconditionally creating an AVPlayerLayer when we create an AVPlayer. However,
+        we will still create an AVPlayerItemVideoOutput when we create an AVPlayerItem. This leaves our
+        AVPlayer in a state where AVFoundation will throw a "temporary error; try again later" when given
+        an otherwise valid protected HLS stream and key data through EME.
+
+        To work around this behavior, delay creating the AVPlayerItemVideoOutput until explicitly told to
+        create video renderers, typically simultaneous to creating an AVPlayerLayer.
+
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem):
+
 2021-08-18  Martin Robinson  <[email protected]>
 
         [css-scroll-snap] Don't snap to offscreen snap areas in unidirectional scrolls

Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm (281192 => 281193)


--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm	2021-08-18 16:46:34 UTC (rev 281192)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm	2021-08-18 16:50:30 UTC (rev 281193)
@@ -1160,8 +1160,6 @@
     }
 #endif
 
-    createVideoOutput();
-
     m_metadataCollector = adoptNS([PAL::allocAVPlayerItemMetadataCollectorInstance() initWithIdentifiers:nil classifyingLabels:nil]);
     [m_metadataCollector.get() setDelegate:m_objcObserver.get() queue:dispatch_get_main_queue()];
     [m_avPlayerItem.get() addMediaDataCollector:m_metadataCollector.get()];
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to