diff options
author | Michael Niedermayer <michael@niedermayer.cc> | 2023-10-02 18:32:33 +0200 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2023-11-20 00:12:30 +0100 |
commit | 68e1cf204aa62141c8e93bfad1787102b06ce594 (patch) | |
tree | 716feb30a3af1df3864740fb10bbb1e3fc7d8b88 /libavcodec | |
parent | 3f4a1a24a5f74784c182ef3e1a59b85119749472 (diff) | |
download | ffmpeg-68e1cf204aa62141c8e93bfad1787102b06ce594.tar.gz |
avcodec/h264: Use FRAME_RECOVERED_HEURISTIC instead of IDR/SEI
This keeps IDR/SEI and heuristically detected recovery points cleaner seperated
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/h264_refs.c | 4 | ||||
-rw-r--r-- | libavcodec/h264dec.h | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/libavcodec/h264_refs.c b/libavcodec/h264_refs.c index 25e521dafc..92778e737a 100644 --- a/libavcodec/h264_refs.c +++ b/libavcodec/h264_refs.c @@ -822,9 +822,9 @@ int ff_h264_execute_ref_pic_marking(H264Context *h) || pps_ref_count[0] <= 1 + (h->picture_structure != PICT_FRAME) && pps_ref_count[1] <= 1) && pps_ref_count[0]<=2 + (h->picture_structure != PICT_FRAME) + (2*!h->has_recovery_point) && h->cur_pic_ptr->f->pict_type == AV_PICTURE_TYPE_I){ - h->cur_pic_ptr->recovered |= FRAME_RECOVERED_IDR; + h->cur_pic_ptr->recovered |= FRAME_RECOVERED_HEURISTIC; if(!h->avctx->has_b_frames) - h->frame_recovered |= FRAME_RECOVERED_SEI; + h->frame_recovered |= FRAME_RECOVERED_HEURISTIC; } out: diff --git a/libavcodec/h264dec.h b/libavcodec/h264dec.h index 5ce3a6be73..b0c54ad82f 100644 --- a/libavcodec/h264dec.h +++ b/libavcodec/h264dec.h @@ -519,6 +519,10 @@ typedef struct H264Context { * so all the following frames in presentation order are correct. */ #define FRAME_RECOVERED_SEI (1 << 1) +/** + * Recovery point detected by heuristic + */ +#define FRAME_RECOVERED_HEURISTIC (1 << 2) int frame_recovered; ///< Initial frame has been completely recovered |