summaryrefslogtreecommitdiff
path: root/libavcodec/h264_refs.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2018-08-14 17:12:50 +0200
committerMichael Niedermayer <michael@niedermayer.cc>2018-09-03 00:01:32 +0200
commitb544850a524f71dba9163d7b0606767ea2572412 (patch)
treebfed618cff6a217f830cf819bc20a5fcea245a31 /libavcodec/h264_refs.c
parenta73579c12d665531df9765c5b75aed5e12441d94 (diff)
avcodec/h264_refs: Detect more random access points which are not marked
Fixes: nature_360-7501616eb5eafca5-1111.mp4 Reported-by: Thierry Foucu <tfoucu@google.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavcodec/h264_refs.c')
-rw-r--r--libavcodec/h264_refs.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/libavcodec/h264_refs.c b/libavcodec/h264_refs.c
index 976044ce2c..26711c0d85 100644
--- a/libavcodec/h264_refs.c
+++ b/libavcodec/h264_refs.c
@@ -815,6 +815,7 @@ int ff_h264_execute_ref_pic_marking(H264Context *h)
if ( err >= 0
&& h->long_ref_count==0
&& ( h->short_ref_count<=2
+ || pps_ref_count[0] <= 2 && pps_ref_count[1] <= 1 && h->avctx->has_b_frames
|| 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){