diff mpegvideo.c @ 249:42a0b7b16738 libavcodec

- Bug fixes in H.263+ Advanced INTRA Coding decoder. - H.263+ should be able to decode streams with AIC now :)
author pulento
date Tue, 19 Feb 2002 19:23:34 +0000
parents 56ee684c48bb
children 75091bfc577b
line wrap: on
line diff
--- a/mpegvideo.c	Mon Feb 18 19:33:27 2002 +0000
+++ b/mpegvideo.c	Tue Feb 19 19:23:34 2002 +0000
@@ -745,7 +745,7 @@
 
     /* update DC predictors for P macroblocks */
     if (!s->mb_intra) {
-        if (s->h263_pred) {
+        if (s->h263_pred || s->h263_aic) {
           if(s->mbintra_table[mb_x + mb_y*s->mb_width])
           {
             int wrap, xy, v;
@@ -754,7 +754,7 @@
             xy = 2 * mb_x + 1 +  (2 * mb_y + 1) * wrap;
             v = 1024;
             
-	    s->dc_val[0][xy] = v;
+            s->dc_val[0][xy] = v;
             s->dc_val[0][xy + 1] = v;
             s->dc_val[0][xy + wrap] = v;
             s->dc_val[0][xy + 1 + wrap] = v;
@@ -784,7 +784,7 @@
             s->last_dc[2] = 128 << s->intra_dc_precision;
         }
     }
-    else if (s->h263_pred)
+    else if (s->h263_pred || s->h263_aic)
         s->mbintra_table[mb_x + mb_y*s->mb_width]=1;
 
     /* update motion predictor */
@@ -1327,12 +1327,14 @@
 {
     int i, level, qmul, qadd;
     int nCoeffs;
-
+    
     if (s->mb_intra) {
-        if (n < 4) 
-            block[0] = block[0] * s->y_dc_scale;
-        else
-            block[0] = block[0] * s->c_dc_scale;
+        if (!s->h263_aic) {
+            if (n < 4) 
+                block[0] = block[0] * s->y_dc_scale;
+            else
+                block[0] = block[0] * s->c_dc_scale;
+        }
         i = 1;
         nCoeffs= 64; //does not allways use zigzag table 
     } else {