frontend/va: Add log2_max_frame_num_minus4 and log2_max_pic_order_cnt_lsb_minus4 for h264enc

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26223>
This commit is contained in:
Sil Vilerino 2023-11-08 09:46:49 -05:00 committed by Marge Bot
parent 9ce17de1fd
commit bee4a3683c
2 changed files with 7 additions and 3 deletions

View file

@ -215,6 +215,8 @@ vlVaHandleVAEncSequenceParameterBufferTypeH264(vlVaDriver *drv, vlVaContext *con
context->gop_coeff = VL_VA_ENC_GOP_COEFF; context->gop_coeff = VL_VA_ENC_GOP_COEFF;
context->desc.h264enc.gop_size = context->desc.h264enc.intra_idr_period * context->gop_coeff; context->desc.h264enc.gop_size = context->desc.h264enc.intra_idr_period * context->gop_coeff;
context->desc.h264enc.seq.pic_order_cnt_type = h264->seq_fields.bits.pic_order_cnt_type; context->desc.h264enc.seq.pic_order_cnt_type = h264->seq_fields.bits.pic_order_cnt_type;
context->desc.h264enc.seq.log2_max_frame_num_minus4 = h264->seq_fields.bits.log2_max_frame_num_minus4;
context->desc.h264enc.seq.log2_max_pic_order_cnt_lsb_minus4 = h264->seq_fields.bits.log2_max_pic_order_cnt_lsb_minus4;
context->desc.h264enc.seq.vui_parameters_present_flag = h264->vui_parameters_present_flag; context->desc.h264enc.seq.vui_parameters_present_flag = h264->vui_parameters_present_flag;
if (h264->vui_parameters_present_flag) { if (h264->vui_parameters_present_flag) {
context->desc.h264enc.seq.vui_flags.aspect_ratio_info_present_flag = context->desc.h264enc.seq.vui_flags.aspect_ratio_info_present_flag =
@ -376,11 +378,11 @@ static void parseEncSpsParamsH264(vlVaContext *context, struct vl_rbsp *rbsp)
return; /* TODO */ return; /* TODO */
} }
vl_rbsp_ue(rbsp); /* log2_max_frame_num_minus4 */ context->desc.h264enc.seq.log2_max_frame_num_minus4 = vl_rbsp_ue(rbsp); /* log2_max_frame_num_minus4 */
vl_rbsp_ue(rbsp); /* pic_order_cnt_type */ context->desc.h264enc.seq.pic_order_cnt_type = vl_rbsp_ue(rbsp); /* pic_order_cnt_type */
if (context->desc.h264enc.seq.pic_order_cnt_type == 0) if (context->desc.h264enc.seq.pic_order_cnt_type == 0)
vl_rbsp_ue(rbsp); /* log2_max_pic_order_cnt_lsb_minus4 */ context->desc.h264enc.seq.log2_max_pic_order_cnt_lsb_minus4 = vl_rbsp_ue(rbsp); /* log2_max_pic_order_cnt_lsb_minus4 */
else if (context->desc.h264enc.seq.pic_order_cnt_type == 1) { else if (context->desc.h264enc.seq.pic_order_cnt_type == 1) {
vl_rbsp_u(rbsp, 1); /* delta_pic_order_always_zero_flag */ vl_rbsp_u(rbsp, 1); /* delta_pic_order_always_zero_flag */
vl_rbsp_se(rbsp); /* offset_for_non_ref_pic */ vl_rbsp_se(rbsp); /* offset_for_non_ref_pic */

View file

@ -546,6 +546,8 @@ struct pipe_h264_enc_seq_param
unsigned enc_frame_crop_top_offset; unsigned enc_frame_crop_top_offset;
unsigned enc_frame_crop_bottom_offset; unsigned enc_frame_crop_bottom_offset;
unsigned pic_order_cnt_type; unsigned pic_order_cnt_type;
unsigned log2_max_frame_num_minus4;
unsigned log2_max_pic_order_cnt_lsb_minus4;
unsigned num_temporal_layers; unsigned num_temporal_layers;
uint32_t vui_parameters_present_flag; uint32_t vui_parameters_present_flag;
struct { struct {