[FFmpeg-cvslog] dxva2_h264: pass the correct 8x8 scaling lists

Carl Eugen Hoyos git at videolan.org
Sat Oct 1 03:06:41 CEST 2011


ffmpeg | branch: master | Carl Eugen Hoyos <cehoyos at ag.or.at> | Wed Sep 21 20:42:48 2011 +0000| [bcb15554894e13d1575d5f6e7ff833812a315004] | committer: Janne Grunau

dxva2_h264: pass the correct 8x8 scaling lists

Copy the Inter 8x8 scaling list as second 8x8 matrix into DXVA2's
quantization matrix data structure instead of a potentially unset
Intra chroma scaling matrix.

Fix dxva2 decoding for some H264 samples.

Signed-off-by: Janne Grunau <janne-libav at jannau.net>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=bcb15554894e13d1575d5f6e7ff833812a315004
---

 libavcodec/dxva2_h264.c |   14 ++++++++------
 1 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/libavcodec/dxva2_h264.c b/libavcodec/dxva2_h264.c
index 090bce6..ea51958 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 (i = 0; i < 64; i++) {
+            qm->bScalingLists8x8[0][i] = h->pps.scaling_matrix8[0][i];
+            qm->bScalingLists8x8[1][i] = h->pps.scaling_matrix8[3][i];
+        }
     } 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 (i = 0; i < 64; i++) {
+            qm->bScalingLists8x8[0][i] = h->pps.scaling_matrix8[0][ff_zigzag_direct[i]];
+            qm->bScalingLists8x8[1][i] = h->pps.scaling_matrix8[3][ff_zigzag_direct[i]];
+        }
     }
 }
 



More information about the ffmpeg-cvslog mailing list