gallium: update abs_delta segementation parameter

This patch updates segmentation_abs_or_delta_update value based on
VP9 bitstream header info.

Netflix videos are showing corrupted output when codec is HW vp9
and segemantion enabled.This change will fix the corruption issue.

Signed-off-by: SureshGuttula <suresh.guttula@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7290>
This commit is contained in:
SureshGuttula
2020-10-23 15:55:02 +05:30
committed by Marge Bot
parent 9c67f3d723
commit bef6007c3a
3 changed files with 3 additions and 2 deletions

View File

@@ -397,7 +397,7 @@ static rvcn_dec_message_vp9_t get_vp9_msg(struct radeon_decoder *dec,
for (i = 0; i < 3; ++i)
prbs->seg.pred_probs[i] = pic->picture_parameter.segment_pred_probs[i];
prbs->seg.abs_delta = 0;
prbs->seg.abs_delta = pic->picture_parameter.abs_delta;
} else
memset(&prbs->seg, 0, 256);

View File

@@ -339,7 +339,7 @@ void vlVaDecoderVP9BitstreamHeader(vlVaContext *context, vlVaBuffer *buf)
/* update_data */
if (vp9_u(&vlc, 1)) {
/* abs_delta */
vp9_u(&vlc, 1);
context->desc.vp9.picture_parameter.abs_delta = vp9_u(&vlc, 1);
for (i = 0; i < 8; ++i) {
/* Use alternate quantizer */
if ((context->desc.vp9.slice_parameter.seg_param[i].alt_quant_enabled = vp9_u(&vlc, 1)))

View File

@@ -769,6 +769,7 @@ struct pipe_vp9_picture_desc
int8_t y_dc_delta_q;
int8_t uv_ac_delta_q;
int8_t uv_dc_delta_q;
uint8_t abs_delta;
} picture_parameter;
struct {