X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fh264_refs.c;h=efd65f2fcec8029f0f6d9a21b3909ec241ebd183;hb=e9a2ffa117f560c0899c7a3bb373e908ae03d285;hp=0e00c4f94b94c407183110bfc8f132145d19d93a;hpb=b81f8880e010ccdef3604d9beb681d3c4c6a7bc0;p=ffmpeg diff --git a/libavcodec/h264_refs.c b/libavcodec/h264_refs.c index 0e00c4f94b9..efd65f2fcec 100644 --- a/libavcodec/h264_refs.c +++ b/libavcodec/h264_refs.c @@ -654,7 +654,13 @@ int ff_h264_execute_ref_pic_marking(H264Context *h, MMCO *mmco, int mmco_count){ print_short_term(h); print_long_term(h); - return h->s.avctx->error_recognition >= FF_ER_EXPLODE ? err : 0; + + if(err >= 0 && h->long_ref_count==0 && h->short_ref_count<=2 && h->pps.ref_count[0]<=1 && s->current_picture_ptr->f.pict_type == AV_PICTURE_TYPE_I){ + h->sync |= 1; + s->current_picture_ptr->sync |= h->sync; + } + + return (h->s.avctx->err_recognition & AV_EF_EXPLODE) ? err : 0; } int ff_h264_decode_ref_pic_marking(H264Context *h, GetBitContext *gb){