diff options
author | Anton Khirnov <anton@khirnov.net> | 2024-06-21 12:03:40 +0200 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2024-08-19 21:37:22 +0200 |
commit | 4b9adb35b609b7acb591be0459cde07550fd4ebe (patch) | |
tree | 50e2825666db1c7fa62b8d04dff33929f18d4ad1 /libavcodec/rangecoder.h | |
parent | 79afc45c03abfb7f1d9dc2cc758ec162bfade1a0 (diff) | |
download | ffmpeg-4b9adb35b609b7acb591be0459cde07550fd4ebe.tar.gz |
lavc/hevcdec: simplify output logic
Current code is written around the "simple" decode API's limitation that
a single input packet (AU/coded frame) triggers the output of at most
one output frame. However the spec contains two cases where a coded
frame may cause multiple frames to be output (cf. C.5.2.2.2):
* start of a new sequence
* overflowing sps_max_dec_pic_buffering
The decoder currently contains rather convoluted logic to handle these
cases:
* decode/output/per-frame sequence counters,
* HEVC_FRAME_FLAG_BUMPING
* ff_hevc_bump_frame()
* special clauses in ff_hevc_output_frame()
However, with the receive_frame() API none of that is necessary, as we
can just output multiple frames at once. Previously added ContainerFifo
allows that to be done in a straightforward and efficient manner.
Diffstat (limited to 'libavcodec/rangecoder.h')
0 files changed, 0 insertions, 0 deletions