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:
@@ -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);
|
||||
|
||||
|
||||
@@ -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)))
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user