vc1dec: fix scantable for advanced P frames
authorMichael Niedermayer <michaelni@gmx.at>
Fri, 25 Nov 2011 22:11:03 +0000 (23:11 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 25 Nov 2011 22:44:39 +0000 (23:44 +0100)
Fixes: vc1 file from Ticket606
Fixes: vc1+vc1+++artifacts*.vc1
Fixes: mpeg+vc1+++salxxos.evo

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/vc1dec.c

index 90373d5..cf0961d 100644 (file)
@@ -3293,7 +3293,7 @@ static int vc1_decode_p_block(VC1Context *v, DCTELEM block[64], int n,
             i += skip;
             if (i > 63)
                 break;
-            if (!v->interlace)
+            if (v->fcm != 1)
                 idx = v->zz_8x8[0][i++];
             else
                 idx = v->zzi_8x8[i++];
@@ -3321,7 +3321,7 @@ static int vc1_decode_p_block(VC1Context *v, DCTELEM block[64], int n,
                 i += skip;
                 if (i > 15)
                     break;
-                if (!v->interlace)
+                if (v->fcm != 1)
                     idx = ff_vc1_simple_progressive_4x4_zz[i++];
                 else
                     idx = ff_vc1_adv_interlaced_4x4_zz[i++];
@@ -3348,7 +3348,7 @@ static int vc1_decode_p_block(VC1Context *v, DCTELEM block[64], int n,
                 i += skip;
                 if (i > 31)
                     break;
-                if (!v->interlace)
+                if (v->fcm != 1)
                     idx = v->zz_8x4[i++] + off;
                 else
                     idx = ff_vc1_adv_interlaced_8x4_zz[i++] + off;
@@ -3375,7 +3375,7 @@ static int vc1_decode_p_block(VC1Context *v, DCTELEM block[64], int n,
                 i += skip;
                 if (i > 31)
                     break;
-                if (!v->interlace)
+                if (v->fcm != 1)
                     idx = v->zz_4x8[i++] + off;
                 else
                     idx = ff_vc1_adv_interlaced_4x8_zz[i++] + off;