.. | .. |
---|
50 | 50 | #ifndef __LINUX_V4L2_CONTROLS_H |
---|
51 | 51 | #define __LINUX_V4L2_CONTROLS_H |
---|
52 | 52 | |
---|
| 53 | +#include <linux/types.h> |
---|
| 54 | + |
---|
53 | 55 | /* Control classes */ |
---|
54 | 56 | #define V4L2_CTRL_CLASS_USER 0x00980000 /* Old-style 'user' controls */ |
---|
55 | 57 | #define V4L2_CTRL_CLASS_MPEG 0x00990000 /* MPEG-compression controls */ |
---|
.. | .. |
---|
63 | 65 | #define V4L2_CTRL_CLASS_FM_RX 0x00a10000 /* FM Receiver controls */ |
---|
64 | 66 | #define V4L2_CTRL_CLASS_RF_TUNER 0x00a20000 /* RF tuner controls */ |
---|
65 | 67 | #define V4L2_CTRL_CLASS_DETECT 0x00a30000 /* Detection controls */ |
---|
| 68 | +#define V4L2_CTRL_CLASS_COLORIMETRY 0x00a50000 /* Colorimetry controls */ |
---|
66 | 69 | |
---|
67 | 70 | /* User-class control IDs */ |
---|
68 | 71 | |
---|
.. | .. |
---|
186 | 189 | */ |
---|
187 | 190 | #define V4L2_CID_USER_MAX217X_BASE (V4L2_CID_USER_BASE + 0x1090) |
---|
188 | 191 | |
---|
189 | | -/* The base for the tc35874x driver controls. |
---|
| 192 | +/* |
---|
| 193 | + * The base for the tc35874x driver controls. |
---|
190 | 194 | * We reserve 16 controls for this driver. |
---|
191 | 195 | */ |
---|
192 | 196 | #define V4L2_CID_USER_TC35874X_BASE (V4L2_CID_USER_BASE + 0x10a0) |
---|
.. | .. |
---|
194 | 198 | /* The base for the imx driver controls. |
---|
195 | 199 | * We reserve 16 controls for this driver. */ |
---|
196 | 200 | #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) |
---|
197 | 207 | |
---|
198 | 208 | /* MPEG-class control IDs */ |
---|
199 | 209 | /* The MPEG controls are applicable to all codec controls |
---|
.. | .. |
---|
372 | 382 | enum v4l2_mpeg_video_bitrate_mode { |
---|
373 | 383 | V4L2_MPEG_VIDEO_BITRATE_MODE_VBR = 0, |
---|
374 | 384 | V4L2_MPEG_VIDEO_BITRATE_MODE_CBR = 1, |
---|
| 385 | + V4L2_MPEG_VIDEO_BITRATE_MODE_CQ = 2, |
---|
375 | 386 | }; |
---|
376 | 387 | #define V4L2_CID_MPEG_VIDEO_BITRATE (V4L2_CID_MPEG_BASE+207) |
---|
377 | 388 | #define V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (V4L2_CID_MPEG_BASE+208) |
---|
.. | .. |
---|
395 | 406 | #define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE (V4L2_CID_MPEG_BASE+221) |
---|
396 | 407 | enum v4l2_mpeg_video_multi_slice_mode { |
---|
397 | 408 | 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... */ |
---|
398 | 413 | V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_MB = 1, |
---|
399 | 414 | V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_BYTES = 2, |
---|
| 415 | +#endif |
---|
400 | 416 | }; |
---|
401 | 417 | #define V4L2_CID_MPEG_VIDEO_VBV_SIZE (V4L2_CID_MPEG_BASE+222) |
---|
402 | 418 | #define V4L2_CID_MPEG_VIDEO_DEC_PTS (V4L2_CID_MPEG_BASE+223) |
---|
.. | .. |
---|
406 | 422 | #define V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE (V4L2_CID_MPEG_BASE+227) |
---|
407 | 423 | #define V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (V4L2_CID_MPEG_BASE+228) |
---|
408 | 424 | #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) |
---|
409 | 453 | |
---|
410 | 454 | #define V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (V4L2_CID_MPEG_BASE+300) |
---|
411 | 455 | #define V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (V4L2_CID_MPEG_BASE+301) |
---|
.. | .. |
---|
541 | 585 | }; |
---|
542 | 586 | #define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER (V4L2_CID_MPEG_BASE+381) |
---|
543 | 587 | #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) |
---|
544 | 589 | #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) |
---|
545 | 603 | #define V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP (V4L2_CID_MPEG_BASE+400) |
---|
546 | 604 | #define V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP (V4L2_CID_MPEG_BASE+401) |
---|
547 | 605 | #define V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP (V4L2_CID_MPEG_BASE+402) |
---|
.. | .. |
---|
614 | 672 | V4L2_MPEG_VIDEO_VP9_PROFILE_1 = 1, |
---|
615 | 673 | V4L2_MPEG_VIDEO_VP9_PROFILE_2 = 2, |
---|
616 | 674 | 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, |
---|
617 | 692 | }; |
---|
618 | 693 | |
---|
619 | 694 | /* CIDs for HEVC encoding. */ |
---|
.. | .. |
---|
707 | 782 | #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR (V4L2_CID_MPEG_BASE + 642) |
---|
708 | 783 | #define V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES (V4L2_CID_MPEG_BASE + 643) |
---|
709 | 784 | #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) |
---|
710 | 801 | |
---|
711 | 802 | /* MPEG-class control IDs specific to the CX2341x driver as defined by V4L2 */ |
---|
712 | 803 | #define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000) |
---|
.. | .. |
---|
888 | 979 | #define V4L2_CID_PAN_SPEED (V4L2_CID_CAMERA_CLASS_BASE+32) |
---|
889 | 980 | #define V4L2_CID_TILT_SPEED (V4L2_CID_CAMERA_CLASS_BASE+33) |
---|
890 | 981 | |
---|
| 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 | + |
---|
891 | 989 | /* FM Modulator class control IDs */ |
---|
892 | 990 | |
---|
893 | 991 | #define V4L2_CID_FM_TX_CLASS_BASE (V4L2_CTRL_CLASS_FM_TX | 0x900) |
---|
.. | .. |
---|
1010 | 1108 | #define V4L2_CID_TEST_PATTERN_GREENR (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 5) |
---|
1011 | 1109 | #define V4L2_CID_TEST_PATTERN_BLUE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 6) |
---|
1012 | 1110 | #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) |
---|
1013 | 1112 | |
---|
1014 | 1113 | |
---|
1015 | 1114 | /* Image processing controls */ |
---|
.. | .. |
---|
1103 | 1202 | #define V4L2_CID_DETECT_MD_THRESHOLD_GRID (V4L2_CID_DETECT_CLASS_BASE + 3) |
---|
1104 | 1203 | #define V4L2_CID_DETECT_MD_REGION_GRID (V4L2_CID_DETECT_CLASS_BASE + 4) |
---|
1105 | 1204 | |
---|
| 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 | + |
---|
1106 | 1239 | #endif |
---|