hc
2024-10-09 05e59e5fb0064c97a1c10921ecd549f2d4a58565
kernel/include/uapi/linux/v4l2-controls.h
....@@ -50,6 +50,8 @@
5050 #ifndef __LINUX_V4L2_CONTROLS_H
5151 #define __LINUX_V4L2_CONTROLS_H
5252
53
+#include <linux/types.h>
54
+
5355 /* Control classes */
5456 #define V4L2_CTRL_CLASS_USER 0x00980000 /* Old-style 'user' controls */
5557 #define V4L2_CTRL_CLASS_MPEG 0x00990000 /* MPEG-compression controls */
....@@ -63,6 +65,7 @@
6365 #define V4L2_CTRL_CLASS_FM_RX 0x00a10000 /* FM Receiver controls */
6466 #define V4L2_CTRL_CLASS_RF_TUNER 0x00a20000 /* RF tuner controls */
6567 #define V4L2_CTRL_CLASS_DETECT 0x00a30000 /* Detection controls */
68
+#define V4L2_CTRL_CLASS_COLORIMETRY 0x00a50000 /* Colorimetry controls */
6669
6770 /* User-class control IDs */
6871
....@@ -186,7 +189,8 @@
186189 */
187190 #define V4L2_CID_USER_MAX217X_BASE (V4L2_CID_USER_BASE + 0x1090)
188191
189
-/* The base for the tc35874x driver controls.
192
+/*
193
+ * The base for the tc35874x driver controls.
190194 * We reserve 16 controls for this driver.
191195 */
192196 #define V4L2_CID_USER_TC35874X_BASE (V4L2_CID_USER_BASE + 0x10a0)
....@@ -194,6 +198,12 @@
194198 /* The base for the imx driver controls.
195199 * We reserve 16 controls for this driver. */
196200 #define V4L2_CID_USER_IMX_BASE (V4L2_CID_USER_BASE + 0x10b0)
201
+
202
+/*
203
+ * The base for the atmel isc driver controls.
204
+ * We reserve 32 controls for this driver.
205
+ */
206
+#define V4L2_CID_USER_ATMEL_ISC_BASE (V4L2_CID_USER_BASE + 0x10c0)
197207
198208 /* MPEG-class control IDs */
199209 /* The MPEG controls are applicable to all codec controls
....@@ -372,6 +382,7 @@
372382 enum v4l2_mpeg_video_bitrate_mode {
373383 V4L2_MPEG_VIDEO_BITRATE_MODE_VBR = 0,
374384 V4L2_MPEG_VIDEO_BITRATE_MODE_CBR = 1,
385
+ V4L2_MPEG_VIDEO_BITRATE_MODE_CQ = 2,
375386 };
376387 #define V4L2_CID_MPEG_VIDEO_BITRATE (V4L2_CID_MPEG_BASE+207)
377388 #define V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (V4L2_CID_MPEG_BASE+208)
....@@ -395,8 +406,13 @@
395406 #define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE (V4L2_CID_MPEG_BASE+221)
396407 enum v4l2_mpeg_video_multi_slice_mode {
397408 V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE = 0,
409
+ V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB = 1,
410
+ V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES = 2,
411
+#ifndef __KERNEL__
412
+ /* Kept for backwards compatibility reasons. Stupid typo... */
398413 V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_MB = 1,
399414 V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_BYTES = 2,
415
+#endif
400416 };
401417 #define V4L2_CID_MPEG_VIDEO_VBV_SIZE (V4L2_CID_MPEG_BASE+222)
402418 #define V4L2_CID_MPEG_VIDEO_DEC_PTS (V4L2_CID_MPEG_BASE+223)
....@@ -406,6 +422,34 @@
406422 #define V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE (V4L2_CID_MPEG_BASE+227)
407423 #define V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (V4L2_CID_MPEG_BASE+228)
408424 #define V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME (V4L2_CID_MPEG_BASE+229)
425
+#define V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID (V4L2_CID_MPEG_BASE+230)
426
+#define V4L2_CID_MPEG_VIDEO_AU_DELIMITER (V4L2_CID_MPEG_BASE+231)
427
+#define V4L2_CID_MPEG_VIDEO_LTR_COUNT (V4L2_CID_MPEG_BASE+232)
428
+#define V4L2_CID_MPEG_VIDEO_FRAME_LTR_INDEX (V4L2_CID_MPEG_BASE+233)
429
+#define V4L2_CID_MPEG_VIDEO_USE_LTR_FRAMES (V4L2_CID_MPEG_BASE+234)
430
+#define V4L2_CID_MPEG_VIDEO_DEC_CONCEAL_COLOR (V4L2_CID_MPEG_BASE+235)
431
+
432
+/* CIDs for the MPEG-2 Part 2 (H.262) codec */
433
+#define V4L2_CID_MPEG_VIDEO_MPEG2_LEVEL (V4L2_CID_MPEG_BASE+270)
434
+enum v4l2_mpeg_video_mpeg2_level {
435
+ V4L2_MPEG_VIDEO_MPEG2_LEVEL_LOW = 0,
436
+ V4L2_MPEG_VIDEO_MPEG2_LEVEL_MAIN = 1,
437
+ V4L2_MPEG_VIDEO_MPEG2_LEVEL_HIGH_1440 = 2,
438
+ V4L2_MPEG_VIDEO_MPEG2_LEVEL_HIGH = 3,
439
+};
440
+#define V4L2_CID_MPEG_VIDEO_MPEG2_PROFILE (V4L2_CID_MPEG_BASE+271)
441
+enum v4l2_mpeg_video_mpeg2_profile {
442
+ V4L2_MPEG_VIDEO_MPEG2_PROFILE_SIMPLE = 0,
443
+ V4L2_MPEG_VIDEO_MPEG2_PROFILE_MAIN = 1,
444
+ V4L2_MPEG_VIDEO_MPEG2_PROFILE_SNR_SCALABLE = 2,
445
+ V4L2_MPEG_VIDEO_MPEG2_PROFILE_SPATIALLY_SCALABLE = 3,
446
+ V4L2_MPEG_VIDEO_MPEG2_PROFILE_HIGH = 4,
447
+ V4L2_MPEG_VIDEO_MPEG2_PROFILE_MULTIVIEW = 5,
448
+};
449
+
450
+/* CIDs for the FWHT codec as used by the vicodec driver. */
451
+#define V4L2_CID_FWHT_I_FRAME_QP (V4L2_CID_MPEG_BASE + 290)
452
+#define V4L2_CID_FWHT_P_FRAME_QP (V4L2_CID_MPEG_BASE + 291)
409453
410454 #define V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (V4L2_CID_MPEG_BASE+300)
411455 #define V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (V4L2_CID_MPEG_BASE+301)
....@@ -541,7 +585,21 @@
541585 };
542586 #define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER (V4L2_CID_MPEG_BASE+381)
543587 #define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP (V4L2_CID_MPEG_BASE+382)
588
+#define V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION (V4L2_CID_MPEG_BASE+383)
544589 #define V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET (V4L2_CID_MPEG_BASE+384)
590
+#define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP (V4L2_CID_MPEG_BASE+385)
591
+#define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP (V4L2_CID_MPEG_BASE+386)
592
+#define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP (V4L2_CID_MPEG_BASE+387)
593
+#define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP (V4L2_CID_MPEG_BASE+388)
594
+#define V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MIN_QP (V4L2_CID_MPEG_BASE+389)
595
+#define V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MAX_QP (V4L2_CID_MPEG_BASE+390)
596
+#define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L0_BR (V4L2_CID_MPEG_BASE+391)
597
+#define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L1_BR (V4L2_CID_MPEG_BASE+392)
598
+#define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L2_BR (V4L2_CID_MPEG_BASE+393)
599
+#define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L3_BR (V4L2_CID_MPEG_BASE+394)
600
+#define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L4_BR (V4L2_CID_MPEG_BASE+395)
601
+#define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L5_BR (V4L2_CID_MPEG_BASE+396)
602
+#define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L6_BR (V4L2_CID_MPEG_BASE+397)
545603 #define V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP (V4L2_CID_MPEG_BASE+400)
546604 #define V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP (V4L2_CID_MPEG_BASE+401)
547605 #define V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP (V4L2_CID_MPEG_BASE+402)
....@@ -614,6 +672,23 @@
614672 V4L2_MPEG_VIDEO_VP9_PROFILE_1 = 1,
615673 V4L2_MPEG_VIDEO_VP9_PROFILE_2 = 2,
616674 V4L2_MPEG_VIDEO_VP9_PROFILE_3 = 3,
675
+};
676
+#define V4L2_CID_MPEG_VIDEO_VP9_LEVEL (V4L2_CID_MPEG_BASE+513)
677
+enum v4l2_mpeg_video_vp9_level {
678
+ V4L2_MPEG_VIDEO_VP9_LEVEL_1_0 = 0,
679
+ V4L2_MPEG_VIDEO_VP9_LEVEL_1_1 = 1,
680
+ V4L2_MPEG_VIDEO_VP9_LEVEL_2_0 = 2,
681
+ V4L2_MPEG_VIDEO_VP9_LEVEL_2_1 = 3,
682
+ V4L2_MPEG_VIDEO_VP9_LEVEL_3_0 = 4,
683
+ V4L2_MPEG_VIDEO_VP9_LEVEL_3_1 = 5,
684
+ V4L2_MPEG_VIDEO_VP9_LEVEL_4_0 = 6,
685
+ V4L2_MPEG_VIDEO_VP9_LEVEL_4_1 = 7,
686
+ V4L2_MPEG_VIDEO_VP9_LEVEL_5_0 = 8,
687
+ V4L2_MPEG_VIDEO_VP9_LEVEL_5_1 = 9,
688
+ V4L2_MPEG_VIDEO_VP9_LEVEL_5_2 = 10,
689
+ V4L2_MPEG_VIDEO_VP9_LEVEL_6_0 = 11,
690
+ V4L2_MPEG_VIDEO_VP9_LEVEL_6_1 = 12,
691
+ V4L2_MPEG_VIDEO_VP9_LEVEL_6_2 = 13,
617692 };
618693
619694 /* CIDs for HEVC encoding. */
....@@ -707,6 +782,22 @@
707782 #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR (V4L2_CID_MPEG_BASE + 642)
708783 #define V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES (V4L2_CID_MPEG_BASE + 643)
709784 #define V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR (V4L2_CID_MPEG_BASE + 644)
785
+#define V4L2_CID_MPEG_VIDEO_CONSTANT_QUALITY (V4L2_CID_MPEG_BASE + 645)
786
+#define V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE (V4L2_CID_MPEG_BASE + 646)
787
+enum v4l2_mpeg_video_frame_skip_mode {
788
+ V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED = 0,
789
+ V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_LEVEL_LIMIT = 1,
790
+ V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT = 2,
791
+};
792
+
793
+#define V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MIN_QP (V4L2_CID_MPEG_BASE + 647)
794
+#define V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MAX_QP (V4L2_CID_MPEG_BASE + 648)
795
+#define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MIN_QP (V4L2_CID_MPEG_BASE + 649)
796
+#define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MAX_QP (V4L2_CID_MPEG_BASE + 650)
797
+#define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MIN_QP (V4L2_CID_MPEG_BASE + 651)
798
+#define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MAX_QP (V4L2_CID_MPEG_BASE + 652)
799
+#define V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY (V4L2_CID_MPEG_BASE + 653)
800
+#define V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE (V4L2_CID_MPEG_BASE + 654)
710801
711802 /* MPEG-class control IDs specific to the CX2341x driver as defined by V4L2 */
712803 #define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000)
....@@ -888,6 +979,13 @@
888979 #define V4L2_CID_PAN_SPEED (V4L2_CID_CAMERA_CLASS_BASE+32)
889980 #define V4L2_CID_TILT_SPEED (V4L2_CID_CAMERA_CLASS_BASE+33)
890981
982
+#define V4L2_CID_CAMERA_ORIENTATION (V4L2_CID_CAMERA_CLASS_BASE+34)
983
+#define V4L2_CAMERA_ORIENTATION_FRONT 0
984
+#define V4L2_CAMERA_ORIENTATION_BACK 1
985
+#define V4L2_CAMERA_ORIENTATION_EXTERNAL 2
986
+
987
+#define V4L2_CID_CAMERA_SENSOR_ROTATION (V4L2_CID_CAMERA_CLASS_BASE+35)
988
+
891989 /* FM Modulator class control IDs */
892990
893991 #define V4L2_CID_FM_TX_CLASS_BASE (V4L2_CTRL_CLASS_FM_TX | 0x900)
....@@ -1010,6 +1108,7 @@
10101108 #define V4L2_CID_TEST_PATTERN_GREENR (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 5)
10111109 #define V4L2_CID_TEST_PATTERN_BLUE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 6)
10121110 #define V4L2_CID_TEST_PATTERN_GREENB (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 7)
1111
+#define V4L2_CID_UNIT_CELL_SIZE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 8)
10131112
10141113
10151114 /* Image processing controls */
....@@ -1103,4 +1202,38 @@
11031202 #define V4L2_CID_DETECT_MD_THRESHOLD_GRID (V4L2_CID_DETECT_CLASS_BASE + 3)
11041203 #define V4L2_CID_DETECT_MD_REGION_GRID (V4L2_CID_DETECT_CLASS_BASE + 4)
11051204
1205
+#define V4L2_CID_COLORIMETRY_CLASS_BASE (V4L2_CTRL_CLASS_COLORIMETRY | 0x900)
1206
+#define V4L2_CID_COLORIMETRY_CLASS (V4L2_CTRL_CLASS_COLORIMETRY | 1)
1207
+
1208
+#define V4L2_CID_COLORIMETRY_HDR10_CLL_INFO (V4L2_CID_COLORIMETRY_CLASS_BASE + 0)
1209
+
1210
+struct v4l2_ctrl_hdr10_cll_info {
1211
+ __u16 max_content_light_level;
1212
+ __u16 max_pic_average_light_level;
1213
+};
1214
+
1215
+#define V4L2_CID_COLORIMETRY_HDR10_MASTERING_DISPLAY (V4L2_CID_COLORIMETRY_CLASS_BASE + 1)
1216
+
1217
+#define V4L2_HDR10_MASTERING_PRIMARIES_X_LOW 5
1218
+#define V4L2_HDR10_MASTERING_PRIMARIES_X_HIGH 37000
1219
+#define V4L2_HDR10_MASTERING_PRIMARIES_Y_LOW 5
1220
+#define V4L2_HDR10_MASTERING_PRIMARIES_Y_HIGH 42000
1221
+#define V4L2_HDR10_MASTERING_WHITE_POINT_X_LOW 5
1222
+#define V4L2_HDR10_MASTERING_WHITE_POINT_X_HIGH 37000
1223
+#define V4L2_HDR10_MASTERING_WHITE_POINT_Y_LOW 5
1224
+#define V4L2_HDR10_MASTERING_WHITE_POINT_Y_HIGH 42000
1225
+#define V4L2_HDR10_MASTERING_MAX_LUMA_LOW 50000
1226
+#define V4L2_HDR10_MASTERING_MAX_LUMA_HIGH 100000000
1227
+#define V4L2_HDR10_MASTERING_MIN_LUMA_LOW 1
1228
+#define V4L2_HDR10_MASTERING_MIN_LUMA_HIGH 50000
1229
+
1230
+struct v4l2_ctrl_hdr10_mastering_display {
1231
+ __u16 display_primaries_x[3];
1232
+ __u16 display_primaries_y[3];
1233
+ __u16 white_point_x;
1234
+ __u16 white_point_y;
1235
+ __u32 max_display_mastering_luminance;
1236
+ __u32 min_display_mastering_luminance;
1237
+};
1238
+
11061239 #endif