Title: [264796] trunk/Source/WebCore
Revision
264796
Author
jer.no...@apple.com
Date
2020-07-23 15:21:05 -0700 (Thu, 23 Jul 2020)

Log Message

[Cocoa|WebM] Seeking can leave parser in hung state
https://bugs.webkit.org/show_bug.cgi?id=214704
<rdar://problem/66009420>

Reviewed by Eric Carlson.

When the parser is explicitly reset, make sure to clear out all the tracks and initialization datas. Otherwise, a half-filled
CMSampleBuffer can be left waiting around for more data, which may never arrive, and no further samples will ever be parsed.

* platform/graphics/cocoa/SourceBufferParserWebM.cpp:
(WebCore::SourceBufferParserWebM::resetParserState):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (264795 => 264796)


--- trunk/Source/WebCore/ChangeLog	2020-07-23 22:20:23 UTC (rev 264795)
+++ trunk/Source/WebCore/ChangeLog	2020-07-23 22:21:05 UTC (rev 264796)
@@ -1,5 +1,19 @@
 2020-07-23  Jer Noble  <jer.no...@apple.com>
 
+        [Cocoa|WebM] Seeking can leave parser in hung state
+        https://bugs.webkit.org/show_bug.cgi?id=214704
+        <rdar://problem/66009420>
+
+        Reviewed by Eric Carlson.
+
+        When the parser is explicitly reset, make sure to clear out all the tracks and initialization datas. Otherwise, a half-filled
+        CMSampleBuffer can be left waiting around for more data, which may never arrive, and no further samples will ever be parsed.
+
+        * platform/graphics/cocoa/SourceBufferParserWebM.cpp:
+        (WebCore::SourceBufferParserWebM::resetParserState):
+
+2020-07-23  Jer Noble  <jer.no...@apple.com>
+
         [Cocoa] RELEASE_ASSERT when calling registerSupplementalVP9Decoder() when VideoToolbox.framework is not present
         https://bugs.webkit.org/show_bug.cgi?id=214697
         <rdar://problem/66010949>

Modified: trunk/Source/WebCore/platform/graphics/cocoa/SourceBufferParserWebM.cpp (264795 => 264796)


--- trunk/Source/WebCore/platform/graphics/cocoa/SourceBufferParserWebM.cpp	2020-07-23 22:20:23 UTC (rev 264795)
+++ trunk/Source/WebCore/platform/graphics/cocoa/SourceBufferParserWebM.cpp	2020-07-23 22:21:05 UTC (rev 264796)
@@ -298,6 +298,10 @@
 {
     m_parser->DidSeek();
     m_state = State::None;
+    m_tracks.clear();
+    m_initializationSegment = nullptr;
+    m_initializationSegmentEncountered = false;
+    m_currentBlock.reset();
 }
 
 void SourceBufferParserWebM::invalidate()
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to