vl: add parameters for VAAPI encode
authorBoyuan Zhang <boyuan.zhang@amd.com>
Wed, 13 Jul 2016 22:51:11 +0000 (18:51 -0400)
committerChristian König <christian.koenig@amd.com>
Thu, 14 Jul 2016 07:49:07 +0000 (09:49 +0200)
Allow to specify more parameters in the encoding interface
which previously just hardcoded in the encoder

Signed-off-by: Boyuan Zhang <boyuan.zhang@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
src/gallium/include/pipe/p_video_state.h

index d353be607599848e979a4b9710f0345f23fd7962..754d0137f1aa6ef64ede37c368e94d137e5646d4 100644 (file)
@@ -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,30 @@ 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;
+   bool enable_vui;
+   unsigned int frame_idx[32];
 };
 
 struct pipe_h265_sps