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.zh...@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

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to