File: MediaFormatReader.md

package info (click to toggle)
firefox 148.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 4,719,656 kB
  • sloc: cpp: 7,618,171; javascript: 6,701,506; ansic: 3,781,787; python: 1,418,364; xml: 638,647; asm: 438,962; java: 186,285; sh: 62,885; makefile: 19,010; objc: 13,092; perl: 12,763; yacc: 4,583; cs: 3,846; pascal: 3,448; lex: 1,720; ruby: 1,003; php: 436; lisp: 258; awk: 247; sql: 66; sed: 54; csh: 10; exp: 6
file content (51 lines) | stat: -rw-r--r-- 1,662 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# 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}

%% Work around https://github.com/mermaid-js/mermaid/issues/5785 %%
%%{init: {"flowchart": {"htmlLabels": false}}}%%

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 --> [*]
```