Fix dxva2 decoding for some H264 samples.
authorCarl Eugen Hoyos <cehoyos@ag.or.at>
Wed, 21 Sep 2011 21:41:11 +0000 (23:41 +0200)
committerCarl Eugen Hoyos <cehoyos@ag.or.at>
Wed, 21 Sep 2011 21:42:03 +0000 (23:42 +0200)
libavcodec/dxva2_h264.c

index b5ffe02..3d5af31 100644 (file)
@@ -162,17 +162,19 @@ static void fill_scaling_lists(struct dxva_context *ctx, const H264Context *h, D
             for (j = 0; j < 16; j++)
                 qm->bScalingLists4x4[i][j] = h->pps.scaling_matrix4[i][j];
 
-        for (i = 0; i < 2; i++)
-            for (j = 0; j < 64; j++)
-                qm->bScalingLists8x8[i][j] = h->pps.scaling_matrix8[i][j];
+        for (j = 0; j < 64; j++) {
+            qm->bScalingLists8x8[0][j] = h->pps.scaling_matrix8[0][j];
+            qm->bScalingLists8x8[1][j] = h->pps.scaling_matrix8[3][j];
+        }
     } else {
         for (i = 0; i < 6; i++)
             for (j = 0; j < 16; j++)
                 qm->bScalingLists4x4[i][j] = h->pps.scaling_matrix4[i][zigzag_scan[j]];
 
-        for (i = 0; i < 2; i++)
-            for (j = 0; j < 64; j++)
-                qm->bScalingLists8x8[i][j] = h->pps.scaling_matrix8[i][ff_zigzag_direct[j]];
+        for (j = 0; j < 64; j++) {
+            qm->bScalingLists8x8[0][j] = h->pps.scaling_matrix8[0][ff_zigzag_direct[j]];
+            qm->bScalingLists8x8[1][j] = h->pps.scaling_matrix8[3][ff_zigzag_direct[j]];
+        }
     }
 }