frontends/va: fix av1 decoding image distortion issue

problem:
when not using qmatrix, the qm_y, qm_u and qm_v value is set to 0,
which signals av1 decoder to use qmatix and causes confussion.

solution:
when not using qmatrix, set these values to 0xf.

fixed: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5632

Reviewed-by: Sil Vilerino <sivileri@microsoft.com>
Signed-off-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19174>
This commit is contained in:
Ruijing Dong 2022-10-07 22:03:20 -04:00 committed by Marge Bot
parent b6c47ce365
commit 29bb4b3211

View file

@ -192,9 +192,12 @@ void vlVaHandlePictureParameterBufferAV1(vlVaDriver *drv, vlVaContext *context,
context->desc.av1.picture_parameter.u_ac_delta_q = av1->u_ac_delta_q;
context->desc.av1.picture_parameter.v_dc_delta_q = av1->v_dc_delta_q;
context->desc.av1.picture_parameter.v_ac_delta_q = av1->v_ac_delta_q;
context->desc.av1.picture_parameter.qmatrix_fields.qm_y = av1->qmatrix_fields.bits.qm_y | 0xf;
context->desc.av1.picture_parameter.qmatrix_fields.qm_u = av1->qmatrix_fields.bits.qm_u | 0xf;
context->desc.av1.picture_parameter.qmatrix_fields.qm_v = av1->qmatrix_fields.bits.qm_v | 0xf;
context->desc.av1.picture_parameter.qmatrix_fields.qm_y = av1->qmatrix_fields.bits.using_qmatrix
? av1->qmatrix_fields.bits.qm_y : 0xf;
context->desc.av1.picture_parameter.qmatrix_fields.qm_u = av1->qmatrix_fields.bits.using_qmatrix
? av1->qmatrix_fields.bits.qm_u : 0xf;
context->desc.av1.picture_parameter.qmatrix_fields.qm_v = av1->qmatrix_fields.bits.using_qmatrix
? av1->qmatrix_fields.bits.qm_v : 0xf;
/* Segmentation Params */
context->desc.av1.picture_parameter.seg_info.segment_info_fields.enabled =