Bug 227865

Summary: [MSE] SourceBuffer.appendState is only ever WaitingForSegment
Product: WebKit Reporter: Jean-Yves Avenard [:jya] <jean-yves.avenard>
Component: MediaAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   

Description Jean-Yves Avenard [:jya] 2021-07-11 20:04:14 PDT
Per MSE spec, a source buffer has a parsing state attribute that can be of any 3 values: WAITING_FOR_SEGMENT, PARSING_INIT_SEGMENT, PARSING_MEDIA_SEGMENT
https://w3c.github.io/media-source/#sourcebuffer-segment-parser-loop

This internal state is used to safeguard incorrectly calling SourceBuffer.setAppendMode [1] or modifying SourceBuffer.timeStampOffset [2] while we're in the middle of processing a media segment and to throw an exception if we are.
https://w3c.github.io/media-source/#dom-sourcebuffer-mode
https://w3c.github.io/media-source/#dom-sourcebuffer-timestampoffset


However, in the current code, SourceBuffer::m_appendState is only ever set to AppendStateType::WaitingForSegment

The state value should be updated in the Segment Parser Loop that is handled by SourceBufferPrivate but isn't.
Comment 1 Radar WebKit Bug Importer 2021-07-11 20:04:33 PDT
<rdar://problem/80445668>