From: Jernej Skrabec <jernej.skra...@siol.net>

---
 libavcodec/h264-ctrls.h         | 192 +++++++++++++++++++++++++++++++
 libavcodec/hevc-ctrls.h         | 197 ++++++++++++++++++++++++++++++++
 libavcodec/mpeg2-ctrls.h        |  82 +++++++++++++
 libavcodec/v4l2_request_h264.c  |   5 +-
 libavcodec/v4l2_request_hevc.c  |   1 +
 libavcodec/v4l2_request_mpeg2.c |   1 +
 6 files changed, 476 insertions(+), 2 deletions(-)
 create mode 100644 libavcodec/h264-ctrls.h
 create mode 100644 libavcodec/hevc-ctrls.h
 create mode 100644 libavcodec/mpeg2-ctrls.h

diff --git a/libavcodec/h264-ctrls.h b/libavcodec/h264-ctrls.h
new file mode 100644
index 0000000000..e2f83b3cdb
--- /dev/null
+++ b/libavcodec/h264-ctrls.h
@@ -0,0 +1,192 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * These are the H.264 state controls for use with stateless H.264
+ * codec drivers.
+ *
+ * It turns out that these structs are not stable yet and will undergo
+ * more changes. So keep them private until they are stable and ready to
+ * become part of the official public API.
+ */
+
+#ifndef _H264_CTRLS_H_
+#define _H264_CTRLS_H_
+
+/*
+ * This is put insanely high to avoid conflicting with controls that
+ * would be added during the phase where those controls are not
+ * stable. It should be fixed eventually.
+ */
+#define V4L2_CID_MPEG_VIDEO_H264_SPS           (V4L2_CID_MPEG_BASE+1000)
+#define V4L2_CID_MPEG_VIDEO_H264_PPS           (V4L2_CID_MPEG_BASE+1001)
+#define V4L2_CID_MPEG_VIDEO_H264_SCALING_MATRIX        
(V4L2_CID_MPEG_BASE+1002)
+#define V4L2_CID_MPEG_VIDEO_H264_SLICE_PARAMS  (V4L2_CID_MPEG_BASE+1003)
+#define V4L2_CID_MPEG_VIDEO_H264_DECODE_PARAMS (V4L2_CID_MPEG_BASE+1004)
+
+/* enum v4l2_ctrl_type type values */
+#define V4L2_CTRL_TYPE_H264_SPS                        0x0110
+#define V4L2_CTRL_TYPE_H264_PPS                        0x0111
+#define V4L2_CTRL_TYPE_H264_SCALING_MATRIX     0x0112
+#define V4L2_CTRL_TYPE_H264_SLICE_PARAMS       0x0113
+#define V4L2_CTRL_TYPE_H264_DECODE_PARAMS      0x0114
+
+#define V4L2_H264_SPS_CONSTRAINT_SET0_FLAG                     0x01
+#define V4L2_H264_SPS_CONSTRAINT_SET1_FLAG                     0x02
+#define V4L2_H264_SPS_CONSTRAINT_SET2_FLAG                     0x04
+#define V4L2_H264_SPS_CONSTRAINT_SET3_FLAG                     0x08
+#define V4L2_H264_SPS_CONSTRAINT_SET4_FLAG                     0x10
+#define V4L2_H264_SPS_CONSTRAINT_SET5_FLAG                     0x20
+
+#define V4L2_H264_SPS_FLAG_SEPARATE_COLOUR_PLANE               0x01
+#define V4L2_H264_SPS_FLAG_QPPRIME_Y_ZERO_TRANSFORM_BYPASS     0x02
+#define V4L2_H264_SPS_FLAG_DELTA_PIC_ORDER_ALWAYS_ZERO         0x04
+#define V4L2_H264_SPS_FLAG_GAPS_IN_FRAME_NUM_VALUE_ALLOWED     0x08
+#define V4L2_H264_SPS_FLAG_FRAME_MBS_ONLY                      0x10
+#define V4L2_H264_SPS_FLAG_MB_ADAPTIVE_FRAME_FIELD             0x20
+#define V4L2_H264_SPS_FLAG_DIRECT_8X8_INFERENCE                        0x40
+
+struct v4l2_ctrl_h264_sps {
+       __u8 profile_idc;
+       __u8 constraint_set_flags;
+       __u8 level_idc;
+       __u8 seq_parameter_set_id;
+       __u8 chroma_format_idc;
+       __u8 bit_depth_luma_minus8;
+       __u8 bit_depth_chroma_minus8;
+       __u8 log2_max_frame_num_minus4;
+       __u8 pic_order_cnt_type;
+       __u8 log2_max_pic_order_cnt_lsb_minus4;
+       __u8 max_num_ref_frames;
+       __u8 num_ref_frames_in_pic_order_cnt_cycle;
+       __s32 offset_for_ref_frame[255];
+       __s32 offset_for_non_ref_pic;
+       __s32 offset_for_top_to_bottom_field;
+       __u16 pic_width_in_mbs_minus1;
+       __u16 pic_height_in_map_units_minus1;
+       __u32 flags;
+};
+
+#define V4L2_H264_PPS_FLAG_ENTROPY_CODING_MODE                         0x0001
+#define V4L2_H264_PPS_FLAG_BOTTOM_FIELD_PIC_ORDER_IN_FRAME_PRESENT     0x0002
+#define V4L2_H264_PPS_FLAG_WEIGHTED_PRED                               0x0004
+#define V4L2_H264_PPS_FLAG_DEBLOCKING_FILTER_CONTROL_PRESENT           0x0008
+#define V4L2_H264_PPS_FLAG_CONSTRAINED_INTRA_PRED                      0x0010
+#define V4L2_H264_PPS_FLAG_REDUNDANT_PIC_CNT_PRESENT                   0x0020
+#define V4L2_H264_PPS_FLAG_TRANSFORM_8X8_MODE                          0x0040
+#define V4L2_H264_PPS_FLAG_PIC_SCALING_MATRIX_PRESENT                  0x0080
+
+struct v4l2_ctrl_h264_pps {
+       __u8 pic_parameter_set_id;
+       __u8 seq_parameter_set_id;
+       __u8 num_slice_groups_minus1;
+       __u8 num_ref_idx_l0_default_active_minus1;
+       __u8 num_ref_idx_l1_default_active_minus1;
+       __u8 weighted_bipred_idc;
+       __s8 pic_init_qp_minus26;
+       __s8 pic_init_qs_minus26;
+       __s8 chroma_qp_index_offset;
+       __s8 second_chroma_qp_index_offset;
+       __u16 flags;
+};
+
+struct v4l2_ctrl_h264_scaling_matrix {
+       __u8 scaling_list_4x4[6][16];
+       __u8 scaling_list_8x8[6][64];
+};
+
+struct v4l2_h264_weight_factors {
+       __s16 luma_weight[32];
+       __s16 luma_offset[32];
+       __s16 chroma_weight[32][2];
+       __s16 chroma_offset[32][2];
+};
+
+struct v4l2_h264_pred_weight_table {
+       __u16 luma_log2_weight_denom;
+       __u16 chroma_log2_weight_denom;
+       struct v4l2_h264_weight_factors weight_factors[2];
+};
+
+#define V4L2_H264_SLICE_TYPE_P                         0
+#define V4L2_H264_SLICE_TYPE_B                         1
+#define V4L2_H264_SLICE_TYPE_I                         2
+#define V4L2_H264_SLICE_TYPE_SP                                3
+#define V4L2_H264_SLICE_TYPE_SI                                4
+
+#define V4L2_H264_SLICE_FLAG_FIELD_PIC                 0x01
+#define V4L2_H264_SLICE_FLAG_BOTTOM_FIELD              0x02
+#define V4L2_H264_SLICE_FLAG_DIRECT_SPATIAL_MV_PRED    0x04
+#define V4L2_H264_SLICE_FLAG_SP_FOR_SWITCH             0x08
+
+struct v4l2_ctrl_h264_slice_params {
+       /* Size in bytes, including header */
+       __u32 size;
+       /* Offset in bits to slice_data() from the beginning of this slice. */
+       __u32 header_bit_size;
+
+       __u16 first_mb_in_slice;
+       __u8 slice_type;
+       __u8 pic_parameter_set_id;
+       __u8 colour_plane_id;
+       __u8 redundant_pic_cnt;
+       __u16 frame_num;
+       __u16 idr_pic_id;
+       __u16 pic_order_cnt_lsb;
+       __s32 delta_pic_order_cnt_bottom;
+       __s32 delta_pic_order_cnt0;
+       __s32 delta_pic_order_cnt1;
+
+       struct v4l2_h264_pred_weight_table pred_weight_table;
+       /* Size in bits of dec_ref_pic_marking() syntax element. */
+       __u32 dec_ref_pic_marking_bit_size;
+       /* Size in bits of pic order count syntax. */
+       __u32 pic_order_cnt_bit_size;
+
+       __u8 cabac_init_idc;
+       __s8 slice_qp_delta;
+       __s8 slice_qs_delta;
+       __u8 disable_deblocking_filter_idc;
+       __s8 slice_alpha_c0_offset_div2;
+       __s8 slice_beta_offset_div2;
+       __u8 num_ref_idx_l0_active_minus1;
+       __u8 num_ref_idx_l1_active_minus1;
+       __u32 slice_group_change_cycle;
+
+       /*
+        * Entries on each list are indices into
+        * v4l2_ctrl_h264_decode_params.dpb[].
+        */
+       __u8 ref_pic_list0[32];
+       __u8 ref_pic_list1[32];
+
+       __u32 flags;
+};
+
+#define V4L2_H264_DPB_ENTRY_FLAG_VALID         0x01
+#define V4L2_H264_DPB_ENTRY_FLAG_ACTIVE                0x02
+#define V4L2_H264_DPB_ENTRY_FLAG_LONG_TERM     0x04
+
+struct v4l2_h264_dpb_entry {
+       __u64 reference_ts;
+       __u16 frame_num;
+       __u16 pic_num;
+       /* Note that field is indicated by v4l2_buffer.field */
+       __s32 top_field_order_cnt;
+       __s32 bottom_field_order_cnt;
+       __u32 flags; /* V4L2_H264_DPB_ENTRY_FLAG_* */
+};
+
+#define V4L2_H264_DECODE_PARAM_FLAG_IDR_PIC    0x01
+
+struct v4l2_ctrl_h264_decode_params {
+       struct v4l2_h264_dpb_entry dpb[16];
+       __u16 num_slices;
+       __u16 nal_ref_idc;
+       __u8 ref_pic_list_p0[32];
+       __u8 ref_pic_list_b0[32];
+       __u8 ref_pic_list_b1[32];
+       __s32 top_field_order_cnt;
+       __s32 bottom_field_order_cnt;
+       __u32 flags; /* V4L2_H264_DECODE_PARAM_FLAG_* */
+};
+
+#endif
diff --git a/libavcodec/hevc-ctrls.h b/libavcodec/hevc-ctrls.h
new file mode 100644
index 0000000000..c8c61079c6
--- /dev/null
+++ b/libavcodec/hevc-ctrls.h
@@ -0,0 +1,197 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * These are the HEVC state controls for use with stateless HEVC
+ * codec drivers.
+ *
+ * It turns out that these structs are not stable yet and will undergo
+ * more changes. So keep them private until they are stable and ready to
+ * become part of the official public API.
+ */
+
+#ifndef _HEVC_CTRLS_H_
+#define _HEVC_CTRLS_H_
+
+#define V4L2_CID_MPEG_VIDEO_HEVC_SPS           (V4L2_CID_MPEG_BASE + 645)
+#define V4L2_CID_MPEG_VIDEO_HEVC_PPS           (V4L2_CID_MPEG_BASE + 646)
+#define V4L2_CID_MPEG_VIDEO_HEVC_SLICE_PARAMS  (V4L2_CID_MPEG_BASE + 647)
+#define V4L2_CID_MPEG_VIDEO_HEVC_SCALING_MATRIX        (V4L2_CID_MPEG_BASE + 
648)
+
+/* enum v4l2_ctrl_type type values */
+#define V4L2_CTRL_TYPE_HEVC_SPS 0x0115
+#define V4L2_CTRL_TYPE_HEVC_PPS 0x0116
+#define V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS 0x0117
+#define V4L2_CTRL_TYPE_HEVC_SCALING_MATRIX 0x0118
+
+#define V4L2_HEVC_SLICE_TYPE_B 0
+#define V4L2_HEVC_SLICE_TYPE_P 1
+#define V4L2_HEVC_SLICE_TYPE_I 2
+
+struct v4l2_ctrl_hevc_sps {
+       /* ISO/IEC 23008-2, ITU-T Rec. H.265: Sequence parameter set */
+       __u8    chroma_format_idc;
+       __u8    separate_colour_plane_flag;
+       __u16   pic_width_in_luma_samples;
+       __u16   pic_height_in_luma_samples;
+       __u8    bit_depth_luma_minus8;
+       __u8    bit_depth_chroma_minus8;
+       __u8    log2_max_pic_order_cnt_lsb_minus4;
+       __u8    sps_max_dec_pic_buffering_minus1;
+       __u8    sps_max_num_reorder_pics;
+       __u8    sps_max_latency_increase_plus1;
+       __u8    log2_min_luma_coding_block_size_minus3;
+       __u8    log2_diff_max_min_luma_coding_block_size;
+       __u8    log2_min_luma_transform_block_size_minus2;
+       __u8    log2_diff_max_min_luma_transform_block_size;
+       __u8    max_transform_hierarchy_depth_inter;
+       __u8    max_transform_hierarchy_depth_intra;
+       __u8    scaling_list_enabled_flag;
+       __u8    amp_enabled_flag;
+       __u8    sample_adaptive_offset_enabled_flag;
+       __u8    pcm_enabled_flag;
+       __u8    pcm_sample_bit_depth_luma_minus1;
+       __u8    pcm_sample_bit_depth_chroma_minus1;
+       __u8    log2_min_pcm_luma_coding_block_size_minus3;
+       __u8    log2_diff_max_min_pcm_luma_coding_block_size;
+       __u8    pcm_loop_filter_disabled_flag;
+       __u8    num_short_term_ref_pic_sets;
+       __u8    long_term_ref_pics_present_flag;
+       __u8    num_long_term_ref_pics_sps;
+       __u8    sps_temporal_mvp_enabled_flag;
+       __u8    strong_intra_smoothing_enabled_flag;
+};
+
+struct v4l2_ctrl_hevc_pps {
+       /* ISO/IEC 23008-2, ITU-T Rec. H.265: Picture parameter set */
+       __u8    dependent_slice_segment_flag;
+       __u8    output_flag_present_flag;
+       __u8    num_extra_slice_header_bits;
+       __u8    sign_data_hiding_enabled_flag;
+       __u8    cabac_init_present_flag;
+       __s8    init_qp_minus26;
+       __u8    constrained_intra_pred_flag;
+       __u8    transform_skip_enabled_flag;
+       __u8    cu_qp_delta_enabled_flag;
+       __u8    diff_cu_qp_delta_depth;
+       __s8    pps_cb_qp_offset;
+       __s8    pps_cr_qp_offset;
+       __u8    pps_slice_chroma_qp_offsets_present_flag;
+       __u8    weighted_pred_flag;
+       __u8    weighted_bipred_flag;
+       __u8    transquant_bypass_enabled_flag;
+       __u8    tiles_enabled_flag;
+       __u8    entropy_coding_sync_enabled_flag;
+       __u8    num_tile_columns_minus1;
+       __u8    num_tile_rows_minus1;
+       __u8    column_width_minus1[20];
+       __u8    row_height_minus1[22];
+       __u8    loop_filter_across_tiles_enabled_flag;
+       __u8    pps_loop_filter_across_slices_enabled_flag;
+       __u8    deblocking_filter_override_enabled_flag;
+       __u8    pps_disable_deblocking_filter_flag;
+       __s8    pps_beta_offset_div2;
+       __s8    pps_tc_offset_div2;
+       __u8    lists_modification_present_flag;
+       __u8    log2_parallel_merge_level_minus2;
+       __u8    slice_segment_header_extension_present_flag;
+       __u8    scaling_list_enable_flag;
+};
+
+#define V4L2_HEVC_DPB_ENTRY_RPS_ST_CURR_BEFORE 0x01
+#define V4L2_HEVC_DPB_ENTRY_RPS_ST_CURR_AFTER  0x02
+#define V4L2_HEVC_DPB_ENTRY_RPS_LT_CURR                0x03
+
+#define V4L2_HEVC_DPB_ENTRIES_NUM_MAX          16
+
+struct v4l2_hevc_dpb_entry {
+       __u64   timestamp;
+       __u8    rps;
+       __u8    field_pic;
+       __u16   pic_order_cnt[2];
+       __u8    padding[2];
+};
+
+struct v4l2_hevc_pred_weight_table {
+       __u8    luma_log2_weight_denom;
+       __s8    delta_chroma_log2_weight_denom;
+
+       __s8    delta_luma_weight_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
+       __s8    luma_offset_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
+       __s8    delta_chroma_weight_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2];
+       __s8    chroma_offset_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2];
+
+       __s8    delta_luma_weight_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
+       __s8    luma_offset_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
+       __s8    delta_chroma_weight_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2];
+       __s8    chroma_offset_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2];
+
+       __u8    padding[2];
+};
+
+struct v4l2_ctrl_hevc_slice_params {
+       __u32   bit_size;
+       __u32   data_bit_offset;
+
+       /* ISO/IEC 23008-2, ITU-T Rec. H.265: NAL unit header */
+       __u8    nal_unit_type;
+       __u8    nuh_temporal_id_plus1;
+
+       /* ISO/IEC 23008-2, ITU-T Rec. H.265: General slice segment header */
+       __u8    slice_type;
+       __u8    colour_plane_id;
+       __u16   slice_pic_order_cnt;
+       __u8    slice_sao_luma_flag;
+       __u8    slice_sao_chroma_flag;
+       __u8    slice_temporal_mvp_enabled_flag;
+       __u8    num_ref_idx_l0_active_minus1;
+       __u8    num_ref_idx_l1_active_minus1;
+       __u8    mvd_l1_zero_flag;
+       __u8    cabac_init_flag;
+       __u8    collocated_from_l0_flag;
+       __u8    collocated_ref_idx;
+       __u8    five_minus_max_num_merge_cand;
+       __u8    use_integer_mv_flag;
+       __s8    slice_qp_delta;
+       __s8    slice_cb_qp_offset;
+       __s8    slice_cr_qp_offset;
+       __s8    slice_act_y_qp_offset;
+       __s8    slice_act_cb_qp_offset;
+       __s8    slice_act_cr_qp_offset;
+       __u8    slice_deblocking_filter_disabled_flag;
+       __s8    slice_beta_offset_div2;
+       __s8    slice_tc_offset_div2;
+       __u8    slice_loop_filter_across_slices_enabled_flag;
+
+       /* ISO/IEC 23008-2, ITU-T Rec. H.265: Picture timing SEI message */
+       __u8    pic_struct;
+
+       /* ISO/IEC 23008-2, ITU-T Rec. H.265: General slice segment header */
+       struct v4l2_hevc_dpb_entry dpb[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
+       __u8    num_active_dpb_entries;
+       __u8    ref_idx_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
+       __u8    ref_idx_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
+
+       __u8    num_rps_poc_st_curr_before;
+       __u8    num_rps_poc_st_curr_after;
+       __u8    num_rps_poc_lt_curr;
+
+       /* ISO/IEC 23008-2, ITU-T Rec. H.265: Weighted prediction parameter */
+       struct v4l2_hevc_pred_weight_table pred_weight_table;
+
+       __u32   slice_segment_addr;
+       __u32   num_entry_point_offsets;
+       __u32   entry_point_offset_minus1[256];
+       __u8    first_slice_segment_in_pic_flag;
+
+       __u8    padding;
+};
+
+struct v4l2_ctrl_hevc_scaling_matrix {
+       __u8    scaling_list_4x4[6][16];
+       __u8    scaling_list_8x8[6][64];
+       __u8    scaling_list_16x16[6][64];
+       __u8    scaling_list_32x32[2][64];
+       __u8    scaling_list_dc_coef_16x16[6];
+       __u8    scaling_list_dc_coef_32x32[2];
+};
+
+#endif
diff --git a/libavcodec/mpeg2-ctrls.h b/libavcodec/mpeg2-ctrls.h
new file mode 100644
index 0000000000..6601455b3d
--- /dev/null
+++ b/libavcodec/mpeg2-ctrls.h
@@ -0,0 +1,82 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * These are the MPEG2 state controls for use with stateless MPEG-2
+ * codec drivers.
+ *
+ * It turns out that these structs are not stable yet and will undergo
+ * more changes. So keep them private until they are stable and ready to
+ * become part of the official public API.
+ */
+
+#ifndef _MPEG2_CTRLS_H_
+#define _MPEG2_CTRLS_H_
+
+#define V4L2_CID_MPEG_VIDEO_MPEG2_SLICE_PARAMS         (V4L2_CID_MPEG_BASE+250)
+#define V4L2_CID_MPEG_VIDEO_MPEG2_QUANTIZATION         (V4L2_CID_MPEG_BASE+251)
+
+/* enum v4l2_ctrl_type type values */
+#define V4L2_CTRL_TYPE_MPEG2_SLICE_PARAMS 0x0103
+#define        V4L2_CTRL_TYPE_MPEG2_QUANTIZATION 0x0104
+
+#define V4L2_MPEG2_PICTURE_CODING_TYPE_I       1
+#define V4L2_MPEG2_PICTURE_CODING_TYPE_P       2
+#define V4L2_MPEG2_PICTURE_CODING_TYPE_B       3
+#define V4L2_MPEG2_PICTURE_CODING_TYPE_D       4
+
+struct v4l2_mpeg2_sequence {
+       /* ISO/IEC 13818-2, ITU-T Rec. H.262: Sequence header */
+       __u16   horizontal_size;
+       __u16   vertical_size;
+       __u32   vbv_buffer_size;
+
+       /* ISO/IEC 13818-2, ITU-T Rec. H.262: Sequence extension */
+       __u16   profile_and_level_indication;
+       __u8    progressive_sequence;
+       __u8    chroma_format;
+};
+
+struct v4l2_mpeg2_picture {
+       /* ISO/IEC 13818-2, ITU-T Rec. H.262: Picture header */
+       __u8    picture_coding_type;
+
+       /* ISO/IEC 13818-2, ITU-T Rec. H.262: Picture coding extension */
+       __u8    f_code[2][2];
+       __u8    intra_dc_precision;
+       __u8    picture_structure;
+       __u8    top_field_first;
+       __u8    frame_pred_frame_dct;
+       __u8    concealment_motion_vectors;
+       __u8    q_scale_type;
+       __u8    intra_vlc_format;
+       __u8    alternate_scan;
+       __u8    repeat_first_field;
+       __u16   progressive_frame;
+};
+
+struct v4l2_ctrl_mpeg2_slice_params {
+       __u32   bit_size;
+       __u32   data_bit_offset;
+       __u64   backward_ref_ts;
+       __u64   forward_ref_ts;
+
+       struct v4l2_mpeg2_sequence sequence;
+       struct v4l2_mpeg2_picture picture;
+
+       /* ISO/IEC 13818-2, ITU-T Rec. H.262: Slice */
+       __u32   quantiser_scale_code;
+};
+
+struct v4l2_ctrl_mpeg2_quantization {
+       /* ISO/IEC 13818-2, ITU-T Rec. H.262: Quant matrix extension */
+       __u8    load_intra_quantiser_matrix;
+       __u8    load_non_intra_quantiser_matrix;
+       __u8    load_chroma_intra_quantiser_matrix;
+       __u8    load_chroma_non_intra_quantiser_matrix;
+
+       __u8    intra_quantiser_matrix[64];
+       __u8    non_intra_quantiser_matrix[64];
+       __u8    chroma_intra_quantiser_matrix[64];
+       __u8    chroma_non_intra_quantiser_matrix[64];
+};
+
+#endif
diff --git a/libavcodec/v4l2_request_h264.c b/libavcodec/v4l2_request_h264.c
index a5c56d81c3..f1bff64c28 100644
--- a/libavcodec/v4l2_request_h264.c
+++ b/libavcodec/v4l2_request_h264.c
@@ -19,6 +19,7 @@
 #include "h264dec.h"
 #include "hwaccel.h"
 #include "v4l2_request.h"
+#include "h264-ctrls.h"
 
 typedef struct V4L2RequestControlsH264 {
     struct v4l2_ctrl_h264_sps sps;
@@ -58,8 +59,8 @@ static void fill_dpb_entry(struct v4l2_h264_dpb_entry *entry, 
const H264Picture
     entry->flags = V4L2_H264_DPB_ENTRY_FLAG_VALID;
     if (pic->reference)
         entry->flags |= V4L2_H264_DPB_ENTRY_FLAG_ACTIVE;
-    if (pic->long_ref)
-        entry->flags |= V4L2_H264_DPB_ENTRY_FLAG_LONG_TERM;
+    /*if (pic->long_ref)
+        entry->flags |= V4L2_H264_DPB_ENTRY_FLAG_LONG_TERM;*/
     entry->top_field_order_cnt = pic->field_poc[0];
     entry->bottom_field_order_cnt = pic->field_poc[1];
 }
diff --git a/libavcodec/v4l2_request_hevc.c b/libavcodec/v4l2_request_hevc.c
index 300c1866ce..7c7948cfbf 100644
--- a/libavcodec/v4l2_request_hevc.c
+++ b/libavcodec/v4l2_request_hevc.c
@@ -19,6 +19,7 @@
 #include "hevcdec.h"
 #include "hwaccel.h"
 #include "v4l2_request.h"
+#include "hevc-ctrls.h"
 
 typedef struct V4L2RequestControlsHEVC {
     struct v4l2_ctrl_hevc_sps sps;
diff --git a/libavcodec/v4l2_request_mpeg2.c b/libavcodec/v4l2_request_mpeg2.c
index 782b9c2471..37a4eae62c 100644
--- a/libavcodec/v4l2_request_mpeg2.c
+++ b/libavcodec/v4l2_request_mpeg2.c
@@ -19,6 +19,7 @@
 #include "hwaccel.h"
 #include "mpegvideo.h"
 #include "v4l2_request.h"
+#include "mpeg2-ctrls.h"
 
 typedef struct V4L2RequestControlsMPEG2 {
     struct v4l2_ctrl_mpeg2_slice_params slice_params;
-- 
2.17.1

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to