X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=libavcodec%2Fvc1.c;h=64884fcc500528faad1973873fc62ed55aa68693;hb=0bb57f8bf029427059be21a562527dcfa0e264c9;hp=775caa69f8e46dd807f3cefbe9bc07a405cf1b19;hpb=b955d4072e3e563b230c9ab4d6575577a3dc7314;p=ffmpeg diff --git a/libavcodec/vc1.c b/libavcodec/vc1.c index 775caa69f8e..64884fcc500 100644 --- a/libavcodec/vc1.c +++ b/libavcodec/vc1.c @@ -918,13 +918,15 @@ int vc1_parse_frame_header_adv(VC1Context *v, GetBitContext* gb) } goto parse_common_info; } - if (v->finterpflag) - v->interpfrm = get_bits1(gb); - if (v->s.pict_type == AV_PICTURE_TYPE_B) { - v->bfraction_lut_index = get_vlc2(gb, ff_vc1_bfraction_vlc.table, VC1_BFRACTION_VLC_BITS, 1); - v->bfraction = ff_vc1_bfraction_lut[v->bfraction_lut_index]; - if (v->bfraction == 0) { - v->s.pict_type = AV_PICTURE_TYPE_BI; /* XXX: should not happen here */ + if (v->fcm == PROGRESSIVE) { + if (v->finterpflag) + v->interpfrm = get_bits1(gb); + if (v->s.pict_type == AV_PICTURE_TYPE_B) { + v->bfraction_lut_index = get_vlc2(gb, ff_vc1_bfraction_vlc.table, VC1_BFRACTION_VLC_BITS, 1); + v->bfraction = ff_vc1_bfraction_lut[v->bfraction_lut_index]; + if (v->bfraction == 0) { + v->s.pict_type = AV_PICTURE_TYPE_BI; /* XXX: should not happen here */ + } } }