1
0
Fork 0
firefox/dom/media/docs/MediaFormatReader.md
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

47 lines
1.5 KiB
Markdown

# MediaFormatReader
The `MediaFormatReader` obtains from a media resource decoded samples intended
for forward playback.
`MediaFormatReader::Update()` manages transitions between multiple states.
The key transitions are captured in the diagram below:
```{mermaid}
stateDiagram-v2
DecodeError : Decode error
EOSDrain : Drain on end of stream
FatalDecodeError : Fatal decode error
InternalSeek : Internal seek to random access point
InternalSeekDemux : Demux to complete internal seek
InternalSeekDecode : Decode to complete internal seek
StreamChangeDrain : Drain of stream before stream change
VideoSkip : Skip video demux to next key frame
WaitingDrain : Drain when waiting for more data
[*] --> Demux
Demux --> Decode
Demux --> WaitingDrain
Demux --> StreamChangeDrain
Demux --> EOSDrain
Decode --> Demux
Decode --> DecodeError
Decode --> VideoSkip
DecodeError --> FatalDecodeError
DecodeError --> InternalSeek
DecodeError --> VideoSkip
WaitingDrain --> InternalSeek
WaitingDrain --> DecodeError
StreamChangeDrain --> Decode
StreamChangeDrain --> InternalSeek
StreamChangeDrain --> DecodeError
InternalSeek --> InternalSeekDemux
InternalSeekDemux --> InternalSeekDecode
InternalSeekDemux --> VideoSkip
InternalSeekDecode --> InternalSeekDemux
InternalSeekDecode --> VideoSkip
InternalSeekDecode --> Demux
VideoSkip --> Demux
VideoSkip --> DecodeError
FatalDecodeError --> [*]
EOSDrain --> [*]
```