aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarl Eugen Hoyos <cehoyos@ag.or.at>2011-09-21 23:41:11 +0200
committerCarl Eugen Hoyos <cehoyos@ag.or.at>2011-09-21 23:49:13 +0200
commit3de5c435707cc815812febb8ac2fc5814216b1d8 (patch)
treefa196daf4225a405da191e6d5f99972c84249c32
parent4909895afd6d6fcde672067c7f8066ddbd82a5d3 (diff)
downloadffmpeg-3de5c435707cc815812febb8ac2fc5814216b1d8.tar.gz
Fix dxva2 decoding for some H264 samples.
(cherry picked from commit 3039c68626d924118d9061259cb898a5d978f758)
-rw-r--r--libavcodec/dxva2_h264.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/libavcodec/dxva2_h264.c b/libavcodec/dxva2_h264.c
index b5ffe02f44..3d5af31757 100644
--- a/libavcodec/dxva2_h264.c
+++ b/libavcodec/dxva2_h264.c
@@ -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]];
+ }
}
}