diff options
author | Juanjo <pulento@users.sourceforge.net> | 2002-02-19 19:23:34 +0000 |
---|---|---|
committer | Juanjo <pulento@users.sourceforge.net> | 2002-02-19 19:23:34 +0000 |
commit | 9e15ad28bdffc22789328c2e199b63147c8d1d3f (patch) | |
tree | 3bd178e0952cb5613c67ace43e4a76983cfc5b88 /libavcodec/i386/mpegvideo_mmx.c | |
parent | d140623fc44c67e8955c56c7cf74c56c94c0f064 (diff) | |
download | ffmpeg-9e15ad28bdffc22789328c2e199b63147c8d1d3f.tar.gz |
- Bug fixes in H.263+ Advanced INTRA Coding decoder.
- H.263+ should be able to decode streams with AIC now :)
Originally committed as revision 311 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/i386/mpegvideo_mmx.c')
-rw-r--r-- | libavcodec/i386/mpegvideo_mmx.c | 37 |
1 files changed, 19 insertions, 18 deletions
diff --git a/libavcodec/i386/mpegvideo_mmx.c b/libavcodec/i386/mpegvideo_mmx.c index 542d2d819c..0a4e3d12e7 100644 --- a/libavcodec/i386/mpegvideo_mmx.c +++ b/libavcodec/i386/mpegvideo_mmx.c @@ -89,26 +89,27 @@ static void dct_unquantize_h263_mmx(MpegEncContext *s, qadd = (s->qscale - 1) | 1; if (s->mb_intra) { - if (n < 4) - block[0] = block[0] * s->y_dc_scale; - else - block[0] = block[0] * s->c_dc_scale; - - for(i=1; i<8; i++) { - level = block[i]; - if (level) { - if (level < 0) { - level = level * qmul - qadd; - } else { - level = level * qmul + qadd; - } - block[i] = level; - } - } - nCoeffs=64; + if (!s->h263_aic) { + if (n < 4) + block[0] = block[0] * s->y_dc_scale; + else + block[0] = block[0] * s->c_dc_scale; + } + for(i=1; i<8; i++) { + level = block[i]; + if (level) { + if (level < 0) { + level = level * qmul - qadd; + } else { + level = level * qmul + qadd; + } + block[i] = level; + } + } + nCoeffs=64; } else { i = 0; - nCoeffs= zigzag_end[ s->block_last_index[n] ]; + nCoeffs= zigzag_end[ s->block_last_index[n] ]; } //printf("%d %d ", qmul, qadd); asm volatile( |