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:

Decode error

Drain on end of stream

Fatal decode error

Internal seek to random access point

Demux to complete internal seek

Decode to complete internal seek

Drain of stream before stream change

Skip video demux to next key frame

Drain when waiting for more data

Demux

Decode