From b024824bed68de5c1c5162c042e2607e0d37ab57 Mon Sep 17 00:00:00 2001 From: Kostya Shishkov Date: Mon, 29 Jan 2007 14:23:00 +0000 Subject: Fix BI-frames decoding for Adv. profile Originally committed as revision 7758 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/vc1.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'libavcodec/vc1.c') diff --git a/libavcodec/vc1.c b/libavcodec/vc1.c index 40b79b3262..5649484a9f 100644 --- a/libavcodec/vc1.c +++ b/libavcodec/vc1.c @@ -1834,7 +1834,7 @@ static int vc1_parse_frame_header_adv(VC1Context *v, GetBitContext* gb) } /* DC Syntax */ v->s.dc_table_index = get_bits(gb, 1); - if (v->s.pict_type == I_TYPE && v->dquant) { + if ((v->s.pict_type == I_TYPE || v->s.pict_type == BI_TYPE) && v->dquant) { av_log(v->s.avctx, AV_LOG_DEBUG, "VOP DQuant info\n"); vop_dquant_decoding(v); } @@ -4083,9 +4083,12 @@ static void vc1_decode_blocks(VC1Context *v) vc1_decode_p_blocks(v); break; case B_TYPE: - if(v->bi_type) - vc1_decode_i_blocks(v); - else + if(v->bi_type){ + if(v->profile == PROFILE_ADVANCED) + vc1_decode_i_blocks_adv(v); + else + vc1_decode_i_blocks(v); + }else vc1_decode_b_blocks(v); break; } -- cgit v1.2.3