vc1: don't read the interpfrm and bfraction elements for interlaced frames

This matches the spec as well as the reference decoder, and fixes a bug
with interlaced frame decoding.

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
release/0.10
Hendrik Leppkes 13 years ago committed by Kostya Shishkov
parent 50a3f9a4bd
commit 7662a532fb
  1. 2
      libavcodec/vc1.c

@ -911,6 +911,7 @@ int vc1_parse_frame_header_adv(VC1Context *v, GetBitContext* gb)
} }
goto parse_common_info; goto parse_common_info;
} }
if (v->fcm == PROGRESSIVE) {
if (v->finterpflag) if (v->finterpflag)
v->interpfrm = get_bits1(gb); v->interpfrm = get_bits1(gb);
if (v->s.pict_type == AV_PICTURE_TYPE_B) { if (v->s.pict_type == AV_PICTURE_TYPE_B) {
@ -920,6 +921,7 @@ int vc1_parse_frame_header_adv(VC1Context *v, GetBitContext* gb)
v->s.pict_type = AV_PICTURE_TYPE_BI; /* XXX: should not happen here */ v->s.pict_type = AV_PICTURE_TYPE_BI; /* XXX: should not happen here */
} }
} }
}
parse_common_info: parse_common_info:
if (v->field_mode) if (v->field_mode)

Loading…
Cancel
Save