summaryrefslogtreecommitdiff
path: root/libavcodec/vc1.c
diff options
context:
space:
mode:
authorKostya Shishkov <kostya.shishkov@gmail.com>2007-01-29 14:23:00 +0000
committerKostya Shishkov <kostya.shishkov@gmail.com>2007-01-29 14:23:00 +0000
commitb024824bed68de5c1c5162c042e2607e0d37ab57 (patch)
treec234a8be81566fcc225348a0263a0b094bd3f6b5 /libavcodec/vc1.c
parentd8b7b352a80787301ab246157c67b58fcfa0b26c (diff)
Fix BI-frames decoding for Adv. profile
Originally committed as revision 7758 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/vc1.c')
-rw-r--r--libavcodec/vc1.c11
1 files changed, 7 insertions, 4 deletions
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;
}