diff options
author | Juanjo <pulento@users.sourceforge.net> | 2002-02-22 03:35:41 +0000 |
---|---|---|
committer | Juanjo <pulento@users.sourceforge.net> | 2002-02-22 03:35:41 +0000 |
commit | e7774f11acfe50d6f4db1e8456334746aef80864 (patch) | |
tree | 72ef41c528fdbacd962ded152a1f5d14a4ba4215 | |
parent | 2ba1bff05909fee700cc4b97a9eaaa68b58d880f (diff) | |
download | ffmpeg-e7774f11acfe50d6f4db1e8456334746aef80864.tar.gz |
- Bug fix on RTYPE (rounding type) not being honoured by H.263+ decoder.
Originally committed as revision 312 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r-- | libavcodec/h263.c | 5 | ||||
-rw-r--r-- | libavcodec/i386/mpegvideo_mmx.c | 22 |
2 files changed, 15 insertions, 12 deletions
diff --git a/libavcodec/h263.c b/libavcodec/h263.c index 9e68549cd6..fb6b2e7650 100644 --- a/libavcodec/h263.c +++ b/libavcodec/h263.c @@ -1447,7 +1447,10 @@ int h263_decode_picture_header(MpegEncContext *s) if (s->pict_type != I_TYPE && s->pict_type != P_TYPE) return -1; - skip_bits(&s->gb, 7); + skip_bits(&s->gb, 2); + s->no_rounding = get_bits1(&s->gb); + //fprintf(stderr, "\nRTYPE: %d", s->no_rounding); + skip_bits(&s->gb, 4); /* Get the picture dimensions */ if (ufep) { diff --git a/libavcodec/i386/mpegvideo_mmx.c b/libavcodec/i386/mpegvideo_mmx.c index 0a4e3d12e7..017e3d4881 100644 --- a/libavcodec/i386/mpegvideo_mmx.c +++ b/libavcodec/i386/mpegvideo_mmx.c @@ -95,17 +95,17 @@ static void dct_unquantize_h263_mmx(MpegEncContext *s, 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; - } - } + 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; |