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