mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +08:00

This is required before we can move CEA-6/708 parsing from the rendering side of the sample queue to the extraction side. This re-ordering is needed for video encodings with different decoder and presentation orders, because the CEA-6/708 data is attached to each frame and needs to be processed in presentation order instead of decode order. This change re-orders frames within a group-of-pictures, but also takes advantage of `maxNumReorderFrames/Pics` values to cap the size of the re-ordering queue, allowing caption data to be released 'earlier' than the end of a GoP. Annex D of the CEA-708 spec (which also applies for CEA-608 embedded in SEI messages), makes the need to re-order from decode to presentation order clear. PiperOrigin-RevId: 648648002