diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 19d83197ad..298faa69d8 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -3662,7 +3662,7 @@ static int decode_ref_pic_marking(H264Context *h, GetBitContext *gb){ }else{ assert(h->long_ref_count + h->short_ref_count <= h->sps.ref_frame_count); - if(h->long_ref_count + h->short_ref_count == h->sps.ref_frame_count && + if(h->short_ref_count && h->long_ref_count + h->short_ref_count == h->sps.ref_frame_count && !(FIELD_PICTURE && !s->first_field && s->current_picture_ptr->reference)) { h->mmco[0].opcode= MMCO_SHORT2UNUSED; h->mmco[0].short_pic_num= h->short_ref[ h->short_ref_count - 1 ]->frame_num;