mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-02-04 06:08:26 +02:00
avcodec/h264dec: Properly mark frames as recovered when draining
When decoding starts at a SEI recovery point very shortly before the end of the video stream, there can be frames which are decoded before the recovery point's frame is output and which will only be output once the draining has started. Previously, these frames would never be set as recovered. This commit copies the logic from h264_select_output_frame to send_next_delayed_frame to properly mark such frames as recovered. Fixes ticket #10936. Signed-off-by: arch1t3cht <arch1t3cht@gmail.com> Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
This commit is contained in:
parent
6b6a0fc53d
commit
5a856ac6e6
@ -1014,6 +1014,9 @@ static int send_next_delayed_frame(H264Context *h, AVFrame *dst_frame,
|
||||
h->delayed_pic[i] = h->delayed_pic[i + 1];
|
||||
|
||||
if (out) {
|
||||
h->frame_recovered |= out->recovered;
|
||||
out->recovered |= h->frame_recovered & FRAME_RECOVERED_SEI;
|
||||
|
||||
out->reference &= ~DELAYED_PIC_REF;
|
||||
ret = finalize_frame(h, dst_frame, out, got_frame);
|
||||
if (ret < 0)
|
||||
|
Loading…
x
Reference in New Issue
Block a user