summaryrefslogtreecommitdiffstats
path: root/include/uapi/linux/v4l2-controls.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/uapi/linux/v4l2-controls.h')
-rw-r--r--include/uapi/linux/v4l2-controls.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h
index dfff69ed88f7..4430f5cb2212 100644
--- a/include/uapi/linux/v4l2-controls.h
+++ b/include/uapi/linux/v4l2-controls.h
@@ -1618,6 +1618,61 @@ struct v4l2_ctrl_h264_decode_params {
__u32 flags;
};
+#define V4L2_CID_STATELESS_H264_ENCODE_PARAMS (V4L2_CID_CODEC_STATELESS_BASE + 8)
+
+struct v4l2_ctrl_h264_encode_params {
+ /* Slice parameters */
+
+ __u8 slice_type;
+ __u8 pic_parameter_set_id;
+ __u16 frame_num;
+ __u16 idr_pic_id;
+ __u8 cabac_init_idc;
+ __u8 disable_deblocking_filter_idc;
+ __s8 slice_alpha_c0_offset_div2;
+ __s8 slice_beta_offset_div2;
+
+ __s32 slice_size_mb_rows;
+
+ /* PPS parameters */
+
+ __s8 pic_init_qp_minus26;
+ __s8 chroma_qp_index_offset;
+
+ __u32 flags; /* V4L2_H264_ENCODE_FLAG_ */
+
+ /* Reference */
+
+ __u64 reference_ts;
+};
+
+#define V4L2_H264_ENCODE_FLAG_ENTROPY_CODING_MODE 0x01
+#define V4L2_H264_ENCODE_FLAG_TRANSFORM_8X8_MODE 0x02
+#define V4L2_H264_ENCODE_FLAG_CONSTRAINED_INTRA_PRED 0x04
+
+#define V4L2_CID_STATELESS_H264_ENCODE_RC (V4L2_CID_CODEC_STATELESS_BASE + 9)
+
+struct v4l2_ctrl_h264_encode_rc {
+ __u32 qp;
+ __u32 qp_min;
+ __u32 qp_max;
+ __s32 mad_qp_delta;
+ __u32 mad_threshold;
+
+ __u32 cp_distance_mbs;
+ __u32 cp_target[10];
+ __s32 cp_target_error[6];
+ __s32 cp_qp_delta[7];
+};
+
+#define V4L2_CID_STATELESS_H264_ENCODE_FEEDBACK (V4L2_CID_CODEC_STATELESS_BASE + 10)
+
+struct v4l2_ctrl_h264_encode_feedback {
+ __u32 qp_sum;
+ __u32 cp[10];
+ __u32 mad_count;
+ __u32 rlc_count;
+};
/* Stateless FWHT control, used by the vicodec driver */