From b6661510459da787b6f04871b89d09256c809e1d Mon Sep 17 00:00:00 2001 From: Kostya Shishkov Date: Sun, 25 Mar 2007 06:00:06 +0000 Subject: [PATCH] 1000l to myself - get correct quantization for blocks 1 and 2 P.S. This condition could be also written as if(n==3 || n==(2-dc_pred_dir)) Originally committed as revision 8508 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/vc1.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libavcodec/vc1.c b/libavcodec/vc1.c index eac92368a..0c6c2026c 100644 --- a/libavcodec/vc1.c +++ b/libavcodec/vc1.c @@ -2954,7 +2954,9 @@ static int vc1_decode_i_block_adv(VC1Context *v, DCTELEM block[64], int n, int c q1 = s->current_picture.qscale_table[mb_pos]; if(dc_pred_dir && c_avail && mb_pos) q2 = s->current_picture.qscale_table[mb_pos - 1]; if(!dc_pred_dir && a_avail && mb_pos >= s->mb_stride) q2 = s->current_picture.qscale_table[mb_pos - s->mb_stride]; - if(n && n<4) q2 = q1; + if(dc_pred_dir && n==1) q2 = q1; + if(!dc_pred_dir && n==2) q2 = q1; + if(n==3) q2 = q1; if(coded) { int last = 0, skip, value; @@ -3159,7 +3161,9 @@ static int vc1_decode_intra_block(VC1Context *v, DCTELEM block[64], int n, int c q1 = s->current_picture.qscale_table[mb_pos]; if(dc_pred_dir && c_avail && mb_pos) q2 = s->current_picture.qscale_table[mb_pos - 1]; if(!dc_pred_dir && a_avail && mb_pos >= s->mb_stride) q2 = s->current_picture.qscale_table[mb_pos - s->mb_stride]; - if(n && n<4) q2 = q1; + if(dc_pred_dir && n==1) q2 = q1; + if(!dc_pred_dir && n==2) q2 = q1; + if(n==3) q2 = q1; if(coded) { int last = 0, skip, value; -- 2.11.0