Mercurial > libavcodec.hg
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 {