- Bug fix on RTYPE (rounding type) not being honoured by H.263+ decoder.
authorJuanjo <pulento@users.sourceforge.net>
Fri, 22 Feb 2002 03:35:41 +0000 (03:35 +0000)
committerJuanjo <pulento@users.sourceforge.net>
Fri, 22 Feb 2002 03:35:41 +0000 (03:35 +0000)
Originally committed as revision 312 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/h263.c
libavcodec/i386/mpegvideo_mmx.c

index 9e68549..fb6b2e7 100644 (file)
@@ -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) {
index 0a4e3d1..017e3d4 100644 (file)
@@ -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;