| From 2c02837bd99cda8e4f8b9cb5ea74956242b5c851 Mon Sep 17 00:00:00 2001 |
| From: Smitha T Murthy <smitha.t@samsung.com> |
| Date: Fri, 2 Feb 2018 07:25:46 -0500 |
| Subject: [PATCH] media: v4l2: Add v4l2 control IDs for HEVC encoder |
| |
| Add v4l2 controls for HEVC encoder |
| |
| Signed-off-by: Smitha T Murthy <smitha.t@samsung.com> |
| Reviewed-by: Andrzej Hajda <a.hajda@samsung.com> |
| Acked-by: Hans Verkuil <hans.verkuil@cisco.com> |
| Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> |
| Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> |
| --- |
| include/uapi/linux/v4l2-controls.h | 93 ++++++++++++++++++++- |
| 1 files changed, 211 insertions(+), 1 deletion(-) |
| |
| diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h |
| index cbbb750d87d1..8d473c979b61 100644 |
| --- a/include/uapi/linux/v4l2-controls.h |
| +++ b/include/uapi/linux/v4l2-controls.h |
| @@ -589,6 +589,98 @@ enum v4l2_vp8_golden_frame_sel { |
| #define V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (V4L2_CID_MPEG_BASE+510) |
| #define V4L2_CID_MPEG_VIDEO_VPX_PROFILE (V4L2_CID_MPEG_BASE+511) |
| |
| +/* CIDs for HEVC encoding. */ |
| + |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP (V4L2_CID_MPEG_BASE + 600) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP (V4L2_CID_MPEG_BASE + 601) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP (V4L2_CID_MPEG_BASE + 602) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP (V4L2_CID_MPEG_BASE + 603) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP (V4L2_CID_MPEG_BASE + 604) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP (V4L2_CID_MPEG_BASE + 605) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE (V4L2_CID_MPEG_BASE + 606) |
| +enum v4l2_mpeg_video_hevc_hier_coding_type { |
| + V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B = 0, |
| + V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P = 1, |
| +}; |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER (V4L2_CID_MPEG_BASE + 607) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP (V4L2_CID_MPEG_BASE + 608) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP (V4L2_CID_MPEG_BASE + 609) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP (V4L2_CID_MPEG_BASE + 610) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP (V4L2_CID_MPEG_BASE + 611) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP (V4L2_CID_MPEG_BASE + 612) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP (V4L2_CID_MPEG_BASE + 613) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP (V4L2_CID_MPEG_BASE + 614) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_PROFILE (V4L2_CID_MPEG_BASE + 615) |
| +enum v4l2_mpeg_video_hevc_profile { |
| + V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN = 0, |
| + V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE = 1, |
| + V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10 = 2, |
| +}; |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_LEVEL (V4L2_CID_MPEG_BASE + 616) |
| +enum v4l2_mpeg_video_hevc_level { |
| + V4L2_MPEG_VIDEO_HEVC_LEVEL_1 = 0, |
| + V4L2_MPEG_VIDEO_HEVC_LEVEL_2 = 1, |
| + V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1 = 2, |
| + V4L2_MPEG_VIDEO_HEVC_LEVEL_3 = 3, |
| + V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1 = 4, |
| + V4L2_MPEG_VIDEO_HEVC_LEVEL_4 = 5, |
| + V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1 = 6, |
| + V4L2_MPEG_VIDEO_HEVC_LEVEL_5 = 7, |
| + V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1 = 8, |
| + V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2 = 9, |
| + V4L2_MPEG_VIDEO_HEVC_LEVEL_6 = 10, |
| + V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1 = 11, |
| + V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2 = 12, |
| +}; |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION (V4L2_CID_MPEG_BASE + 617) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_TIER (V4L2_CID_MPEG_BASE + 618) |
| +enum v4l2_mpeg_video_hevc_tier { |
| + V4L2_MPEG_VIDEO_HEVC_TIER_MAIN = 0, |
| + V4L2_MPEG_VIDEO_HEVC_TIER_HIGH = 1, |
| +}; |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH (V4L2_CID_MPEG_BASE + 619) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE (V4L2_CID_MPEG_BASE + 620) |
| +enum v4l2_cid_mpeg_video_hevc_loop_filter_mode { |
| + V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED = 0, |
| + V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_ENABLED = 1, |
| + V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY = 2, |
| +}; |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2 (V4L2_CID_MPEG_BASE + 621) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2 (V4L2_CID_MPEG_BASE + 622) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE (V4L2_CID_MPEG_BASE + 623) |
| +enum v4l2_cid_mpeg_video_hevc_refresh_type { |
| + V4L2_MPEG_VIDEO_HEVC_REFRESH_NONE = 0, |
| + V4L2_MPEG_VIDEO_HEVC_REFRESH_CRA = 1, |
| + V4L2_MPEG_VIDEO_HEVC_REFRESH_IDR = 2, |
| +}; |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD (V4L2_CID_MPEG_BASE + 624) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU (V4L2_CID_MPEG_BASE + 625) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED (V4L2_CID_MPEG_BASE + 626) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT (V4L2_CID_MPEG_BASE + 627) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB (V4L2_CID_MPEG_BASE + 628) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID (V4L2_CID_MPEG_BASE + 629) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING (V4L2_CID_MPEG_BASE + 630) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1 (V4L2_CID_MPEG_BASE + 631) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT (V4L2_CID_MPEG_BASE + 632) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION (V4L2_CID_MPEG_BASE + 633) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE (V4L2_CID_MPEG_BASE + 634) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD (V4L2_CID_MPEG_BASE + 635) |
| +enum v4l2_cid_mpeg_video_hevc_size_of_length_field { |
| + V4L2_MPEG_VIDEO_HEVC_SIZE_0 = 0, |
| + V4L2_MPEG_VIDEO_HEVC_SIZE_1 = 1, |
| + V4L2_MPEG_VIDEO_HEVC_SIZE_2 = 2, |
| + V4L2_MPEG_VIDEO_HEVC_SIZE_4 = 3, |
| +}; |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR (V4L2_CID_MPEG_BASE + 636) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR (V4L2_CID_MPEG_BASE + 637) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR (V4L2_CID_MPEG_BASE + 638) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR (V4L2_CID_MPEG_BASE + 639) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR (V4L2_CID_MPEG_BASE + 640) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR (V4L2_CID_MPEG_BASE + 641) |
| +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR (V4L2_CID_MPEG_BASE + 642) |
| +#define V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES (V4L2_CID_MPEG_BASE + 643) |
| +#define V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR (V4L2_CID_MPEG_BASE + 644) |
| + |
| /* MPEG-class control IDs specific to the CX2341x driver as defined by V4L2 */ |
| #define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000) |
| #define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+0) |
| @@ -657,7 +749,6 @@ enum v4l2_mpeg_mfc51_video_force_frame_type { |
| #define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC (V4L2_CID_MPEG_MFC51_BASE+53) |
| #define V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P (V4L2_CID_MPEG_MFC51_BASE+54) |
| |
| - |
| /* Camera class control IDs */ |
| |
| #define V4L2_CID_CAMERA_CLASS_BASE (V4L2_CTRL_CLASS_CAMERA | 0x900) |
| -- |
| 2.40.0.348.gf938b09366-goog |
| |