[Mesa-dev] [PATCH 01/12] vl: add parameters for VAAPI encode

Christian König deathsimple at vodafone.de
Fri Jul 1 12:21:11 UTC 2016


Hi Boyuan,

as Emil wrote as well try to add some commit messages to the set. For 
this patch something like the following should do it:

Allow to specify more parameters in the encoding interface which where 
previously just hardcoded in the encoder.

Additional to that we need to reorder the patches a bit. First the 
interface changes, then the OMX changes to fill in the previously 
hardcoded values, then the radeon backend changes and then last the 
VA-API changes to use the new interface.

Additional to that a few notes below.

Am 30.06.2016 um 20:30 schrieb Boyuan Zhang:
> Signed-off-by: Boyuan Zhang <boyuan.zhang at amd.com>
> ---
>   src/gallium/include/pipe/p_video_state.h | 36 ++++++++++++++++++++++++++++++++
>   1 file changed, 36 insertions(+)
>
> diff --git a/src/gallium/include/pipe/p_video_state.h b/src/gallium/include/pipe/p_video_state.h
> index d353be6..9cd489b 100644
> --- a/src/gallium/include/pipe/p_video_state.h
> +++ b/src/gallium/include/pipe/p_video_state.h
> @@ -352,9 +352,29 @@ struct pipe_h264_enc_rate_control
>      unsigned frame_rate_num;
>      unsigned frame_rate_den;
>      unsigned vbv_buffer_size;
> +   unsigned vbv_buf_lv;
>      unsigned target_bits_picture;
>      unsigned peak_bits_picture_integer;
>      unsigned peak_bits_picture_fraction;
> +   unsigned fill_data_enable;
> +   unsigned enforce_hrd;
> +};
> +
> +struct pipe_h264_enc_motion_estimation
> +{
> +   unsigned motion_est_quarter_pixel;
> +   unsigned enc_disable_sub_mode;
> +   unsigned lsmvert;
> +   unsigned enc_en_ime_overw_dis_subm;
> +   unsigned enc_ime_overw_dis_subm_no;
> +   unsigned enc_ime2_search_range_x;
> +   unsigned enc_ime2_search_range_y;
> +};
> +
> +struct pipe_h264_enc_pic_control
> +{
> +   unsigned enc_cabac_enable;
> +   unsigned enc_constraint_set_flags;
>   };
>   
>   struct pipe_h264_enc_picture_desc
> @@ -363,17 +383,33 @@ struct pipe_h264_enc_picture_desc
>   
>      struct pipe_h264_enc_rate_control rate_ctrl;
>   
> +   struct pipe_h264_enc_motion_estimation motion_est;
> +   struct pipe_h264_enc_pic_control pic_ctrl;
> +
>      unsigned quant_i_frames;
>      unsigned quant_p_frames;
>      unsigned quant_b_frames;
>   
>      enum pipe_h264_enc_picture_type picture_type;
>      unsigned frame_num;
> +   unsigned frame_num_cnt;
> +   unsigned p_remain;
> +   unsigned i_remain;
> +   unsigned idr_pic_id;
> +   unsigned gop_cnt;
>      unsigned pic_order_cnt;
>      unsigned ref_idx_l0;
>      unsigned ref_idx_l1;
> +   unsigned gop_size;
> +   unsigned ref_pic_mode;
>   
>      bool not_referenced;
> +   bool is_idr;

Why can't this be inferred from the encoded picture type?

> +   bool has_ref_pic_list;
> +   bool enable_vui;
> +   unsigned int ref_pic_list_0[32];
> +   unsigned int ref_pic_list_1[32];
> +   unsigned int frame_idx[32];

I thought we wanted to drop the ref_pic_list handling for now. If that 
is still the case please drop those fields here as well.

Regards,
Christian.

>   };
>   
>   struct pipe_h265_sps



More information about the mesa-dev mailing list