From: Ruijing Dong Date: Sat, 8 Oct 2022 02:03:20 +0000 (-0400) Subject: frontends/va: fix av1 decoding image distortion issue X-Git-Tag: upstream/22.3.5~1846 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4df54d97e841b0291e1b5413104c9ddd0f96c455;p=platform%2Fupstream%2Fmesa.git 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 Signed-off-by: Ruijing Dong Part-of: --- diff --git a/src/gallium/frontends/va/picture_av1.c b/src/gallium/frontends/va/picture_av1.c index fed64a6..f5563ec 100644 --- a/src/gallium/frontends/va/picture_av1.c +++ b/src/gallium/frontends/va/picture_av1.c @@ -208,9 +208,12 @@ void vlVaHandlePictureParameterBufferAV1(vlVaDriver *drv, vlVaContext *context, context->desc.av1.picture_parameter.v_ac_delta_q = av1->v_ac_delta_q; context->desc.av1.picture_parameter.qmatrix_fields.using_qmatrix = av1->qmatrix_fields.bits.using_qmatrix; - 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 =