frontends/va: Add VP9 use_prev_frame_mvs and segmentation_update_data flags

Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37808>
This commit is contained in:
David Rosca 2025-10-10 09:29:30 +02:00 committed by Marge Bot
parent 6531f060dd
commit add5074460
2 changed files with 10 additions and 1 deletions

View file

@ -67,6 +67,11 @@ void vlVaHandlePictureParameterBufferVP9(vlVaDriver *drv, vlVaContext *context,
context->desc.vp9.picture_parameter.pic_fields.alt_ref_frame = vp9->pic_fields.bits.alt_ref_frame;
context->desc.vp9.picture_parameter.pic_fields.alt_ref_frame_sign_bias = vp9->pic_fields.bits.alt_ref_frame_sign_bias;
context->desc.vp9.picture_parameter.pic_fields.lossless_flag = vp9->pic_fields.bits.lossless_flag;
context->desc.vp9.picture_parameter.pic_fields.use_prev_frame_mvs =
context->desc.vp9.picture_parameter.pic_fields.prev_show_frame &&
!context->desc.vp9.picture_parameter.pic_fields.error_resilient_mode &&
context->desc.vp9.picture_parameter.prev_frame_width == context->desc.vp9.picture_parameter.frame_width &&
context->desc.vp9.picture_parameter.prev_frame_height == context->desc.vp9.picture_parameter.frame_height;
context->desc.vp9.picture_parameter.filter_level = vp9->filter_level;
context->desc.vp9.picture_parameter.sharpness_level = vp9->sharpness_level;
@ -399,8 +404,10 @@ void vlVaDecoderVP9BitstreamHeader(vlVaContext *context, vlVaBuffer *buf)
}
}
context->desc.vp9.picture_parameter.pic_fields.segmentation_update_data = vp9_u(&vlc, 1);
/* update_data */
if (vp9_u(&vlc, 1)) {
if (context->desc.vp9.picture_parameter.pic_fields.segmentation_update_data) {
/* abs_delta */
context->desc.vp9.picture_parameter.abs_delta = vp9_u(&vlc, 1);
for (i = 0; i < 8; ++i) {

View file

@ -1931,6 +1931,7 @@ struct pipe_vp9_picture_desc
uint32_t segmentation_enabled:1;
uint32_t segmentation_temporal_update:1;
uint32_t segmentation_update_map:1;
uint32_t segmentation_update_data:1;
uint32_t last_ref_frame:3;
uint32_t last_ref_frame_sign_bias:1;
uint32_t golden_ref_frame:3;
@ -1938,6 +1939,7 @@ struct pipe_vp9_picture_desc
uint32_t alt_ref_frame:3;
uint32_t alt_ref_frame_sign_bias:1;
uint32_t lossless_flag:1;
uint32_t use_prev_frame_mvs:1;
} pic_fields;
uint8_t filter_level;