Title: [209469] trunk/Source/WebCore
Revision
209469
Author
jer.no...@apple.com
Date
2016-12-07 12:32:39 -0800 (Wed, 07 Dec 2016)

Log Message

ASSERT crash while running media-source/mediasource-activesourcebuffers.html under Stress GC bot.
https://bugs.webkit.org/show_bug.cgi?id=165514

Reviewed by Eric Carlson.

If a track associated with MSE is disabled after a SourceBuffer begins parsing a queued
append operation, SourceBuffer can get into a state where it asks SourceBufferPrivateAVFObjC
if it is ready to accept data for that disabled track. This causes an ASSERT_NOT_REACHED in
isReadyForMoreData().

However, this seems to be a valid condition; we can safely just return "false" from
isReadyForMoreSamples() (and also bail from notifyClientWhenReadyForMoreSamples()) when asked
about a disabled track.

* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::isReadyForMoreSamples):
(WebCore::SourceBufferPrivateAVFObjC::notifyClientWhenReadyForMoreSamples):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (209468 => 209469)


--- trunk/Source/WebCore/ChangeLog	2016-12-07 20:29:55 UTC (rev 209468)
+++ trunk/Source/WebCore/ChangeLog	2016-12-07 20:32:39 UTC (rev 209469)
@@ -1,3 +1,23 @@
+2016-12-07  Jer Noble  <jer.no...@apple.com>
+
+        ASSERT crash while running media-source/mediasource-activesourcebuffers.html under Stress GC bot.
+        https://bugs.webkit.org/show_bug.cgi?id=165514
+
+        Reviewed by Eric Carlson.
+
+        If a track associated with MSE is disabled after a SourceBuffer begins parsing a queued
+        append operation, SourceBuffer can get into a state where it asks SourceBufferPrivateAVFObjC
+        if it is ready to accept data for that disabled track. This causes an ASSERT_NOT_REACHED in
+        isReadyForMoreData().
+
+        However, this seems to be a valid condition; we can safely just return "false" from
+        isReadyForMoreSamples() (and also bail from notifyClientWhenReadyForMoreSamples()) when asked
+        about a disabled track.
+
+        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
+        (WebCore::SourceBufferPrivateAVFObjC::isReadyForMoreSamples):
+        (WebCore::SourceBufferPrivateAVFObjC::notifyClientWhenReadyForMoreSamples):
+
 2016-12-07  Dave Hyatt  <hy...@apple.com>
 
         [CSS Parser] Eliminate the Scope class and fold it into CSSTokenizer

Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm (209468 => 209469)


--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm	2016-12-07 20:29:55 UTC (rev 209468)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm	2016-12-07 20:32:39 UTC (rev 209469)
@@ -965,8 +965,6 @@
         return [m_displayLayer isReadyForMoreMediaData];
     else if (m_audioRenderers.contains(trackID))
         return [m_audioRenderers.get(trackID) isReadyForMoreMediaData];
-    else
-        ASSERT_NOT_REACHED();
 
     return false;
 }
@@ -1030,8 +1028,7 @@
         [m_audioRenderers.get(trackID) requestMediaDataWhenReadyOnQueue:dispatch_get_main_queue() usingBlock:^{
             didBecomeReadyForMoreSamples(trackID);
         }];
-    } else
-        ASSERT_NOT_REACHED();
+    }
 }
 
 }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to