1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

lavc/vaapi_hevc: fix scaling list duplicate transfer issue.

scaling list is already transfered to raster scan during head parsing,
so no need to transfer it again.

And after this fix, FATE test SLIST_A_Sony_4/SLIST_B_Sony_8/
SLIST_C_Sony_3/SLIST_D_Sony_9 will pass in i965/Skylake.

Signed-off-by: Wang, Yi A <yi.a.wamg@intel.com>
Signed-off-by: Jun Zhao <jun.zhao@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
This commit is contained in:
Jun Zhao 2016-11-22 15:58:50 +08:00 committed by Mark Thompson
parent d84a21207e
commit 584eea5bf3

View File

@ -265,7 +265,7 @@ static int vaapi_hevc_start_frame(AVCodecContext *avctx,
VAPictureParameterBufferHEVC *pic_param;
VAIQMatrixBufferHEVC *iq_matrix;
ScalingList const * scaling_list;
int i, j, pos;
int i, j;
ff_dlog(avctx, "vaapi_hevc_start_frame()\n");
@ -293,15 +293,13 @@ static int vaapi_hevc_start_frame(AVCodecContext *avctx,
for (i = 0; i < 6; ++i) {
for (j = 0; j < 16; ++j) {
pos = 4 * ff_hevc_diag_scan4x4_y[j] + ff_hevc_diag_scan4x4_x[j];
iq_matrix->ScalingList4x4[i][j] = scaling_list->sl[0][i][pos];
iq_matrix->ScalingList4x4[i][j] = scaling_list->sl[0][i][j];
}
for (j = 0; j < 64; ++j) {
pos = 8 * ff_hevc_diag_scan8x8_y[j] + ff_hevc_diag_scan8x8_x[j];
iq_matrix->ScalingList8x8[i][j] = scaling_list->sl[1][i][pos];
iq_matrix->ScalingList16x16[i][j] = scaling_list->sl[2][i][pos];
iq_matrix->ScalingList8x8[i][j] = scaling_list->sl[1][i][j];
iq_matrix->ScalingList16x16[i][j] = scaling_list->sl[2][i][j];
if (i < 2) {
iq_matrix->ScalingList32x32[i][j] = scaling_list->sl[3][i * 3][pos];
iq_matrix->ScalingList32x32[i][j] = scaling_list->sl[3][i * 3][j];
}
}
iq_matrix->ScalingListDC16x16[i] = scaling_list->sl_dc[0][i];