avcodec/h264_refs: Detect more random access points which are not marked
authorMichael Niedermayer <michael@niedermayer.cc>
Tue, 14 Aug 2018 15:12:50 +0000 (17:12 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Sun, 2 Sep 2018 22:01:32 +0000 (00:01 +0200)
Fixes: nature_360-7501616eb5eafca5-1111.mp4

Reported-by: Thierry Foucu <tfoucu@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavcodec/h264_refs.c

index 976044c..26711c0 100644 (file)
@@ -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){