0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050 #ifndef __LINUX_V4L2_CONTROLS_H
0051 #define __LINUX_V4L2_CONTROLS_H
0052
0053 #include <linux/const.h>
0054 #include <linux/types.h>
0055
0056
0057 #define V4L2_CTRL_CLASS_USER 0x00980000
0058 #define V4L2_CTRL_CLASS_CODEC 0x00990000
0059 #define V4L2_CTRL_CLASS_CAMERA 0x009a0000
0060 #define V4L2_CTRL_CLASS_FM_TX 0x009b0000
0061 #define V4L2_CTRL_CLASS_FLASH 0x009c0000
0062 #define V4L2_CTRL_CLASS_JPEG 0x009d0000
0063 #define V4L2_CTRL_CLASS_IMAGE_SOURCE 0x009e0000
0064 #define V4L2_CTRL_CLASS_IMAGE_PROC 0x009f0000
0065 #define V4L2_CTRL_CLASS_DV 0x00a00000
0066 #define V4L2_CTRL_CLASS_FM_RX 0x00a10000
0067 #define V4L2_CTRL_CLASS_RF_TUNER 0x00a20000
0068 #define V4L2_CTRL_CLASS_DETECT 0x00a30000
0069 #define V4L2_CTRL_CLASS_CODEC_STATELESS 0x00a40000
0070 #define V4L2_CTRL_CLASS_COLORIMETRY 0x00a50000
0071
0072
0073
0074 #define V4L2_CID_BASE (V4L2_CTRL_CLASS_USER | 0x900)
0075 #define V4L2_CID_USER_BASE V4L2_CID_BASE
0076 #define V4L2_CID_USER_CLASS (V4L2_CTRL_CLASS_USER | 1)
0077 #define V4L2_CID_BRIGHTNESS (V4L2_CID_BASE+0)
0078 #define V4L2_CID_CONTRAST (V4L2_CID_BASE+1)
0079 #define V4L2_CID_SATURATION (V4L2_CID_BASE+2)
0080 #define V4L2_CID_HUE (V4L2_CID_BASE+3)
0081 #define V4L2_CID_AUDIO_VOLUME (V4L2_CID_BASE+5)
0082 #define V4L2_CID_AUDIO_BALANCE (V4L2_CID_BASE+6)
0083 #define V4L2_CID_AUDIO_BASS (V4L2_CID_BASE+7)
0084 #define V4L2_CID_AUDIO_TREBLE (V4L2_CID_BASE+8)
0085 #define V4L2_CID_AUDIO_MUTE (V4L2_CID_BASE+9)
0086 #define V4L2_CID_AUDIO_LOUDNESS (V4L2_CID_BASE+10)
0087 #define V4L2_CID_BLACK_LEVEL (V4L2_CID_BASE+11)
0088 #define V4L2_CID_AUTO_WHITE_BALANCE (V4L2_CID_BASE+12)
0089 #define V4L2_CID_DO_WHITE_BALANCE (V4L2_CID_BASE+13)
0090 #define V4L2_CID_RED_BALANCE (V4L2_CID_BASE+14)
0091 #define V4L2_CID_BLUE_BALANCE (V4L2_CID_BASE+15)
0092 #define V4L2_CID_GAMMA (V4L2_CID_BASE+16)
0093 #define V4L2_CID_WHITENESS (V4L2_CID_GAMMA)
0094 #define V4L2_CID_EXPOSURE (V4L2_CID_BASE+17)
0095 #define V4L2_CID_AUTOGAIN (V4L2_CID_BASE+18)
0096 #define V4L2_CID_GAIN (V4L2_CID_BASE+19)
0097 #define V4L2_CID_HFLIP (V4L2_CID_BASE+20)
0098 #define V4L2_CID_VFLIP (V4L2_CID_BASE+21)
0099
0100 #define V4L2_CID_POWER_LINE_FREQUENCY (V4L2_CID_BASE+24)
0101 enum v4l2_power_line_frequency {
0102 V4L2_CID_POWER_LINE_FREQUENCY_DISABLED = 0,
0103 V4L2_CID_POWER_LINE_FREQUENCY_50HZ = 1,
0104 V4L2_CID_POWER_LINE_FREQUENCY_60HZ = 2,
0105 V4L2_CID_POWER_LINE_FREQUENCY_AUTO = 3,
0106 };
0107 #define V4L2_CID_HUE_AUTO (V4L2_CID_BASE+25)
0108 #define V4L2_CID_WHITE_BALANCE_TEMPERATURE (V4L2_CID_BASE+26)
0109 #define V4L2_CID_SHARPNESS (V4L2_CID_BASE+27)
0110 #define V4L2_CID_BACKLIGHT_COMPENSATION (V4L2_CID_BASE+28)
0111 #define V4L2_CID_CHROMA_AGC (V4L2_CID_BASE+29)
0112 #define V4L2_CID_COLOR_KILLER (V4L2_CID_BASE+30)
0113 #define V4L2_CID_COLORFX (V4L2_CID_BASE+31)
0114 enum v4l2_colorfx {
0115 V4L2_COLORFX_NONE = 0,
0116 V4L2_COLORFX_BW = 1,
0117 V4L2_COLORFX_SEPIA = 2,
0118 V4L2_COLORFX_NEGATIVE = 3,
0119 V4L2_COLORFX_EMBOSS = 4,
0120 V4L2_COLORFX_SKETCH = 5,
0121 V4L2_COLORFX_SKY_BLUE = 6,
0122 V4L2_COLORFX_GRASS_GREEN = 7,
0123 V4L2_COLORFX_SKIN_WHITEN = 8,
0124 V4L2_COLORFX_VIVID = 9,
0125 V4L2_COLORFX_AQUA = 10,
0126 V4L2_COLORFX_ART_FREEZE = 11,
0127 V4L2_COLORFX_SILHOUETTE = 12,
0128 V4L2_COLORFX_SOLARIZATION = 13,
0129 V4L2_COLORFX_ANTIQUE = 14,
0130 V4L2_COLORFX_SET_CBCR = 15,
0131 V4L2_COLORFX_SET_RGB = 16,
0132 };
0133 #define V4L2_CID_AUTOBRIGHTNESS (V4L2_CID_BASE+32)
0134 #define V4L2_CID_BAND_STOP_FILTER (V4L2_CID_BASE+33)
0135
0136 #define V4L2_CID_ROTATE (V4L2_CID_BASE+34)
0137 #define V4L2_CID_BG_COLOR (V4L2_CID_BASE+35)
0138
0139 #define V4L2_CID_CHROMA_GAIN (V4L2_CID_BASE+36)
0140
0141 #define V4L2_CID_ILLUMINATORS_1 (V4L2_CID_BASE+37)
0142 #define V4L2_CID_ILLUMINATORS_2 (V4L2_CID_BASE+38)
0143
0144 #define V4L2_CID_MIN_BUFFERS_FOR_CAPTURE (V4L2_CID_BASE+39)
0145 #define V4L2_CID_MIN_BUFFERS_FOR_OUTPUT (V4L2_CID_BASE+40)
0146
0147 #define V4L2_CID_ALPHA_COMPONENT (V4L2_CID_BASE+41)
0148 #define V4L2_CID_COLORFX_CBCR (V4L2_CID_BASE+42)
0149 #define V4L2_CID_COLORFX_RGB (V4L2_CID_BASE+43)
0150
0151
0152 #define V4L2_CID_LASTP1 (V4L2_CID_BASE+44)
0153
0154
0155
0156
0157
0158 #define V4L2_CID_USER_MEYE_BASE (V4L2_CID_USER_BASE + 0x1000)
0159
0160
0161
0162 #define V4L2_CID_USER_BTTV_BASE (V4L2_CID_USER_BASE + 0x1010)
0163
0164
0165
0166
0167 #define V4L2_CID_USER_S2255_BASE (V4L2_CID_USER_BASE + 0x1030)
0168
0169
0170
0171
0172
0173 #define V4L2_CID_USER_SI476X_BASE (V4L2_CID_USER_BASE + 0x1040)
0174
0175
0176
0177 #define V4L2_CID_USER_TI_VPE_BASE (V4L2_CID_USER_BASE + 0x1050)
0178
0179
0180
0181 #define V4L2_CID_USER_SAA7134_BASE (V4L2_CID_USER_BASE + 0x1060)
0182
0183
0184
0185 #define V4L2_CID_USER_ADV7180_BASE (V4L2_CID_USER_BASE + 0x1070)
0186
0187
0188
0189 #define V4L2_CID_USER_TC358743_BASE (V4L2_CID_USER_BASE + 0x1080)
0190
0191
0192
0193
0194 #define V4L2_CID_USER_MAX217X_BASE (V4L2_CID_USER_BASE + 0x1090)
0195
0196
0197
0198 #define V4L2_CID_USER_IMX_BASE (V4L2_CID_USER_BASE + 0x10b0)
0199
0200
0201
0202
0203
0204 #define V4L2_CID_USER_ATMEL_ISC_BASE (V4L2_CID_USER_BASE + 0x10c0)
0205
0206
0207
0208
0209
0210 #define V4L2_CID_USER_CODA_BASE (V4L2_CID_USER_BASE + 0x10e0)
0211
0212
0213
0214
0215 #define V4L2_CID_USER_CCS_BASE (V4L2_CID_USER_BASE + 0x10f0)
0216
0217
0218
0219
0220 #define V4L2_CID_USER_ALLEGRO_BASE (V4L2_CID_USER_BASE + 0x1170)
0221
0222
0223
0224
0225
0226 #define V4L2_CID_USER_ISL7998X_BASE (V4L2_CID_USER_BASE + 0x1180)
0227
0228
0229
0230
0231
0232 #define V4L2_CID_CODEC_BASE (V4L2_CTRL_CLASS_CODEC | 0x900)
0233 #define V4L2_CID_CODEC_CLASS (V4L2_CTRL_CLASS_CODEC | 1)
0234
0235
0236 #define V4L2_CID_MPEG_STREAM_TYPE (V4L2_CID_CODEC_BASE+0)
0237 enum v4l2_mpeg_stream_type {
0238 V4L2_MPEG_STREAM_TYPE_MPEG2_PS = 0,
0239 V4L2_MPEG_STREAM_TYPE_MPEG2_TS = 1,
0240 V4L2_MPEG_STREAM_TYPE_MPEG1_SS = 2,
0241 V4L2_MPEG_STREAM_TYPE_MPEG2_DVD = 3,
0242 V4L2_MPEG_STREAM_TYPE_MPEG1_VCD = 4,
0243 V4L2_MPEG_STREAM_TYPE_MPEG2_SVCD = 5,
0244 };
0245 #define V4L2_CID_MPEG_STREAM_PID_PMT (V4L2_CID_CODEC_BASE+1)
0246 #define V4L2_CID_MPEG_STREAM_PID_AUDIO (V4L2_CID_CODEC_BASE+2)
0247 #define V4L2_CID_MPEG_STREAM_PID_VIDEO (V4L2_CID_CODEC_BASE+3)
0248 #define V4L2_CID_MPEG_STREAM_PID_PCR (V4L2_CID_CODEC_BASE+4)
0249 #define V4L2_CID_MPEG_STREAM_PES_ID_AUDIO (V4L2_CID_CODEC_BASE+5)
0250 #define V4L2_CID_MPEG_STREAM_PES_ID_VIDEO (V4L2_CID_CODEC_BASE+6)
0251 #define V4L2_CID_MPEG_STREAM_VBI_FMT (V4L2_CID_CODEC_BASE+7)
0252 enum v4l2_mpeg_stream_vbi_fmt {
0253 V4L2_MPEG_STREAM_VBI_FMT_NONE = 0,
0254 V4L2_MPEG_STREAM_VBI_FMT_IVTV = 1,
0255 };
0256
0257
0258 #define V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ (V4L2_CID_CODEC_BASE+100)
0259 enum v4l2_mpeg_audio_sampling_freq {
0260 V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100 = 0,
0261 V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000 = 1,
0262 V4L2_MPEG_AUDIO_SAMPLING_FREQ_32000 = 2,
0263 };
0264 #define V4L2_CID_MPEG_AUDIO_ENCODING (V4L2_CID_CODEC_BASE+101)
0265 enum v4l2_mpeg_audio_encoding {
0266 V4L2_MPEG_AUDIO_ENCODING_LAYER_1 = 0,
0267 V4L2_MPEG_AUDIO_ENCODING_LAYER_2 = 1,
0268 V4L2_MPEG_AUDIO_ENCODING_LAYER_3 = 2,
0269 V4L2_MPEG_AUDIO_ENCODING_AAC = 3,
0270 V4L2_MPEG_AUDIO_ENCODING_AC3 = 4,
0271 };
0272 #define V4L2_CID_MPEG_AUDIO_L1_BITRATE (V4L2_CID_CODEC_BASE+102)
0273 enum v4l2_mpeg_audio_l1_bitrate {
0274 V4L2_MPEG_AUDIO_L1_BITRATE_32K = 0,
0275 V4L2_MPEG_AUDIO_L1_BITRATE_64K = 1,
0276 V4L2_MPEG_AUDIO_L1_BITRATE_96K = 2,
0277 V4L2_MPEG_AUDIO_L1_BITRATE_128K = 3,
0278 V4L2_MPEG_AUDIO_L1_BITRATE_160K = 4,
0279 V4L2_MPEG_AUDIO_L1_BITRATE_192K = 5,
0280 V4L2_MPEG_AUDIO_L1_BITRATE_224K = 6,
0281 V4L2_MPEG_AUDIO_L1_BITRATE_256K = 7,
0282 V4L2_MPEG_AUDIO_L1_BITRATE_288K = 8,
0283 V4L2_MPEG_AUDIO_L1_BITRATE_320K = 9,
0284 V4L2_MPEG_AUDIO_L1_BITRATE_352K = 10,
0285 V4L2_MPEG_AUDIO_L1_BITRATE_384K = 11,
0286 V4L2_MPEG_AUDIO_L1_BITRATE_416K = 12,
0287 V4L2_MPEG_AUDIO_L1_BITRATE_448K = 13,
0288 };
0289 #define V4L2_CID_MPEG_AUDIO_L2_BITRATE (V4L2_CID_CODEC_BASE+103)
0290 enum v4l2_mpeg_audio_l2_bitrate {
0291 V4L2_MPEG_AUDIO_L2_BITRATE_32K = 0,
0292 V4L2_MPEG_AUDIO_L2_BITRATE_48K = 1,
0293 V4L2_MPEG_AUDIO_L2_BITRATE_56K = 2,
0294 V4L2_MPEG_AUDIO_L2_BITRATE_64K = 3,
0295 V4L2_MPEG_AUDIO_L2_BITRATE_80K = 4,
0296 V4L2_MPEG_AUDIO_L2_BITRATE_96K = 5,
0297 V4L2_MPEG_AUDIO_L2_BITRATE_112K = 6,
0298 V4L2_MPEG_AUDIO_L2_BITRATE_128K = 7,
0299 V4L2_MPEG_AUDIO_L2_BITRATE_160K = 8,
0300 V4L2_MPEG_AUDIO_L2_BITRATE_192K = 9,
0301 V4L2_MPEG_AUDIO_L2_BITRATE_224K = 10,
0302 V4L2_MPEG_AUDIO_L2_BITRATE_256K = 11,
0303 V4L2_MPEG_AUDIO_L2_BITRATE_320K = 12,
0304 V4L2_MPEG_AUDIO_L2_BITRATE_384K = 13,
0305 };
0306 #define V4L2_CID_MPEG_AUDIO_L3_BITRATE (V4L2_CID_CODEC_BASE+104)
0307 enum v4l2_mpeg_audio_l3_bitrate {
0308 V4L2_MPEG_AUDIO_L3_BITRATE_32K = 0,
0309 V4L2_MPEG_AUDIO_L3_BITRATE_40K = 1,
0310 V4L2_MPEG_AUDIO_L3_BITRATE_48K = 2,
0311 V4L2_MPEG_AUDIO_L3_BITRATE_56K = 3,
0312 V4L2_MPEG_AUDIO_L3_BITRATE_64K = 4,
0313 V4L2_MPEG_AUDIO_L3_BITRATE_80K = 5,
0314 V4L2_MPEG_AUDIO_L3_BITRATE_96K = 6,
0315 V4L2_MPEG_AUDIO_L3_BITRATE_112K = 7,
0316 V4L2_MPEG_AUDIO_L3_BITRATE_128K = 8,
0317 V4L2_MPEG_AUDIO_L3_BITRATE_160K = 9,
0318 V4L2_MPEG_AUDIO_L3_BITRATE_192K = 10,
0319 V4L2_MPEG_AUDIO_L3_BITRATE_224K = 11,
0320 V4L2_MPEG_AUDIO_L3_BITRATE_256K = 12,
0321 V4L2_MPEG_AUDIO_L3_BITRATE_320K = 13,
0322 };
0323 #define V4L2_CID_MPEG_AUDIO_MODE (V4L2_CID_CODEC_BASE+105)
0324 enum v4l2_mpeg_audio_mode {
0325 V4L2_MPEG_AUDIO_MODE_STEREO = 0,
0326 V4L2_MPEG_AUDIO_MODE_JOINT_STEREO = 1,
0327 V4L2_MPEG_AUDIO_MODE_DUAL = 2,
0328 V4L2_MPEG_AUDIO_MODE_MONO = 3,
0329 };
0330 #define V4L2_CID_MPEG_AUDIO_MODE_EXTENSION (V4L2_CID_CODEC_BASE+106)
0331 enum v4l2_mpeg_audio_mode_extension {
0332 V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_4 = 0,
0333 V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_8 = 1,
0334 V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_12 = 2,
0335 V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_16 = 3,
0336 };
0337 #define V4L2_CID_MPEG_AUDIO_EMPHASIS (V4L2_CID_CODEC_BASE+107)
0338 enum v4l2_mpeg_audio_emphasis {
0339 V4L2_MPEG_AUDIO_EMPHASIS_NONE = 0,
0340 V4L2_MPEG_AUDIO_EMPHASIS_50_DIV_15_uS = 1,
0341 V4L2_MPEG_AUDIO_EMPHASIS_CCITT_J17 = 2,
0342 };
0343 #define V4L2_CID_MPEG_AUDIO_CRC (V4L2_CID_CODEC_BASE+108)
0344 enum v4l2_mpeg_audio_crc {
0345 V4L2_MPEG_AUDIO_CRC_NONE = 0,
0346 V4L2_MPEG_AUDIO_CRC_CRC16 = 1,
0347 };
0348 #define V4L2_CID_MPEG_AUDIO_MUTE (V4L2_CID_CODEC_BASE+109)
0349 #define V4L2_CID_MPEG_AUDIO_AAC_BITRATE (V4L2_CID_CODEC_BASE+110)
0350 #define V4L2_CID_MPEG_AUDIO_AC3_BITRATE (V4L2_CID_CODEC_BASE+111)
0351 enum v4l2_mpeg_audio_ac3_bitrate {
0352 V4L2_MPEG_AUDIO_AC3_BITRATE_32K = 0,
0353 V4L2_MPEG_AUDIO_AC3_BITRATE_40K = 1,
0354 V4L2_MPEG_AUDIO_AC3_BITRATE_48K = 2,
0355 V4L2_MPEG_AUDIO_AC3_BITRATE_56K = 3,
0356 V4L2_MPEG_AUDIO_AC3_BITRATE_64K = 4,
0357 V4L2_MPEG_AUDIO_AC3_BITRATE_80K = 5,
0358 V4L2_MPEG_AUDIO_AC3_BITRATE_96K = 6,
0359 V4L2_MPEG_AUDIO_AC3_BITRATE_112K = 7,
0360 V4L2_MPEG_AUDIO_AC3_BITRATE_128K = 8,
0361 V4L2_MPEG_AUDIO_AC3_BITRATE_160K = 9,
0362 V4L2_MPEG_AUDIO_AC3_BITRATE_192K = 10,
0363 V4L2_MPEG_AUDIO_AC3_BITRATE_224K = 11,
0364 V4L2_MPEG_AUDIO_AC3_BITRATE_256K = 12,
0365 V4L2_MPEG_AUDIO_AC3_BITRATE_320K = 13,
0366 V4L2_MPEG_AUDIO_AC3_BITRATE_384K = 14,
0367 V4L2_MPEG_AUDIO_AC3_BITRATE_448K = 15,
0368 V4L2_MPEG_AUDIO_AC3_BITRATE_512K = 16,
0369 V4L2_MPEG_AUDIO_AC3_BITRATE_576K = 17,
0370 V4L2_MPEG_AUDIO_AC3_BITRATE_640K = 18,
0371 };
0372 #define V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK (V4L2_CID_CODEC_BASE+112)
0373 enum v4l2_mpeg_audio_dec_playback {
0374 V4L2_MPEG_AUDIO_DEC_PLAYBACK_AUTO = 0,
0375 V4L2_MPEG_AUDIO_DEC_PLAYBACK_STEREO = 1,
0376 V4L2_MPEG_AUDIO_DEC_PLAYBACK_LEFT = 2,
0377 V4L2_MPEG_AUDIO_DEC_PLAYBACK_RIGHT = 3,
0378 V4L2_MPEG_AUDIO_DEC_PLAYBACK_MONO = 4,
0379 V4L2_MPEG_AUDIO_DEC_PLAYBACK_SWAPPED_STEREO = 5,
0380 };
0381 #define V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK (V4L2_CID_CODEC_BASE+113)
0382
0383
0384 #define V4L2_CID_MPEG_VIDEO_ENCODING (V4L2_CID_CODEC_BASE+200)
0385 enum v4l2_mpeg_video_encoding {
0386 V4L2_MPEG_VIDEO_ENCODING_MPEG_1 = 0,
0387 V4L2_MPEG_VIDEO_ENCODING_MPEG_2 = 1,
0388 V4L2_MPEG_VIDEO_ENCODING_MPEG_4_AVC = 2,
0389 };
0390 #define V4L2_CID_MPEG_VIDEO_ASPECT (V4L2_CID_CODEC_BASE+201)
0391 enum v4l2_mpeg_video_aspect {
0392 V4L2_MPEG_VIDEO_ASPECT_1x1 = 0,
0393 V4L2_MPEG_VIDEO_ASPECT_4x3 = 1,
0394 V4L2_MPEG_VIDEO_ASPECT_16x9 = 2,
0395 V4L2_MPEG_VIDEO_ASPECT_221x100 = 3,
0396 };
0397 #define V4L2_CID_MPEG_VIDEO_B_FRAMES (V4L2_CID_CODEC_BASE+202)
0398 #define V4L2_CID_MPEG_VIDEO_GOP_SIZE (V4L2_CID_CODEC_BASE+203)
0399 #define V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (V4L2_CID_CODEC_BASE+204)
0400 #define V4L2_CID_MPEG_VIDEO_PULLDOWN (V4L2_CID_CODEC_BASE+205)
0401 #define V4L2_CID_MPEG_VIDEO_BITRATE_MODE (V4L2_CID_CODEC_BASE+206)
0402 enum v4l2_mpeg_video_bitrate_mode {
0403 V4L2_MPEG_VIDEO_BITRATE_MODE_VBR = 0,
0404 V4L2_MPEG_VIDEO_BITRATE_MODE_CBR = 1,
0405 V4L2_MPEG_VIDEO_BITRATE_MODE_CQ = 2,
0406 };
0407 #define V4L2_CID_MPEG_VIDEO_BITRATE (V4L2_CID_CODEC_BASE+207)
0408 #define V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (V4L2_CID_CODEC_BASE+208)
0409 #define V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (V4L2_CID_CODEC_BASE+209)
0410 #define V4L2_CID_MPEG_VIDEO_MUTE (V4L2_CID_CODEC_BASE+210)
0411 #define V4L2_CID_MPEG_VIDEO_MUTE_YUV (V4L2_CID_CODEC_BASE+211)
0412 #define V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE (V4L2_CID_CODEC_BASE+212)
0413 #define V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER (V4L2_CID_CODEC_BASE+213)
0414 #define V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB (V4L2_CID_CODEC_BASE+214)
0415 #define V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE (V4L2_CID_CODEC_BASE+215)
0416 #define V4L2_CID_MPEG_VIDEO_HEADER_MODE (V4L2_CID_CODEC_BASE+216)
0417 enum v4l2_mpeg_video_header_mode {
0418 V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE = 0,
0419 V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME = 1,
0420
0421 };
0422 #define V4L2_CID_MPEG_VIDEO_MAX_REF_PIC (V4L2_CID_CODEC_BASE+217)
0423 #define V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE (V4L2_CID_CODEC_BASE+218)
0424 #define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES (V4L2_CID_CODEC_BASE+219)
0425 #define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB (V4L2_CID_CODEC_BASE+220)
0426 #define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE (V4L2_CID_CODEC_BASE+221)
0427 enum v4l2_mpeg_video_multi_slice_mode {
0428 V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE = 0,
0429 V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB = 1,
0430 V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES = 2,
0431 #ifndef __KERNEL__
0432
0433 V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_MB = 1,
0434 V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_BYTES = 2,
0435 #endif
0436 };
0437 #define V4L2_CID_MPEG_VIDEO_VBV_SIZE (V4L2_CID_CODEC_BASE+222)
0438 #define V4L2_CID_MPEG_VIDEO_DEC_PTS (V4L2_CID_CODEC_BASE+223)
0439 #define V4L2_CID_MPEG_VIDEO_DEC_FRAME (V4L2_CID_CODEC_BASE+224)
0440 #define V4L2_CID_MPEG_VIDEO_VBV_DELAY (V4L2_CID_CODEC_BASE+225)
0441 #define V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER (V4L2_CID_CODEC_BASE+226)
0442 #define V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE (V4L2_CID_CODEC_BASE+227)
0443 #define V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (V4L2_CID_CODEC_BASE+228)
0444 #define V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME (V4L2_CID_CODEC_BASE+229)
0445 #define V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID (V4L2_CID_CODEC_BASE+230)
0446 #define V4L2_CID_MPEG_VIDEO_AU_DELIMITER (V4L2_CID_CODEC_BASE+231)
0447 #define V4L2_CID_MPEG_VIDEO_LTR_COUNT (V4L2_CID_CODEC_BASE+232)
0448 #define V4L2_CID_MPEG_VIDEO_FRAME_LTR_INDEX (V4L2_CID_CODEC_BASE+233)
0449 #define V4L2_CID_MPEG_VIDEO_USE_LTR_FRAMES (V4L2_CID_CODEC_BASE+234)
0450 #define V4L2_CID_MPEG_VIDEO_DEC_CONCEAL_COLOR (V4L2_CID_CODEC_BASE+235)
0451 #define V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD (V4L2_CID_CODEC_BASE+236)
0452 #define V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE (V4L2_CID_CODEC_BASE+237)
0453 enum v4l2_mpeg_video_intra_refresh_period_type {
0454 V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_RANDOM = 0,
0455 V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_CYCLIC = 1,
0456 };
0457
0458
0459 #define V4L2_CID_MPEG_VIDEO_MPEG2_LEVEL (V4L2_CID_CODEC_BASE+270)
0460 enum v4l2_mpeg_video_mpeg2_level {
0461 V4L2_MPEG_VIDEO_MPEG2_LEVEL_LOW = 0,
0462 V4L2_MPEG_VIDEO_MPEG2_LEVEL_MAIN = 1,
0463 V4L2_MPEG_VIDEO_MPEG2_LEVEL_HIGH_1440 = 2,
0464 V4L2_MPEG_VIDEO_MPEG2_LEVEL_HIGH = 3,
0465 };
0466 #define V4L2_CID_MPEG_VIDEO_MPEG2_PROFILE (V4L2_CID_CODEC_BASE+271)
0467 enum v4l2_mpeg_video_mpeg2_profile {
0468 V4L2_MPEG_VIDEO_MPEG2_PROFILE_SIMPLE = 0,
0469 V4L2_MPEG_VIDEO_MPEG2_PROFILE_MAIN = 1,
0470 V4L2_MPEG_VIDEO_MPEG2_PROFILE_SNR_SCALABLE = 2,
0471 V4L2_MPEG_VIDEO_MPEG2_PROFILE_SPATIALLY_SCALABLE = 3,
0472 V4L2_MPEG_VIDEO_MPEG2_PROFILE_HIGH = 4,
0473 V4L2_MPEG_VIDEO_MPEG2_PROFILE_MULTIVIEW = 5,
0474 };
0475
0476
0477 #define V4L2_CID_FWHT_I_FRAME_QP (V4L2_CID_CODEC_BASE + 290)
0478 #define V4L2_CID_FWHT_P_FRAME_QP (V4L2_CID_CODEC_BASE + 291)
0479
0480 #define V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (V4L2_CID_CODEC_BASE+300)
0481 #define V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (V4L2_CID_CODEC_BASE+301)
0482 #define V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP (V4L2_CID_CODEC_BASE+302)
0483 #define V4L2_CID_MPEG_VIDEO_H263_MIN_QP (V4L2_CID_CODEC_BASE+303)
0484 #define V4L2_CID_MPEG_VIDEO_H263_MAX_QP (V4L2_CID_CODEC_BASE+304)
0485 #define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP (V4L2_CID_CODEC_BASE+350)
0486 #define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP (V4L2_CID_CODEC_BASE+351)
0487 #define V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP (V4L2_CID_CODEC_BASE+352)
0488 #define V4L2_CID_MPEG_VIDEO_H264_MIN_QP (V4L2_CID_CODEC_BASE+353)
0489 #define V4L2_CID_MPEG_VIDEO_H264_MAX_QP (V4L2_CID_CODEC_BASE+354)
0490 #define V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM (V4L2_CID_CODEC_BASE+355)
0491 #define V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE (V4L2_CID_CODEC_BASE+356)
0492 #define V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE (V4L2_CID_CODEC_BASE+357)
0493 enum v4l2_mpeg_video_h264_entropy_mode {
0494 V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC = 0,
0495 V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC = 1,
0496 };
0497 #define V4L2_CID_MPEG_VIDEO_H264_I_PERIOD (V4L2_CID_CODEC_BASE+358)
0498 #define V4L2_CID_MPEG_VIDEO_H264_LEVEL (V4L2_CID_CODEC_BASE+359)
0499 enum v4l2_mpeg_video_h264_level {
0500 V4L2_MPEG_VIDEO_H264_LEVEL_1_0 = 0,
0501 V4L2_MPEG_VIDEO_H264_LEVEL_1B = 1,
0502 V4L2_MPEG_VIDEO_H264_LEVEL_1_1 = 2,
0503 V4L2_MPEG_VIDEO_H264_LEVEL_1_2 = 3,
0504 V4L2_MPEG_VIDEO_H264_LEVEL_1_3 = 4,
0505 V4L2_MPEG_VIDEO_H264_LEVEL_2_0 = 5,
0506 V4L2_MPEG_VIDEO_H264_LEVEL_2_1 = 6,
0507 V4L2_MPEG_VIDEO_H264_LEVEL_2_2 = 7,
0508 V4L2_MPEG_VIDEO_H264_LEVEL_3_0 = 8,
0509 V4L2_MPEG_VIDEO_H264_LEVEL_3_1 = 9,
0510 V4L2_MPEG_VIDEO_H264_LEVEL_3_2 = 10,
0511 V4L2_MPEG_VIDEO_H264_LEVEL_4_0 = 11,
0512 V4L2_MPEG_VIDEO_H264_LEVEL_4_1 = 12,
0513 V4L2_MPEG_VIDEO_H264_LEVEL_4_2 = 13,
0514 V4L2_MPEG_VIDEO_H264_LEVEL_5_0 = 14,
0515 V4L2_MPEG_VIDEO_H264_LEVEL_5_1 = 15,
0516 V4L2_MPEG_VIDEO_H264_LEVEL_5_2 = 16,
0517 V4L2_MPEG_VIDEO_H264_LEVEL_6_0 = 17,
0518 V4L2_MPEG_VIDEO_H264_LEVEL_6_1 = 18,
0519 V4L2_MPEG_VIDEO_H264_LEVEL_6_2 = 19,
0520 };
0521 #define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA (V4L2_CID_CODEC_BASE+360)
0522 #define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA (V4L2_CID_CODEC_BASE+361)
0523 #define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE (V4L2_CID_CODEC_BASE+362)
0524 enum v4l2_mpeg_video_h264_loop_filter_mode {
0525 V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED = 0,
0526 V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED = 1,
0527 V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY = 2,
0528 };
0529 #define V4L2_CID_MPEG_VIDEO_H264_PROFILE (V4L2_CID_CODEC_BASE+363)
0530 enum v4l2_mpeg_video_h264_profile {
0531 V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE = 0,
0532 V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE = 1,
0533 V4L2_MPEG_VIDEO_H264_PROFILE_MAIN = 2,
0534 V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED = 3,
0535 V4L2_MPEG_VIDEO_H264_PROFILE_HIGH = 4,
0536 V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10 = 5,
0537 V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422 = 6,
0538 V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE = 7,
0539 V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10_INTRA = 8,
0540 V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422_INTRA = 9,
0541 V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_INTRA = 10,
0542 V4L2_MPEG_VIDEO_H264_PROFILE_CAVLC_444_INTRA = 11,
0543 V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_BASELINE = 12,
0544 V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH = 13,
0545 V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH_INTRA = 14,
0546 V4L2_MPEG_VIDEO_H264_PROFILE_STEREO_HIGH = 15,
0547 V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH = 16,
0548 V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH = 17,
0549 };
0550 #define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT (V4L2_CID_CODEC_BASE+364)
0551 #define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH (V4L2_CID_CODEC_BASE+365)
0552 #define V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE (V4L2_CID_CODEC_BASE+366)
0553 #define V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC (V4L2_CID_CODEC_BASE+367)
0554 enum v4l2_mpeg_video_h264_vui_sar_idc {
0555 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_UNSPECIFIED = 0,
0556 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_1x1 = 1,
0557 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_12x11 = 2,
0558 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_10x11 = 3,
0559 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_16x11 = 4,
0560 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_40x33 = 5,
0561 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_24x11 = 6,
0562 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_20x11 = 7,
0563 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_32x11 = 8,
0564 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_80x33 = 9,
0565 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_18x11 = 10,
0566 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_15x11 = 11,
0567 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_64x33 = 12,
0568 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_160x99 = 13,
0569 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_4x3 = 14,
0570 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_3x2 = 15,
0571 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_2x1 = 16,
0572 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_EXTENDED = 17,
0573 };
0574 #define V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING (V4L2_CID_CODEC_BASE+368)
0575 #define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0 (V4L2_CID_CODEC_BASE+369)
0576 #define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE (V4L2_CID_CODEC_BASE+370)
0577 enum v4l2_mpeg_video_h264_sei_fp_arrangement_type {
0578 V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_CHECKERBOARD = 0,
0579 V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_COLUMN = 1,
0580 V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_ROW = 2,
0581 V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_SIDE_BY_SIDE = 3,
0582 V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TOP_BOTTOM = 4,
0583 V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TEMPORAL = 5,
0584 };
0585 #define V4L2_CID_MPEG_VIDEO_H264_FMO (V4L2_CID_CODEC_BASE+371)
0586 #define V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE (V4L2_CID_CODEC_BASE+372)
0587 enum v4l2_mpeg_video_h264_fmo_map_type {
0588 V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_INTERLEAVED_SLICES = 0,
0589 V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_SCATTERED_SLICES = 1,
0590 V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_FOREGROUND_WITH_LEFT_OVER = 2,
0591 V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_BOX_OUT = 3,
0592 V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_RASTER_SCAN = 4,
0593 V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_WIPE_SCAN = 5,
0594 V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_EXPLICIT = 6,
0595 };
0596 #define V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP (V4L2_CID_CODEC_BASE+373)
0597 #define V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION (V4L2_CID_CODEC_BASE+374)
0598 enum v4l2_mpeg_video_h264_fmo_change_dir {
0599 V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_RIGHT = 0,
0600 V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_LEFT = 1,
0601 };
0602 #define V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE (V4L2_CID_CODEC_BASE+375)
0603 #define V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH (V4L2_CID_CODEC_BASE+376)
0604 #define V4L2_CID_MPEG_VIDEO_H264_ASO (V4L2_CID_CODEC_BASE+377)
0605 #define V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER (V4L2_CID_CODEC_BASE+378)
0606 #define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING (V4L2_CID_CODEC_BASE+379)
0607 #define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE (V4L2_CID_CODEC_BASE+380)
0608 enum v4l2_mpeg_video_h264_hierarchical_coding_type {
0609 V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B = 0,
0610 V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P = 1,
0611 };
0612 #define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER (V4L2_CID_CODEC_BASE+381)
0613 #define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP (V4L2_CID_CODEC_BASE+382)
0614 #define V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION (V4L2_CID_CODEC_BASE+383)
0615 #define V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET (V4L2_CID_CODEC_BASE+384)
0616 #define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP (V4L2_CID_CODEC_BASE+385)
0617 #define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP (V4L2_CID_CODEC_BASE+386)
0618 #define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP (V4L2_CID_CODEC_BASE+387)
0619 #define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP (V4L2_CID_CODEC_BASE+388)
0620 #define V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MIN_QP (V4L2_CID_CODEC_BASE+389)
0621 #define V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MAX_QP (V4L2_CID_CODEC_BASE+390)
0622 #define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L0_BR (V4L2_CID_CODEC_BASE+391)
0623 #define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L1_BR (V4L2_CID_CODEC_BASE+392)
0624 #define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L2_BR (V4L2_CID_CODEC_BASE+393)
0625 #define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L3_BR (V4L2_CID_CODEC_BASE+394)
0626 #define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L4_BR (V4L2_CID_CODEC_BASE+395)
0627 #define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L5_BR (V4L2_CID_CODEC_BASE+396)
0628 #define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L6_BR (V4L2_CID_CODEC_BASE+397)
0629 #define V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP (V4L2_CID_CODEC_BASE+400)
0630 #define V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP (V4L2_CID_CODEC_BASE+401)
0631 #define V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP (V4L2_CID_CODEC_BASE+402)
0632 #define V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP (V4L2_CID_CODEC_BASE+403)
0633 #define V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP (V4L2_CID_CODEC_BASE+404)
0634 #define V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL (V4L2_CID_CODEC_BASE+405)
0635 enum v4l2_mpeg_video_mpeg4_level {
0636 V4L2_MPEG_VIDEO_MPEG4_LEVEL_0 = 0,
0637 V4L2_MPEG_VIDEO_MPEG4_LEVEL_0B = 1,
0638 V4L2_MPEG_VIDEO_MPEG4_LEVEL_1 = 2,
0639 V4L2_MPEG_VIDEO_MPEG4_LEVEL_2 = 3,
0640 V4L2_MPEG_VIDEO_MPEG4_LEVEL_3 = 4,
0641 V4L2_MPEG_VIDEO_MPEG4_LEVEL_3B = 5,
0642 V4L2_MPEG_VIDEO_MPEG4_LEVEL_4 = 6,
0643 V4L2_MPEG_VIDEO_MPEG4_LEVEL_5 = 7,
0644 };
0645 #define V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE (V4L2_CID_CODEC_BASE+406)
0646 enum v4l2_mpeg_video_mpeg4_profile {
0647 V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE = 0,
0648 V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_SIMPLE = 1,
0649 V4L2_MPEG_VIDEO_MPEG4_PROFILE_CORE = 2,
0650 V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE_SCALABLE = 3,
0651 V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY = 4,
0652 };
0653 #define V4L2_CID_MPEG_VIDEO_MPEG4_QPEL (V4L2_CID_CODEC_BASE+407)
0654
0655
0656
0657
0658
0659 #define V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS (V4L2_CID_CODEC_BASE+500)
0660 enum v4l2_vp8_num_partitions {
0661 V4L2_CID_MPEG_VIDEO_VPX_1_PARTITION = 0,
0662 V4L2_CID_MPEG_VIDEO_VPX_2_PARTITIONS = 1,
0663 V4L2_CID_MPEG_VIDEO_VPX_4_PARTITIONS = 2,
0664 V4L2_CID_MPEG_VIDEO_VPX_8_PARTITIONS = 3,
0665 };
0666 #define V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4 (V4L2_CID_CODEC_BASE+501)
0667 #define V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES (V4L2_CID_CODEC_BASE+502)
0668 enum v4l2_vp8_num_ref_frames {
0669 V4L2_CID_MPEG_VIDEO_VPX_1_REF_FRAME = 0,
0670 V4L2_CID_MPEG_VIDEO_VPX_2_REF_FRAME = 1,
0671 V4L2_CID_MPEG_VIDEO_VPX_3_REF_FRAME = 2,
0672 };
0673 #define V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL (V4L2_CID_CODEC_BASE+503)
0674 #define V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS (V4L2_CID_CODEC_BASE+504)
0675 #define V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD (V4L2_CID_CODEC_BASE+505)
0676 #define V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL (V4L2_CID_CODEC_BASE+506)
0677 enum v4l2_vp8_golden_frame_sel {
0678 V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_PREV = 0,
0679 V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_REF_PERIOD = 1,
0680 };
0681 #define V4L2_CID_MPEG_VIDEO_VPX_MIN_QP (V4L2_CID_CODEC_BASE+507)
0682 #define V4L2_CID_MPEG_VIDEO_VPX_MAX_QP (V4L2_CID_CODEC_BASE+508)
0683 #define V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP (V4L2_CID_CODEC_BASE+509)
0684 #define V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (V4L2_CID_CODEC_BASE+510)
0685
0686 #define V4L2_CID_MPEG_VIDEO_VP8_PROFILE (V4L2_CID_CODEC_BASE+511)
0687 enum v4l2_mpeg_video_vp8_profile {
0688 V4L2_MPEG_VIDEO_VP8_PROFILE_0 = 0,
0689 V4L2_MPEG_VIDEO_VP8_PROFILE_1 = 1,
0690 V4L2_MPEG_VIDEO_VP8_PROFILE_2 = 2,
0691 V4L2_MPEG_VIDEO_VP8_PROFILE_3 = 3,
0692 };
0693
0694 #define V4L2_CID_MPEG_VIDEO_VPX_PROFILE V4L2_CID_MPEG_VIDEO_VP8_PROFILE
0695 #define V4L2_CID_MPEG_VIDEO_VP9_PROFILE (V4L2_CID_CODEC_BASE+512)
0696 enum v4l2_mpeg_video_vp9_profile {
0697 V4L2_MPEG_VIDEO_VP9_PROFILE_0 = 0,
0698 V4L2_MPEG_VIDEO_VP9_PROFILE_1 = 1,
0699 V4L2_MPEG_VIDEO_VP9_PROFILE_2 = 2,
0700 V4L2_MPEG_VIDEO_VP9_PROFILE_3 = 3,
0701 };
0702 #define V4L2_CID_MPEG_VIDEO_VP9_LEVEL (V4L2_CID_CODEC_BASE+513)
0703 enum v4l2_mpeg_video_vp9_level {
0704 V4L2_MPEG_VIDEO_VP9_LEVEL_1_0 = 0,
0705 V4L2_MPEG_VIDEO_VP9_LEVEL_1_1 = 1,
0706 V4L2_MPEG_VIDEO_VP9_LEVEL_2_0 = 2,
0707 V4L2_MPEG_VIDEO_VP9_LEVEL_2_1 = 3,
0708 V4L2_MPEG_VIDEO_VP9_LEVEL_3_0 = 4,
0709 V4L2_MPEG_VIDEO_VP9_LEVEL_3_1 = 5,
0710 V4L2_MPEG_VIDEO_VP9_LEVEL_4_0 = 6,
0711 V4L2_MPEG_VIDEO_VP9_LEVEL_4_1 = 7,
0712 V4L2_MPEG_VIDEO_VP9_LEVEL_5_0 = 8,
0713 V4L2_MPEG_VIDEO_VP9_LEVEL_5_1 = 9,
0714 V4L2_MPEG_VIDEO_VP9_LEVEL_5_2 = 10,
0715 V4L2_MPEG_VIDEO_VP9_LEVEL_6_0 = 11,
0716 V4L2_MPEG_VIDEO_VP9_LEVEL_6_1 = 12,
0717 V4L2_MPEG_VIDEO_VP9_LEVEL_6_2 = 13,
0718 };
0719
0720
0721
0722 #define V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP (V4L2_CID_CODEC_BASE + 600)
0723 #define V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP (V4L2_CID_CODEC_BASE + 601)
0724 #define V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP (V4L2_CID_CODEC_BASE + 602)
0725 #define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP (V4L2_CID_CODEC_BASE + 603)
0726 #define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP (V4L2_CID_CODEC_BASE + 604)
0727 #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP (V4L2_CID_CODEC_BASE + 605)
0728 #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE (V4L2_CID_CODEC_BASE + 606)
0729 enum v4l2_mpeg_video_hevc_hier_coding_type {
0730 V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B = 0,
0731 V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P = 1,
0732 };
0733 #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER (V4L2_CID_CODEC_BASE + 607)
0734 #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP (V4L2_CID_CODEC_BASE + 608)
0735 #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP (V4L2_CID_CODEC_BASE + 609)
0736 #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP (V4L2_CID_CODEC_BASE + 610)
0737 #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP (V4L2_CID_CODEC_BASE + 611)
0738 #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP (V4L2_CID_CODEC_BASE + 612)
0739 #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP (V4L2_CID_CODEC_BASE + 613)
0740 #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP (V4L2_CID_CODEC_BASE + 614)
0741 #define V4L2_CID_MPEG_VIDEO_HEVC_PROFILE (V4L2_CID_CODEC_BASE + 615)
0742 enum v4l2_mpeg_video_hevc_profile {
0743 V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN = 0,
0744 V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE = 1,
0745 V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10 = 2,
0746 };
0747 #define V4L2_CID_MPEG_VIDEO_HEVC_LEVEL (V4L2_CID_CODEC_BASE + 616)
0748 enum v4l2_mpeg_video_hevc_level {
0749 V4L2_MPEG_VIDEO_HEVC_LEVEL_1 = 0,
0750 V4L2_MPEG_VIDEO_HEVC_LEVEL_2 = 1,
0751 V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1 = 2,
0752 V4L2_MPEG_VIDEO_HEVC_LEVEL_3 = 3,
0753 V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1 = 4,
0754 V4L2_MPEG_VIDEO_HEVC_LEVEL_4 = 5,
0755 V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1 = 6,
0756 V4L2_MPEG_VIDEO_HEVC_LEVEL_5 = 7,
0757 V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1 = 8,
0758 V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2 = 9,
0759 V4L2_MPEG_VIDEO_HEVC_LEVEL_6 = 10,
0760 V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1 = 11,
0761 V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2 = 12,
0762 };
0763 #define V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION (V4L2_CID_CODEC_BASE + 617)
0764 #define V4L2_CID_MPEG_VIDEO_HEVC_TIER (V4L2_CID_CODEC_BASE + 618)
0765 enum v4l2_mpeg_video_hevc_tier {
0766 V4L2_MPEG_VIDEO_HEVC_TIER_MAIN = 0,
0767 V4L2_MPEG_VIDEO_HEVC_TIER_HIGH = 1,
0768 };
0769 #define V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH (V4L2_CID_CODEC_BASE + 619)
0770 #define V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE (V4L2_CID_CODEC_BASE + 620)
0771 enum v4l2_cid_mpeg_video_hevc_loop_filter_mode {
0772 V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED = 0,
0773 V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_ENABLED = 1,
0774 V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY = 2,
0775 };
0776 #define V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2 (V4L2_CID_CODEC_BASE + 621)
0777 #define V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2 (V4L2_CID_CODEC_BASE + 622)
0778 #define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE (V4L2_CID_CODEC_BASE + 623)
0779 enum v4l2_cid_mpeg_video_hevc_refresh_type {
0780 V4L2_MPEG_VIDEO_HEVC_REFRESH_NONE = 0,
0781 V4L2_MPEG_VIDEO_HEVC_REFRESH_CRA = 1,
0782 V4L2_MPEG_VIDEO_HEVC_REFRESH_IDR = 2,
0783 };
0784 #define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD (V4L2_CID_CODEC_BASE + 624)
0785 #define V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU (V4L2_CID_CODEC_BASE + 625)
0786 #define V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED (V4L2_CID_CODEC_BASE + 626)
0787 #define V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT (V4L2_CID_CODEC_BASE + 627)
0788 #define V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB (V4L2_CID_CODEC_BASE + 628)
0789 #define V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID (V4L2_CID_CODEC_BASE + 629)
0790 #define V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING (V4L2_CID_CODEC_BASE + 630)
0791 #define V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1 (V4L2_CID_CODEC_BASE + 631)
0792 #define V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT (V4L2_CID_CODEC_BASE + 632)
0793 #define V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION (V4L2_CID_CODEC_BASE + 633)
0794 #define V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE (V4L2_CID_CODEC_BASE + 634)
0795 #define V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD (V4L2_CID_CODEC_BASE + 635)
0796 enum v4l2_cid_mpeg_video_hevc_size_of_length_field {
0797 V4L2_MPEG_VIDEO_HEVC_SIZE_0 = 0,
0798 V4L2_MPEG_VIDEO_HEVC_SIZE_1 = 1,
0799 V4L2_MPEG_VIDEO_HEVC_SIZE_2 = 2,
0800 V4L2_MPEG_VIDEO_HEVC_SIZE_4 = 3,
0801 };
0802 #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR (V4L2_CID_CODEC_BASE + 636)
0803 #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR (V4L2_CID_CODEC_BASE + 637)
0804 #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR (V4L2_CID_CODEC_BASE + 638)
0805 #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR (V4L2_CID_CODEC_BASE + 639)
0806 #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR (V4L2_CID_CODEC_BASE + 640)
0807 #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR (V4L2_CID_CODEC_BASE + 641)
0808 #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR (V4L2_CID_CODEC_BASE + 642)
0809 #define V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES (V4L2_CID_CODEC_BASE + 643)
0810 #define V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR (V4L2_CID_CODEC_BASE + 644)
0811 #define V4L2_CID_MPEG_VIDEO_CONSTANT_QUALITY (V4L2_CID_CODEC_BASE + 645)
0812 #define V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE (V4L2_CID_CODEC_BASE + 646)
0813 enum v4l2_mpeg_video_frame_skip_mode {
0814 V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED = 0,
0815 V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_LEVEL_LIMIT = 1,
0816 V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT = 2,
0817 };
0818
0819 #define V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MIN_QP (V4L2_CID_CODEC_BASE + 647)
0820 #define V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MAX_QP (V4L2_CID_CODEC_BASE + 648)
0821 #define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MIN_QP (V4L2_CID_CODEC_BASE + 649)
0822 #define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MAX_QP (V4L2_CID_CODEC_BASE + 650)
0823 #define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MIN_QP (V4L2_CID_CODEC_BASE + 651)
0824 #define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MAX_QP (V4L2_CID_CODEC_BASE + 652)
0825
0826 #define V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY (V4L2_CID_CODEC_BASE + 653)
0827 #define V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE (V4L2_CID_CODEC_BASE + 654)
0828
0829
0830 #define V4L2_CID_CODEC_CX2341X_BASE (V4L2_CTRL_CLASS_CODEC | 0x1000)
0831 #define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_CODEC_CX2341X_BASE+0)
0832 enum v4l2_mpeg_cx2341x_video_spatial_filter_mode {
0833 V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_MANUAL = 0,
0834 V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_AUTO = 1,
0835 };
0836 #define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER (V4L2_CID_CODEC_CX2341X_BASE+1)
0837 #define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE (V4L2_CID_CODEC_CX2341X_BASE+2)
0838 enum v4l2_mpeg_cx2341x_video_luma_spatial_filter_type {
0839 V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_OFF = 0,
0840 V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_HOR = 1,
0841 V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_VERT = 2,
0842 V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_HV_SEPARABLE = 3,
0843 V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_SYM_NON_SEPARABLE = 4,
0844 };
0845 #define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE (V4L2_CID_CODEC_CX2341X_BASE+3)
0846 enum v4l2_mpeg_cx2341x_video_chroma_spatial_filter_type {
0847 V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_OFF = 0,
0848 V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_1D_HOR = 1,
0849 };
0850 #define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE (V4L2_CID_CODEC_CX2341X_BASE+4)
0851 enum v4l2_mpeg_cx2341x_video_temporal_filter_mode {
0852 V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_MANUAL = 0,
0853 V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_AUTO = 1,
0854 };
0855 #define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER (V4L2_CID_CODEC_CX2341X_BASE+5)
0856 #define V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE (V4L2_CID_CODEC_CX2341X_BASE+6)
0857 enum v4l2_mpeg_cx2341x_video_median_filter_type {
0858 V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_OFF = 0,
0859 V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR = 1,
0860 V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_VERT = 2,
0861 V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR_VERT = 3,
0862 V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_DIAG = 4,
0863 };
0864 #define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_CODEC_CX2341X_BASE+7)
0865 #define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP (V4L2_CID_CODEC_CX2341X_BASE+8)
0866 #define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_CODEC_CX2341X_BASE+9)
0867 #define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP (V4L2_CID_CODEC_CX2341X_BASE+10)
0868 #define V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS (V4L2_CID_CODEC_CX2341X_BASE+11)
0869
0870
0871 #define V4L2_CID_CODEC_MFC51_BASE (V4L2_CTRL_CLASS_CODEC | 0x1100)
0872
0873 #define V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY (V4L2_CID_CODEC_MFC51_BASE+0)
0874 #define V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE (V4L2_CID_CODEC_MFC51_BASE+1)
0875 #define V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE (V4L2_CID_CODEC_MFC51_BASE+2)
0876 enum v4l2_mpeg_mfc51_video_frame_skip_mode {
0877 V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_DISABLED = 0,
0878 V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_LEVEL_LIMIT = 1,
0879 V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT = 2,
0880 };
0881 #define V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE (V4L2_CID_CODEC_MFC51_BASE+3)
0882 enum v4l2_mpeg_mfc51_video_force_frame_type {
0883 V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_DISABLED = 0,
0884 V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_I_FRAME = 1,
0885 V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_NOT_CODED = 2,
0886 };
0887 #define V4L2_CID_MPEG_MFC51_VIDEO_PADDING (V4L2_CID_CODEC_MFC51_BASE+4)
0888 #define V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV (V4L2_CID_CODEC_MFC51_BASE+5)
0889 #define V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT (V4L2_CID_CODEC_MFC51_BASE+6)
0890 #define V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF (V4L2_CID_CODEC_MFC51_BASE+7)
0891 #define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY (V4L2_CID_CODEC_MFC51_BASE+50)
0892 #define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK (V4L2_CID_CODEC_MFC51_BASE+51)
0893 #define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH (V4L2_CID_CODEC_MFC51_BASE+52)
0894 #define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC (V4L2_CID_CODEC_MFC51_BASE+53)
0895 #define V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P (V4L2_CID_CODEC_MFC51_BASE+54)
0896
0897
0898
0899 #define V4L2_CID_CAMERA_CLASS_BASE (V4L2_CTRL_CLASS_CAMERA | 0x900)
0900 #define V4L2_CID_CAMERA_CLASS (V4L2_CTRL_CLASS_CAMERA | 1)
0901
0902 #define V4L2_CID_EXPOSURE_AUTO (V4L2_CID_CAMERA_CLASS_BASE+1)
0903 enum v4l2_exposure_auto_type {
0904 V4L2_EXPOSURE_AUTO = 0,
0905 V4L2_EXPOSURE_MANUAL = 1,
0906 V4L2_EXPOSURE_SHUTTER_PRIORITY = 2,
0907 V4L2_EXPOSURE_APERTURE_PRIORITY = 3
0908 };
0909 #define V4L2_CID_EXPOSURE_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+2)
0910 #define V4L2_CID_EXPOSURE_AUTO_PRIORITY (V4L2_CID_CAMERA_CLASS_BASE+3)
0911
0912 #define V4L2_CID_PAN_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+4)
0913 #define V4L2_CID_TILT_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+5)
0914 #define V4L2_CID_PAN_RESET (V4L2_CID_CAMERA_CLASS_BASE+6)
0915 #define V4L2_CID_TILT_RESET (V4L2_CID_CAMERA_CLASS_BASE+7)
0916
0917 #define V4L2_CID_PAN_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+8)
0918 #define V4L2_CID_TILT_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+9)
0919
0920 #define V4L2_CID_FOCUS_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+10)
0921 #define V4L2_CID_FOCUS_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+11)
0922 #define V4L2_CID_FOCUS_AUTO (V4L2_CID_CAMERA_CLASS_BASE+12)
0923
0924 #define V4L2_CID_ZOOM_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+13)
0925 #define V4L2_CID_ZOOM_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+14)
0926 #define V4L2_CID_ZOOM_CONTINUOUS (V4L2_CID_CAMERA_CLASS_BASE+15)
0927
0928 #define V4L2_CID_PRIVACY (V4L2_CID_CAMERA_CLASS_BASE+16)
0929
0930 #define V4L2_CID_IRIS_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+17)
0931 #define V4L2_CID_IRIS_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+18)
0932
0933 #define V4L2_CID_AUTO_EXPOSURE_BIAS (V4L2_CID_CAMERA_CLASS_BASE+19)
0934
0935 #define V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE (V4L2_CID_CAMERA_CLASS_BASE+20)
0936 enum v4l2_auto_n_preset_white_balance {
0937 V4L2_WHITE_BALANCE_MANUAL = 0,
0938 V4L2_WHITE_BALANCE_AUTO = 1,
0939 V4L2_WHITE_BALANCE_INCANDESCENT = 2,
0940 V4L2_WHITE_BALANCE_FLUORESCENT = 3,
0941 V4L2_WHITE_BALANCE_FLUORESCENT_H = 4,
0942 V4L2_WHITE_BALANCE_HORIZON = 5,
0943 V4L2_WHITE_BALANCE_DAYLIGHT = 6,
0944 V4L2_WHITE_BALANCE_FLASH = 7,
0945 V4L2_WHITE_BALANCE_CLOUDY = 8,
0946 V4L2_WHITE_BALANCE_SHADE = 9,
0947 };
0948
0949 #define V4L2_CID_WIDE_DYNAMIC_RANGE (V4L2_CID_CAMERA_CLASS_BASE+21)
0950 #define V4L2_CID_IMAGE_STABILIZATION (V4L2_CID_CAMERA_CLASS_BASE+22)
0951
0952 #define V4L2_CID_ISO_SENSITIVITY (V4L2_CID_CAMERA_CLASS_BASE+23)
0953 #define V4L2_CID_ISO_SENSITIVITY_AUTO (V4L2_CID_CAMERA_CLASS_BASE+24)
0954 enum v4l2_iso_sensitivity_auto_type {
0955 V4L2_ISO_SENSITIVITY_MANUAL = 0,
0956 V4L2_ISO_SENSITIVITY_AUTO = 1,
0957 };
0958
0959 #define V4L2_CID_EXPOSURE_METERING (V4L2_CID_CAMERA_CLASS_BASE+25)
0960 enum v4l2_exposure_metering {
0961 V4L2_EXPOSURE_METERING_AVERAGE = 0,
0962 V4L2_EXPOSURE_METERING_CENTER_WEIGHTED = 1,
0963 V4L2_EXPOSURE_METERING_SPOT = 2,
0964 V4L2_EXPOSURE_METERING_MATRIX = 3,
0965 };
0966
0967 #define V4L2_CID_SCENE_MODE (V4L2_CID_CAMERA_CLASS_BASE+26)
0968 enum v4l2_scene_mode {
0969 V4L2_SCENE_MODE_NONE = 0,
0970 V4L2_SCENE_MODE_BACKLIGHT = 1,
0971 V4L2_SCENE_MODE_BEACH_SNOW = 2,
0972 V4L2_SCENE_MODE_CANDLE_LIGHT = 3,
0973 V4L2_SCENE_MODE_DAWN_DUSK = 4,
0974 V4L2_SCENE_MODE_FALL_COLORS = 5,
0975 V4L2_SCENE_MODE_FIREWORKS = 6,
0976 V4L2_SCENE_MODE_LANDSCAPE = 7,
0977 V4L2_SCENE_MODE_NIGHT = 8,
0978 V4L2_SCENE_MODE_PARTY_INDOOR = 9,
0979 V4L2_SCENE_MODE_PORTRAIT = 10,
0980 V4L2_SCENE_MODE_SPORTS = 11,
0981 V4L2_SCENE_MODE_SUNSET = 12,
0982 V4L2_SCENE_MODE_TEXT = 13,
0983 };
0984
0985 #define V4L2_CID_3A_LOCK (V4L2_CID_CAMERA_CLASS_BASE+27)
0986 #define V4L2_LOCK_EXPOSURE (1 << 0)
0987 #define V4L2_LOCK_WHITE_BALANCE (1 << 1)
0988 #define V4L2_LOCK_FOCUS (1 << 2)
0989
0990 #define V4L2_CID_AUTO_FOCUS_START (V4L2_CID_CAMERA_CLASS_BASE+28)
0991 #define V4L2_CID_AUTO_FOCUS_STOP (V4L2_CID_CAMERA_CLASS_BASE+29)
0992 #define V4L2_CID_AUTO_FOCUS_STATUS (V4L2_CID_CAMERA_CLASS_BASE+30)
0993 #define V4L2_AUTO_FOCUS_STATUS_IDLE (0 << 0)
0994 #define V4L2_AUTO_FOCUS_STATUS_BUSY (1 << 0)
0995 #define V4L2_AUTO_FOCUS_STATUS_REACHED (1 << 1)
0996 #define V4L2_AUTO_FOCUS_STATUS_FAILED (1 << 2)
0997
0998 #define V4L2_CID_AUTO_FOCUS_RANGE (V4L2_CID_CAMERA_CLASS_BASE+31)
0999 enum v4l2_auto_focus_range {
1000 V4L2_AUTO_FOCUS_RANGE_AUTO = 0,
1001 V4L2_AUTO_FOCUS_RANGE_NORMAL = 1,
1002 V4L2_AUTO_FOCUS_RANGE_MACRO = 2,
1003 V4L2_AUTO_FOCUS_RANGE_INFINITY = 3,
1004 };
1005
1006 #define V4L2_CID_PAN_SPEED (V4L2_CID_CAMERA_CLASS_BASE+32)
1007 #define V4L2_CID_TILT_SPEED (V4L2_CID_CAMERA_CLASS_BASE+33)
1008
1009 #define V4L2_CID_CAMERA_ORIENTATION (V4L2_CID_CAMERA_CLASS_BASE+34)
1010 #define V4L2_CAMERA_ORIENTATION_FRONT 0
1011 #define V4L2_CAMERA_ORIENTATION_BACK 1
1012 #define V4L2_CAMERA_ORIENTATION_EXTERNAL 2
1013
1014 #define V4L2_CID_CAMERA_SENSOR_ROTATION (V4L2_CID_CAMERA_CLASS_BASE+35)
1015
1016
1017
1018 #define V4L2_CID_FM_TX_CLASS_BASE (V4L2_CTRL_CLASS_FM_TX | 0x900)
1019 #define V4L2_CID_FM_TX_CLASS (V4L2_CTRL_CLASS_FM_TX | 1)
1020
1021 #define V4L2_CID_RDS_TX_DEVIATION (V4L2_CID_FM_TX_CLASS_BASE + 1)
1022 #define V4L2_CID_RDS_TX_PI (V4L2_CID_FM_TX_CLASS_BASE + 2)
1023 #define V4L2_CID_RDS_TX_PTY (V4L2_CID_FM_TX_CLASS_BASE + 3)
1024 #define V4L2_CID_RDS_TX_PS_NAME (V4L2_CID_FM_TX_CLASS_BASE + 5)
1025 #define V4L2_CID_RDS_TX_RADIO_TEXT (V4L2_CID_FM_TX_CLASS_BASE + 6)
1026 #define V4L2_CID_RDS_TX_MONO_STEREO (V4L2_CID_FM_TX_CLASS_BASE + 7)
1027 #define V4L2_CID_RDS_TX_ARTIFICIAL_HEAD (V4L2_CID_FM_TX_CLASS_BASE + 8)
1028 #define V4L2_CID_RDS_TX_COMPRESSED (V4L2_CID_FM_TX_CLASS_BASE + 9)
1029 #define V4L2_CID_RDS_TX_DYNAMIC_PTY (V4L2_CID_FM_TX_CLASS_BASE + 10)
1030 #define V4L2_CID_RDS_TX_TRAFFIC_ANNOUNCEMENT (V4L2_CID_FM_TX_CLASS_BASE + 11)
1031 #define V4L2_CID_RDS_TX_TRAFFIC_PROGRAM (V4L2_CID_FM_TX_CLASS_BASE + 12)
1032 #define V4L2_CID_RDS_TX_MUSIC_SPEECH (V4L2_CID_FM_TX_CLASS_BASE + 13)
1033 #define V4L2_CID_RDS_TX_ALT_FREQS_ENABLE (V4L2_CID_FM_TX_CLASS_BASE + 14)
1034 #define V4L2_CID_RDS_TX_ALT_FREQS (V4L2_CID_FM_TX_CLASS_BASE + 15)
1035
1036 #define V4L2_CID_AUDIO_LIMITER_ENABLED (V4L2_CID_FM_TX_CLASS_BASE + 64)
1037 #define V4L2_CID_AUDIO_LIMITER_RELEASE_TIME (V4L2_CID_FM_TX_CLASS_BASE + 65)
1038 #define V4L2_CID_AUDIO_LIMITER_DEVIATION (V4L2_CID_FM_TX_CLASS_BASE + 66)
1039
1040 #define V4L2_CID_AUDIO_COMPRESSION_ENABLED (V4L2_CID_FM_TX_CLASS_BASE + 80)
1041 #define V4L2_CID_AUDIO_COMPRESSION_GAIN (V4L2_CID_FM_TX_CLASS_BASE + 81)
1042 #define V4L2_CID_AUDIO_COMPRESSION_THRESHOLD (V4L2_CID_FM_TX_CLASS_BASE + 82)
1043 #define V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME (V4L2_CID_FM_TX_CLASS_BASE + 83)
1044 #define V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME (V4L2_CID_FM_TX_CLASS_BASE + 84)
1045
1046 #define V4L2_CID_PILOT_TONE_ENABLED (V4L2_CID_FM_TX_CLASS_BASE + 96)
1047 #define V4L2_CID_PILOT_TONE_DEVIATION (V4L2_CID_FM_TX_CLASS_BASE + 97)
1048 #define V4L2_CID_PILOT_TONE_FREQUENCY (V4L2_CID_FM_TX_CLASS_BASE + 98)
1049
1050 #define V4L2_CID_TUNE_PREEMPHASIS (V4L2_CID_FM_TX_CLASS_BASE + 112)
1051 enum v4l2_preemphasis {
1052 V4L2_PREEMPHASIS_DISABLED = 0,
1053 V4L2_PREEMPHASIS_50_uS = 1,
1054 V4L2_PREEMPHASIS_75_uS = 2,
1055 };
1056 #define V4L2_CID_TUNE_POWER_LEVEL (V4L2_CID_FM_TX_CLASS_BASE + 113)
1057 #define V4L2_CID_TUNE_ANTENNA_CAPACITOR (V4L2_CID_FM_TX_CLASS_BASE + 114)
1058
1059
1060
1061
1062 #define V4L2_CID_FLASH_CLASS_BASE (V4L2_CTRL_CLASS_FLASH | 0x900)
1063 #define V4L2_CID_FLASH_CLASS (V4L2_CTRL_CLASS_FLASH | 1)
1064
1065 #define V4L2_CID_FLASH_LED_MODE (V4L2_CID_FLASH_CLASS_BASE + 1)
1066 enum v4l2_flash_led_mode {
1067 V4L2_FLASH_LED_MODE_NONE,
1068 V4L2_FLASH_LED_MODE_FLASH,
1069 V4L2_FLASH_LED_MODE_TORCH,
1070 };
1071
1072 #define V4L2_CID_FLASH_STROBE_SOURCE (V4L2_CID_FLASH_CLASS_BASE + 2)
1073 enum v4l2_flash_strobe_source {
1074 V4L2_FLASH_STROBE_SOURCE_SOFTWARE,
1075 V4L2_FLASH_STROBE_SOURCE_EXTERNAL,
1076 };
1077
1078 #define V4L2_CID_FLASH_STROBE (V4L2_CID_FLASH_CLASS_BASE + 3)
1079 #define V4L2_CID_FLASH_STROBE_STOP (V4L2_CID_FLASH_CLASS_BASE + 4)
1080 #define V4L2_CID_FLASH_STROBE_STATUS (V4L2_CID_FLASH_CLASS_BASE + 5)
1081
1082 #define V4L2_CID_FLASH_TIMEOUT (V4L2_CID_FLASH_CLASS_BASE + 6)
1083 #define V4L2_CID_FLASH_INTENSITY (V4L2_CID_FLASH_CLASS_BASE + 7)
1084 #define V4L2_CID_FLASH_TORCH_INTENSITY (V4L2_CID_FLASH_CLASS_BASE + 8)
1085 #define V4L2_CID_FLASH_INDICATOR_INTENSITY (V4L2_CID_FLASH_CLASS_BASE + 9)
1086
1087 #define V4L2_CID_FLASH_FAULT (V4L2_CID_FLASH_CLASS_BASE + 10)
1088 #define V4L2_FLASH_FAULT_OVER_VOLTAGE (1 << 0)
1089 #define V4L2_FLASH_FAULT_TIMEOUT (1 << 1)
1090 #define V4L2_FLASH_FAULT_OVER_TEMPERATURE (1 << 2)
1091 #define V4L2_FLASH_FAULT_SHORT_CIRCUIT (1 << 3)
1092 #define V4L2_FLASH_FAULT_OVER_CURRENT (1 << 4)
1093 #define V4L2_FLASH_FAULT_INDICATOR (1 << 5)
1094 #define V4L2_FLASH_FAULT_UNDER_VOLTAGE (1 << 6)
1095 #define V4L2_FLASH_FAULT_INPUT_VOLTAGE (1 << 7)
1096 #define V4L2_FLASH_FAULT_LED_OVER_TEMPERATURE (1 << 8)
1097
1098 #define V4L2_CID_FLASH_CHARGE (V4L2_CID_FLASH_CLASS_BASE + 11)
1099 #define V4L2_CID_FLASH_READY (V4L2_CID_FLASH_CLASS_BASE + 12)
1100
1101
1102
1103
1104 #define V4L2_CID_JPEG_CLASS_BASE (V4L2_CTRL_CLASS_JPEG | 0x900)
1105 #define V4L2_CID_JPEG_CLASS (V4L2_CTRL_CLASS_JPEG | 1)
1106
1107 #define V4L2_CID_JPEG_CHROMA_SUBSAMPLING (V4L2_CID_JPEG_CLASS_BASE + 1)
1108 enum v4l2_jpeg_chroma_subsampling {
1109 V4L2_JPEG_CHROMA_SUBSAMPLING_444 = 0,
1110 V4L2_JPEG_CHROMA_SUBSAMPLING_422 = 1,
1111 V4L2_JPEG_CHROMA_SUBSAMPLING_420 = 2,
1112 V4L2_JPEG_CHROMA_SUBSAMPLING_411 = 3,
1113 V4L2_JPEG_CHROMA_SUBSAMPLING_410 = 4,
1114 V4L2_JPEG_CHROMA_SUBSAMPLING_GRAY = 5,
1115 };
1116 #define V4L2_CID_JPEG_RESTART_INTERVAL (V4L2_CID_JPEG_CLASS_BASE + 2)
1117 #define V4L2_CID_JPEG_COMPRESSION_QUALITY (V4L2_CID_JPEG_CLASS_BASE + 3)
1118
1119 #define V4L2_CID_JPEG_ACTIVE_MARKER (V4L2_CID_JPEG_CLASS_BASE + 4)
1120 #define V4L2_JPEG_ACTIVE_MARKER_APP0 (1 << 0)
1121 #define V4L2_JPEG_ACTIVE_MARKER_APP1 (1 << 1)
1122 #define V4L2_JPEG_ACTIVE_MARKER_COM (1 << 16)
1123 #define V4L2_JPEG_ACTIVE_MARKER_DQT (1 << 17)
1124 #define V4L2_JPEG_ACTIVE_MARKER_DHT (1 << 18)
1125
1126
1127
1128 #define V4L2_CID_IMAGE_SOURCE_CLASS_BASE (V4L2_CTRL_CLASS_IMAGE_SOURCE | 0x900)
1129 #define V4L2_CID_IMAGE_SOURCE_CLASS (V4L2_CTRL_CLASS_IMAGE_SOURCE | 1)
1130
1131 #define V4L2_CID_VBLANK (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 1)
1132 #define V4L2_CID_HBLANK (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 2)
1133 #define V4L2_CID_ANALOGUE_GAIN (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 3)
1134 #define V4L2_CID_TEST_PATTERN_RED (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 4)
1135 #define V4L2_CID_TEST_PATTERN_GREENR (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 5)
1136 #define V4L2_CID_TEST_PATTERN_BLUE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 6)
1137 #define V4L2_CID_TEST_PATTERN_GREENB (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 7)
1138 #define V4L2_CID_UNIT_CELL_SIZE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 8)
1139 #define V4L2_CID_NOTIFY_GAINS (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 9)
1140
1141
1142
1143
1144 #define V4L2_CID_IMAGE_PROC_CLASS_BASE (V4L2_CTRL_CLASS_IMAGE_PROC | 0x900)
1145 #define V4L2_CID_IMAGE_PROC_CLASS (V4L2_CTRL_CLASS_IMAGE_PROC | 1)
1146
1147 #define V4L2_CID_LINK_FREQ (V4L2_CID_IMAGE_PROC_CLASS_BASE + 1)
1148 #define V4L2_CID_PIXEL_RATE (V4L2_CID_IMAGE_PROC_CLASS_BASE + 2)
1149 #define V4L2_CID_TEST_PATTERN (V4L2_CID_IMAGE_PROC_CLASS_BASE + 3)
1150 #define V4L2_CID_DEINTERLACING_MODE (V4L2_CID_IMAGE_PROC_CLASS_BASE + 4)
1151 #define V4L2_CID_DIGITAL_GAIN (V4L2_CID_IMAGE_PROC_CLASS_BASE + 5)
1152
1153
1154 #define V4L2_CID_DV_CLASS_BASE (V4L2_CTRL_CLASS_DV | 0x900)
1155 #define V4L2_CID_DV_CLASS (V4L2_CTRL_CLASS_DV | 1)
1156
1157 #define V4L2_CID_DV_TX_HOTPLUG (V4L2_CID_DV_CLASS_BASE + 1)
1158 #define V4L2_CID_DV_TX_RXSENSE (V4L2_CID_DV_CLASS_BASE + 2)
1159 #define V4L2_CID_DV_TX_EDID_PRESENT (V4L2_CID_DV_CLASS_BASE + 3)
1160 #define V4L2_CID_DV_TX_MODE (V4L2_CID_DV_CLASS_BASE + 4)
1161 enum v4l2_dv_tx_mode {
1162 V4L2_DV_TX_MODE_DVI_D = 0,
1163 V4L2_DV_TX_MODE_HDMI = 1,
1164 };
1165 #define V4L2_CID_DV_TX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 5)
1166 enum v4l2_dv_rgb_range {
1167 V4L2_DV_RGB_RANGE_AUTO = 0,
1168 V4L2_DV_RGB_RANGE_LIMITED = 1,
1169 V4L2_DV_RGB_RANGE_FULL = 2,
1170 };
1171
1172 #define V4L2_CID_DV_TX_IT_CONTENT_TYPE (V4L2_CID_DV_CLASS_BASE + 6)
1173 enum v4l2_dv_it_content_type {
1174 V4L2_DV_IT_CONTENT_TYPE_GRAPHICS = 0,
1175 V4L2_DV_IT_CONTENT_TYPE_PHOTO = 1,
1176 V4L2_DV_IT_CONTENT_TYPE_CINEMA = 2,
1177 V4L2_DV_IT_CONTENT_TYPE_GAME = 3,
1178 V4L2_DV_IT_CONTENT_TYPE_NO_ITC = 4,
1179 };
1180
1181 #define V4L2_CID_DV_RX_POWER_PRESENT (V4L2_CID_DV_CLASS_BASE + 100)
1182 #define V4L2_CID_DV_RX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 101)
1183 #define V4L2_CID_DV_RX_IT_CONTENT_TYPE (V4L2_CID_DV_CLASS_BASE + 102)
1184
1185 #define V4L2_CID_FM_RX_CLASS_BASE (V4L2_CTRL_CLASS_FM_RX | 0x900)
1186 #define V4L2_CID_FM_RX_CLASS (V4L2_CTRL_CLASS_FM_RX | 1)
1187
1188 #define V4L2_CID_TUNE_DEEMPHASIS (V4L2_CID_FM_RX_CLASS_BASE + 1)
1189 enum v4l2_deemphasis {
1190 V4L2_DEEMPHASIS_DISABLED = V4L2_PREEMPHASIS_DISABLED,
1191 V4L2_DEEMPHASIS_50_uS = V4L2_PREEMPHASIS_50_uS,
1192 V4L2_DEEMPHASIS_75_uS = V4L2_PREEMPHASIS_75_uS,
1193 };
1194
1195 #define V4L2_CID_RDS_RECEPTION (V4L2_CID_FM_RX_CLASS_BASE + 2)
1196 #define V4L2_CID_RDS_RX_PTY (V4L2_CID_FM_RX_CLASS_BASE + 3)
1197 #define V4L2_CID_RDS_RX_PS_NAME (V4L2_CID_FM_RX_CLASS_BASE + 4)
1198 #define V4L2_CID_RDS_RX_RADIO_TEXT (V4L2_CID_FM_RX_CLASS_BASE + 5)
1199 #define V4L2_CID_RDS_RX_TRAFFIC_ANNOUNCEMENT (V4L2_CID_FM_RX_CLASS_BASE + 6)
1200 #define V4L2_CID_RDS_RX_TRAFFIC_PROGRAM (V4L2_CID_FM_RX_CLASS_BASE + 7)
1201 #define V4L2_CID_RDS_RX_MUSIC_SPEECH (V4L2_CID_FM_RX_CLASS_BASE + 8)
1202
1203 #define V4L2_CID_RF_TUNER_CLASS_BASE (V4L2_CTRL_CLASS_RF_TUNER | 0x900)
1204 #define V4L2_CID_RF_TUNER_CLASS (V4L2_CTRL_CLASS_RF_TUNER | 1)
1205
1206 #define V4L2_CID_RF_TUNER_BANDWIDTH_AUTO (V4L2_CID_RF_TUNER_CLASS_BASE + 11)
1207 #define V4L2_CID_RF_TUNER_BANDWIDTH (V4L2_CID_RF_TUNER_CLASS_BASE + 12)
1208 #define V4L2_CID_RF_TUNER_RF_GAIN (V4L2_CID_RF_TUNER_CLASS_BASE + 32)
1209 #define V4L2_CID_RF_TUNER_LNA_GAIN_AUTO (V4L2_CID_RF_TUNER_CLASS_BASE + 41)
1210 #define V4L2_CID_RF_TUNER_LNA_GAIN (V4L2_CID_RF_TUNER_CLASS_BASE + 42)
1211 #define V4L2_CID_RF_TUNER_MIXER_GAIN_AUTO (V4L2_CID_RF_TUNER_CLASS_BASE + 51)
1212 #define V4L2_CID_RF_TUNER_MIXER_GAIN (V4L2_CID_RF_TUNER_CLASS_BASE + 52)
1213 #define V4L2_CID_RF_TUNER_IF_GAIN_AUTO (V4L2_CID_RF_TUNER_CLASS_BASE + 61)
1214 #define V4L2_CID_RF_TUNER_IF_GAIN (V4L2_CID_RF_TUNER_CLASS_BASE + 62)
1215 #define V4L2_CID_RF_TUNER_PLL_LOCK (V4L2_CID_RF_TUNER_CLASS_BASE + 91)
1216
1217
1218
1219 #define V4L2_CID_DETECT_CLASS_BASE (V4L2_CTRL_CLASS_DETECT | 0x900)
1220 #define V4L2_CID_DETECT_CLASS (V4L2_CTRL_CLASS_DETECT | 1)
1221
1222 #define V4L2_CID_DETECT_MD_MODE (V4L2_CID_DETECT_CLASS_BASE + 1)
1223 enum v4l2_detect_md_mode {
1224 V4L2_DETECT_MD_MODE_DISABLED = 0,
1225 V4L2_DETECT_MD_MODE_GLOBAL = 1,
1226 V4L2_DETECT_MD_MODE_THRESHOLD_GRID = 2,
1227 V4L2_DETECT_MD_MODE_REGION_GRID = 3,
1228 };
1229 #define V4L2_CID_DETECT_MD_GLOBAL_THRESHOLD (V4L2_CID_DETECT_CLASS_BASE + 2)
1230 #define V4L2_CID_DETECT_MD_THRESHOLD_GRID (V4L2_CID_DETECT_CLASS_BASE + 3)
1231 #define V4L2_CID_DETECT_MD_REGION_GRID (V4L2_CID_DETECT_CLASS_BASE + 4)
1232
1233
1234
1235 #define V4L2_CID_CODEC_STATELESS_BASE (V4L2_CTRL_CLASS_CODEC_STATELESS | 0x900)
1236 #define V4L2_CID_CODEC_STATELESS_CLASS (V4L2_CTRL_CLASS_CODEC_STATELESS | 1)
1237
1238 #define V4L2_CID_STATELESS_H264_DECODE_MODE (V4L2_CID_CODEC_STATELESS_BASE + 0)
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255 enum v4l2_stateless_h264_decode_mode {
1256 V4L2_STATELESS_H264_DECODE_MODE_SLICE_BASED,
1257 V4L2_STATELESS_H264_DECODE_MODE_FRAME_BASED,
1258 };
1259
1260 #define V4L2_CID_STATELESS_H264_START_CODE (V4L2_CID_CODEC_STATELESS_BASE + 1)
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272 enum v4l2_stateless_h264_start_code {
1273 V4L2_STATELESS_H264_START_CODE_NONE,
1274 V4L2_STATELESS_H264_START_CODE_ANNEX_B,
1275 };
1276
1277 #define V4L2_H264_SPS_CONSTRAINT_SET0_FLAG 0x01
1278 #define V4L2_H264_SPS_CONSTRAINT_SET1_FLAG 0x02
1279 #define V4L2_H264_SPS_CONSTRAINT_SET2_FLAG 0x04
1280 #define V4L2_H264_SPS_CONSTRAINT_SET3_FLAG 0x08
1281 #define V4L2_H264_SPS_CONSTRAINT_SET4_FLAG 0x10
1282 #define V4L2_H264_SPS_CONSTRAINT_SET5_FLAG 0x20
1283
1284 #define V4L2_H264_SPS_FLAG_SEPARATE_COLOUR_PLANE 0x01
1285 #define V4L2_H264_SPS_FLAG_QPPRIME_Y_ZERO_TRANSFORM_BYPASS 0x02
1286 #define V4L2_H264_SPS_FLAG_DELTA_PIC_ORDER_ALWAYS_ZERO 0x04
1287 #define V4L2_H264_SPS_FLAG_GAPS_IN_FRAME_NUM_VALUE_ALLOWED 0x08
1288 #define V4L2_H264_SPS_FLAG_FRAME_MBS_ONLY 0x10
1289 #define V4L2_H264_SPS_FLAG_MB_ADAPTIVE_FRAME_FIELD 0x20
1290 #define V4L2_H264_SPS_FLAG_DIRECT_8X8_INFERENCE 0x40
1291
1292 #define V4L2_H264_SPS_HAS_CHROMA_FORMAT(sps) \
1293 ((sps)->profile_idc == 100 || (sps)->profile_idc == 110 || \
1294 (sps)->profile_idc == 122 || (sps)->profile_idc == 244 || \
1295 (sps)->profile_idc == 44 || (sps)->profile_idc == 83 || \
1296 (sps)->profile_idc == 86 || (sps)->profile_idc == 118 || \
1297 (sps)->profile_idc == 128 || (sps)->profile_idc == 138 || \
1298 (sps)->profile_idc == 139 || (sps)->profile_idc == 134 || \
1299 (sps)->profile_idc == 135)
1300
1301 #define V4L2_CID_STATELESS_H264_SPS (V4L2_CID_CODEC_STATELESS_BASE + 2)
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327 struct v4l2_ctrl_h264_sps {
1328 __u8 profile_idc;
1329 __u8 constraint_set_flags;
1330 __u8 level_idc;
1331 __u8 seq_parameter_set_id;
1332 __u8 chroma_format_idc;
1333 __u8 bit_depth_luma_minus8;
1334 __u8 bit_depth_chroma_minus8;
1335 __u8 log2_max_frame_num_minus4;
1336 __u8 pic_order_cnt_type;
1337 __u8 log2_max_pic_order_cnt_lsb_minus4;
1338 __u8 max_num_ref_frames;
1339 __u8 num_ref_frames_in_pic_order_cnt_cycle;
1340 __s32 offset_for_ref_frame[255];
1341 __s32 offset_for_non_ref_pic;
1342 __s32 offset_for_top_to_bottom_field;
1343 __u16 pic_width_in_mbs_minus1;
1344 __u16 pic_height_in_map_units_minus1;
1345 __u32 flags;
1346 };
1347
1348 #define V4L2_H264_PPS_FLAG_ENTROPY_CODING_MODE 0x0001
1349 #define V4L2_H264_PPS_FLAG_BOTTOM_FIELD_PIC_ORDER_IN_FRAME_PRESENT 0x0002
1350 #define V4L2_H264_PPS_FLAG_WEIGHTED_PRED 0x0004
1351 #define V4L2_H264_PPS_FLAG_DEBLOCKING_FILTER_CONTROL_PRESENT 0x0008
1352 #define V4L2_H264_PPS_FLAG_CONSTRAINED_INTRA_PRED 0x0010
1353 #define V4L2_H264_PPS_FLAG_REDUNDANT_PIC_CNT_PRESENT 0x0020
1354 #define V4L2_H264_PPS_FLAG_TRANSFORM_8X8_MODE 0x0040
1355 #define V4L2_H264_PPS_FLAG_SCALING_MATRIX_PRESENT 0x0080
1356
1357 #define V4L2_CID_STATELESS_H264_PPS (V4L2_CID_CODEC_STATELESS_BASE + 3)
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383 struct v4l2_ctrl_h264_pps {
1384 __u8 pic_parameter_set_id;
1385 __u8 seq_parameter_set_id;
1386 __u8 num_slice_groups_minus1;
1387 __u8 num_ref_idx_l0_default_active_minus1;
1388 __u8 num_ref_idx_l1_default_active_minus1;
1389 __u8 weighted_bipred_idc;
1390 __s8 pic_init_qp_minus26;
1391 __s8 pic_init_qs_minus26;
1392 __s8 chroma_qp_index_offset;
1393 __s8 second_chroma_qp_index_offset;
1394 __u16 flags;
1395 };
1396
1397 #define V4L2_CID_STATELESS_H264_SCALING_MATRIX (V4L2_CID_CODEC_STATELESS_BASE + 4)
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415 struct v4l2_ctrl_h264_scaling_matrix {
1416 __u8 scaling_list_4x4[6][16];
1417 __u8 scaling_list_8x8[6][64];
1418 };
1419
1420 struct v4l2_h264_weight_factors {
1421 __s16 luma_weight[32];
1422 __s16 luma_offset[32];
1423 __s16 chroma_weight[32][2];
1424 __s16 chroma_offset[32][2];
1425 };
1426
1427 #define V4L2_H264_CTRL_PRED_WEIGHTS_REQUIRED(pps, slice) \
1428 ((((pps)->flags & V4L2_H264_PPS_FLAG_WEIGHTED_PRED) && \
1429 ((slice)->slice_type == V4L2_H264_SLICE_TYPE_P || \
1430 (slice)->slice_type == V4L2_H264_SLICE_TYPE_SP)) || \
1431 ((pps)->weighted_bipred_idc == 1 && \
1432 (slice)->slice_type == V4L2_H264_SLICE_TYPE_B))
1433
1434 #define V4L2_CID_STATELESS_H264_PRED_WEIGHTS (V4L2_CID_CODEC_STATELESS_BASE + 5)
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445 struct v4l2_ctrl_h264_pred_weights {
1446 __u16 luma_log2_weight_denom;
1447 __u16 chroma_log2_weight_denom;
1448 struct v4l2_h264_weight_factors weight_factors[2];
1449 };
1450
1451 #define V4L2_H264_SLICE_TYPE_P 0
1452 #define V4L2_H264_SLICE_TYPE_B 1
1453 #define V4L2_H264_SLICE_TYPE_I 2
1454 #define V4L2_H264_SLICE_TYPE_SP 3
1455 #define V4L2_H264_SLICE_TYPE_SI 4
1456
1457 #define V4L2_H264_SLICE_FLAG_DIRECT_SPATIAL_MV_PRED 0x01
1458 #define V4L2_H264_SLICE_FLAG_SP_FOR_SWITCH 0x02
1459
1460 #define V4L2_H264_TOP_FIELD_REF 0x1
1461 #define V4L2_H264_BOTTOM_FIELD_REF 0x2
1462 #define V4L2_H264_FRAME_REF 0x3
1463
1464
1465
1466
1467
1468
1469
1470
1471 struct v4l2_h264_reference {
1472 __u8 fields;
1473 __u8 index;
1474 };
1475
1476
1477
1478
1479
1480 #define V4L2_H264_NUM_DPB_ENTRIES 16
1481 #define V4L2_H264_REF_LIST_LEN (2 * V4L2_H264_NUM_DPB_ENTRIES)
1482
1483 #define V4L2_CID_STATELESS_H264_SLICE_PARAMS (V4L2_CID_CODEC_STATELESS_BASE + 6)
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518 struct v4l2_ctrl_h264_slice_params {
1519 __u32 header_bit_size;
1520 __u32 first_mb_in_slice;
1521 __u8 slice_type;
1522 __u8 colour_plane_id;
1523 __u8 redundant_pic_cnt;
1524 __u8 cabac_init_idc;
1525 __s8 slice_qp_delta;
1526 __s8 slice_qs_delta;
1527 __u8 disable_deblocking_filter_idc;
1528 __s8 slice_alpha_c0_offset_div2;
1529 __s8 slice_beta_offset_div2;
1530 __u8 num_ref_idx_l0_active_minus1;
1531 __u8 num_ref_idx_l1_active_minus1;
1532
1533 __u8 reserved;
1534
1535 struct v4l2_h264_reference ref_pic_list0[V4L2_H264_REF_LIST_LEN];
1536 struct v4l2_h264_reference ref_pic_list1[V4L2_H264_REF_LIST_LEN];
1537
1538 __u32 flags;
1539 };
1540
1541 #define V4L2_H264_DPB_ENTRY_FLAG_VALID 0x01
1542 #define V4L2_H264_DPB_ENTRY_FLAG_ACTIVE 0x02
1543 #define V4L2_H264_DPB_ENTRY_FLAG_LONG_TERM 0x04
1544 #define V4L2_H264_DPB_ENTRY_FLAG_FIELD 0x08
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563 struct v4l2_h264_dpb_entry {
1564 __u64 reference_ts;
1565 __u32 pic_num;
1566 __u16 frame_num;
1567 __u8 fields;
1568 __u8 reserved[5];
1569 __s32 top_field_order_cnt;
1570 __s32 bottom_field_order_cnt;
1571 __u32 flags;
1572 };
1573
1574 #define V4L2_H264_DECODE_PARAM_FLAG_IDR_PIC 0x01
1575 #define V4L2_H264_DECODE_PARAM_FLAG_FIELD_PIC 0x02
1576 #define V4L2_H264_DECODE_PARAM_FLAG_BOTTOM_FIELD 0x04
1577 #define V4L2_H264_DECODE_PARAM_FLAG_PFRAME 0x08
1578 #define V4L2_H264_DECODE_PARAM_FLAG_BFRAME 0x10
1579
1580 #define V4L2_CID_STATELESS_H264_DECODE_PARAMS (V4L2_CID_CODEC_STATELESS_BASE + 7)
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602 struct v4l2_ctrl_h264_decode_params {
1603 struct v4l2_h264_dpb_entry dpb[V4L2_H264_NUM_DPB_ENTRIES];
1604 __u16 nal_ref_idc;
1605 __u16 frame_num;
1606 __s32 top_field_order_cnt;
1607 __s32 bottom_field_order_cnt;
1608 __u16 idr_pic_id;
1609 __u16 pic_order_cnt_lsb;
1610 __s32 delta_pic_order_cnt_bottom;
1611 __s32 delta_pic_order_cnt0;
1612 __s32 delta_pic_order_cnt1;
1613 __u32 dec_ref_pic_marking_bit_size;
1614 __u32 pic_order_cnt_bit_size;
1615 __u32 slice_group_change_cycle;
1616
1617 __u32 reserved;
1618 __u32 flags;
1619 };
1620
1621
1622
1623
1624
1625 #define V4L2_FWHT_VERSION 3
1626
1627
1628 #define V4L2_FWHT_FL_IS_INTERLACED _BITUL(0)
1629
1630 #define V4L2_FWHT_FL_IS_BOTTOM_FIRST _BITUL(1)
1631
1632 #define V4L2_FWHT_FL_IS_ALTERNATE _BITUL(2)
1633
1634
1635
1636
1637 #define V4L2_FWHT_FL_IS_BOTTOM_FIELD _BITUL(3)
1638
1639 #define V4L2_FWHT_FL_LUMA_IS_UNCOMPRESSED _BITUL(4)
1640
1641 #define V4L2_FWHT_FL_CB_IS_UNCOMPRESSED _BITUL(5)
1642
1643 #define V4L2_FWHT_FL_CR_IS_UNCOMPRESSED _BITUL(6)
1644
1645 #define V4L2_FWHT_FL_CHROMA_FULL_HEIGHT _BITUL(7)
1646
1647 #define V4L2_FWHT_FL_CHROMA_FULL_WIDTH _BITUL(8)
1648
1649 #define V4L2_FWHT_FL_ALPHA_IS_UNCOMPRESSED _BITUL(9)
1650
1651 #define V4L2_FWHT_FL_I_FRAME _BITUL(10)
1652
1653
1654 #define V4L2_FWHT_FL_COMPONENTS_NUM_MSK GENMASK(18, 16)
1655 #define V4L2_FWHT_FL_COMPONENTS_NUM_OFFSET 16
1656
1657
1658 #define V4L2_FWHT_FL_PIXENC_MSK GENMASK(20, 19)
1659 #define V4L2_FWHT_FL_PIXENC_OFFSET 19
1660 #define V4L2_FWHT_FL_PIXENC_YUV (1 << V4L2_FWHT_FL_PIXENC_OFFSET)
1661 #define V4L2_FWHT_FL_PIXENC_RGB (2 << V4L2_FWHT_FL_PIXENC_OFFSET)
1662 #define V4L2_FWHT_FL_PIXENC_HSV (3 << V4L2_FWHT_FL_PIXENC_OFFSET)
1663
1664 #define V4L2_CID_STATELESS_FWHT_PARAMS (V4L2_CID_CODEC_STATELESS_BASE + 100)
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680 struct v4l2_ctrl_fwht_params {
1681 __u64 backward_ref_ts;
1682 __u32 version;
1683 __u32 width;
1684 __u32 height;
1685 __u32 flags;
1686 __u32 colorspace;
1687 __u32 xfer_func;
1688 __u32 ycbcr_enc;
1689 __u32 quantization;
1690 };
1691
1692
1693
1694 #define V4L2_VP8_SEGMENT_FLAG_ENABLED 0x01
1695 #define V4L2_VP8_SEGMENT_FLAG_UPDATE_MAP 0x02
1696 #define V4L2_VP8_SEGMENT_FLAG_UPDATE_FEATURE_DATA 0x04
1697 #define V4L2_VP8_SEGMENT_FLAG_DELTA_VALUE_MODE 0x08
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713 struct v4l2_vp8_segment {
1714 __s8 quant_update[4];
1715 __s8 lf_update[4];
1716 __u8 segment_probs[3];
1717 __u8 padding;
1718 __u32 flags;
1719 };
1720
1721 #define V4L2_VP8_LF_ADJ_ENABLE 0x01
1722 #define V4L2_VP8_LF_DELTA_UPDATE 0x02
1723 #define V4L2_VP8_LF_FILTER_TYPE_SIMPLE 0x04
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740 struct v4l2_vp8_loop_filter {
1741 __s8 ref_frm_delta[4];
1742 __s8 mb_mode_delta[4];
1743 __u8 sharpness_level;
1744 __u8 level;
1745 __u16 padding;
1746 __u32 flags;
1747 };
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765 struct v4l2_vp8_quantization {
1766 __u8 y_ac_qi;
1767 __s8 y_dc_delta;
1768 __s8 y2_dc_delta;
1769 __s8 y2_ac_delta;
1770 __s8 uv_dc_delta;
1771 __s8 uv_ac_delta;
1772 __u16 padding;
1773 };
1774
1775 #define V4L2_VP8_COEFF_PROB_CNT 11
1776 #define V4L2_VP8_MV_PROB_CNT 19
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792 struct v4l2_vp8_entropy {
1793 __u8 coeff_probs[4][8][3][V4L2_VP8_COEFF_PROB_CNT];
1794 __u8 y_mode_probs[4];
1795 __u8 uv_mode_probs[3];
1796 __u8 mv_probs[2][V4L2_VP8_MV_PROB_CNT];
1797 __u8 padding[3];
1798 };
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811 struct v4l2_vp8_entropy_coder_state {
1812 __u8 range;
1813 __u8 value;
1814 __u8 bit_count;
1815 __u8 padding;
1816 };
1817
1818 #define V4L2_VP8_FRAME_FLAG_KEY_FRAME 0x01
1819 #define V4L2_VP8_FRAME_FLAG_EXPERIMENTAL 0x02
1820 #define V4L2_VP8_FRAME_FLAG_SHOW_FRAME 0x04
1821 #define V4L2_VP8_FRAME_FLAG_MB_NO_SKIP_COEFF 0x08
1822 #define V4L2_VP8_FRAME_FLAG_SIGN_BIAS_GOLDEN 0x10
1823 #define V4L2_VP8_FRAME_FLAG_SIGN_BIAS_ALT 0x20
1824
1825 #define V4L2_VP8_FRAME_IS_KEY_FRAME(hdr) \
1826 (!!((hdr)->flags & V4L2_VP8_FRAME_FLAG_KEY_FRAME))
1827
1828 #define V4L2_CID_STATELESS_VP8_FRAME (V4L2_CID_CODEC_STATELESS_BASE + 200)
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857 struct v4l2_ctrl_vp8_frame {
1858 struct v4l2_vp8_segment segment;
1859 struct v4l2_vp8_loop_filter lf;
1860 struct v4l2_vp8_quantization quant;
1861 struct v4l2_vp8_entropy entropy;
1862 struct v4l2_vp8_entropy_coder_state coder_state;
1863
1864 __u16 width;
1865 __u16 height;
1866
1867 __u8 horizontal_scale;
1868 __u8 vertical_scale;
1869
1870 __u8 version;
1871 __u8 prob_skip_false;
1872 __u8 prob_intra;
1873 __u8 prob_last;
1874 __u8 prob_gf;
1875 __u8 num_dct_parts;
1876
1877 __u32 first_part_size;
1878 __u32 first_part_header_bits;
1879 __u32 dct_part_sizes[8];
1880
1881 __u64 last_frame_ts;
1882 __u64 golden_frame_ts;
1883 __u64 alt_frame_ts;
1884
1885 __u64 flags;
1886 };
1887
1888
1889
1890 #define V4L2_MPEG2_SEQ_FLAG_PROGRESSIVE 0x01
1891
1892 #define V4L2_CID_STATELESS_MPEG2_SEQUENCE (V4L2_CID_CODEC_STATELESS_BASE+220)
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913 struct v4l2_ctrl_mpeg2_sequence {
1914 __u16 horizontal_size;
1915 __u16 vertical_size;
1916 __u32 vbv_buffer_size;
1917 __u16 profile_and_level_indication;
1918 __u8 chroma_format;
1919 __u8 flags;
1920 };
1921
1922 #define V4L2_MPEG2_PIC_CODING_TYPE_I 1
1923 #define V4L2_MPEG2_PIC_CODING_TYPE_P 2
1924 #define V4L2_MPEG2_PIC_CODING_TYPE_B 3
1925 #define V4L2_MPEG2_PIC_CODING_TYPE_D 4
1926
1927 #define V4L2_MPEG2_PIC_TOP_FIELD 0x1
1928 #define V4L2_MPEG2_PIC_BOTTOM_FIELD 0x2
1929 #define V4L2_MPEG2_PIC_FRAME 0x3
1930
1931 #define V4L2_MPEG2_PIC_FLAG_TOP_FIELD_FIRST 0x0001
1932 #define V4L2_MPEG2_PIC_FLAG_FRAME_PRED_DCT 0x0002
1933 #define V4L2_MPEG2_PIC_FLAG_CONCEALMENT_MV 0x0004
1934 #define V4L2_MPEG2_PIC_FLAG_Q_SCALE_TYPE 0x0008
1935 #define V4L2_MPEG2_PIC_FLAG_INTRA_VLC 0x0010
1936 #define V4L2_MPEG2_PIC_FLAG_ALT_SCAN 0x0020
1937 #define V4L2_MPEG2_PIC_FLAG_REPEAT_FIRST 0x0040
1938 #define V4L2_MPEG2_PIC_FLAG_PROGRESSIVE 0x0080
1939
1940 #define V4L2_CID_STATELESS_MPEG2_PICTURE (V4L2_CID_CODEC_STATELESS_BASE+221)
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960 struct v4l2_ctrl_mpeg2_picture {
1961 __u64 backward_ref_ts;
1962 __u64 forward_ref_ts;
1963 __u32 flags;
1964 __u8 f_code[2][2];
1965 __u8 picture_coding_type;
1966 __u8 picture_structure;
1967 __u8 intra_dc_precision;
1968 __u8 reserved[5];
1969 };
1970
1971 #define V4L2_CID_STATELESS_MPEG2_QUANTISATION (V4L2_CID_CODEC_STATELESS_BASE+222)
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993 struct v4l2_ctrl_mpeg2_quantisation {
1994 __u8 intra_quantiser_matrix[64];
1995 __u8 non_intra_quantiser_matrix[64];
1996 __u8 chroma_intra_quantiser_matrix[64];
1997 __u8 chroma_non_intra_quantiser_matrix[64];
1998 };
1999
2000 #define V4L2_CID_STATELESS_HEVC_SPS (V4L2_CID_CODEC_STATELESS_BASE + 400)
2001 #define V4L2_CID_STATELESS_HEVC_PPS (V4L2_CID_CODEC_STATELESS_BASE + 401)
2002 #define V4L2_CID_STATELESS_HEVC_SLICE_PARAMS (V4L2_CID_CODEC_STATELESS_BASE + 402)
2003 #define V4L2_CID_STATELESS_HEVC_SCALING_MATRIX (V4L2_CID_CODEC_STATELESS_BASE + 403)
2004 #define V4L2_CID_STATELESS_HEVC_DECODE_PARAMS (V4L2_CID_CODEC_STATELESS_BASE + 404)
2005 #define V4L2_CID_STATELESS_HEVC_DECODE_MODE (V4L2_CID_CODEC_STATELESS_BASE + 405)
2006 #define V4L2_CID_STATELESS_HEVC_START_CODE (V4L2_CID_CODEC_STATELESS_BASE + 406)
2007 #define V4L2_CID_STATELESS_HEVC_ENTRY_POINT_OFFSETS (V4L2_CID_CODEC_STATELESS_BASE + 407)
2008
2009 enum v4l2_stateless_hevc_decode_mode {
2010 V4L2_STATELESS_HEVC_DECODE_MODE_SLICE_BASED,
2011 V4L2_STATELESS_HEVC_DECODE_MODE_FRAME_BASED,
2012 };
2013
2014 enum v4l2_stateless_hevc_start_code {
2015 V4L2_STATELESS_HEVC_START_CODE_NONE,
2016 V4L2_STATELESS_HEVC_START_CODE_ANNEX_B,
2017 };
2018
2019 #define V4L2_HEVC_SLICE_TYPE_B 0
2020 #define V4L2_HEVC_SLICE_TYPE_P 1
2021 #define V4L2_HEVC_SLICE_TYPE_I 2
2022
2023 #define V4L2_HEVC_SPS_FLAG_SEPARATE_COLOUR_PLANE (1ULL << 0)
2024 #define V4L2_HEVC_SPS_FLAG_SCALING_LIST_ENABLED (1ULL << 1)
2025 #define V4L2_HEVC_SPS_FLAG_AMP_ENABLED (1ULL << 2)
2026 #define V4L2_HEVC_SPS_FLAG_SAMPLE_ADAPTIVE_OFFSET (1ULL << 3)
2027 #define V4L2_HEVC_SPS_FLAG_PCM_ENABLED (1ULL << 4)
2028 #define V4L2_HEVC_SPS_FLAG_PCM_LOOP_FILTER_DISABLED (1ULL << 5)
2029 #define V4L2_HEVC_SPS_FLAG_LONG_TERM_REF_PICS_PRESENT (1ULL << 6)
2030 #define V4L2_HEVC_SPS_FLAG_SPS_TEMPORAL_MVP_ENABLED (1ULL << 7)
2031 #define V4L2_HEVC_SPS_FLAG_STRONG_INTRA_SMOOTHING_ENABLED (1ULL << 8)
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095 struct v4l2_ctrl_hevc_sps {
2096 __u8 video_parameter_set_id;
2097 __u8 seq_parameter_set_id;
2098 __u16 pic_width_in_luma_samples;
2099 __u16 pic_height_in_luma_samples;
2100 __u8 bit_depth_luma_minus8;
2101 __u8 bit_depth_chroma_minus8;
2102 __u8 log2_max_pic_order_cnt_lsb_minus4;
2103 __u8 sps_max_dec_pic_buffering_minus1;
2104 __u8 sps_max_num_reorder_pics;
2105 __u8 sps_max_latency_increase_plus1;
2106 __u8 log2_min_luma_coding_block_size_minus3;
2107 __u8 log2_diff_max_min_luma_coding_block_size;
2108 __u8 log2_min_luma_transform_block_size_minus2;
2109 __u8 log2_diff_max_min_luma_transform_block_size;
2110 __u8 max_transform_hierarchy_depth_inter;
2111 __u8 max_transform_hierarchy_depth_intra;
2112 __u8 pcm_sample_bit_depth_luma_minus1;
2113 __u8 pcm_sample_bit_depth_chroma_minus1;
2114 __u8 log2_min_pcm_luma_coding_block_size_minus3;
2115 __u8 log2_diff_max_min_pcm_luma_coding_block_size;
2116 __u8 num_short_term_ref_pic_sets;
2117 __u8 num_long_term_ref_pics_sps;
2118 __u8 chroma_format_idc;
2119 __u8 sps_max_sub_layers_minus1;
2120
2121 __u8 reserved[6];
2122 __u64 flags;
2123 };
2124
2125 #define V4L2_HEVC_PPS_FLAG_DEPENDENT_SLICE_SEGMENT_ENABLED (1ULL << 0)
2126 #define V4L2_HEVC_PPS_FLAG_OUTPUT_FLAG_PRESENT (1ULL << 1)
2127 #define V4L2_HEVC_PPS_FLAG_SIGN_DATA_HIDING_ENABLED (1ULL << 2)
2128 #define V4L2_HEVC_PPS_FLAG_CABAC_INIT_PRESENT (1ULL << 3)
2129 #define V4L2_HEVC_PPS_FLAG_CONSTRAINED_INTRA_PRED (1ULL << 4)
2130 #define V4L2_HEVC_PPS_FLAG_TRANSFORM_SKIP_ENABLED (1ULL << 5)
2131 #define V4L2_HEVC_PPS_FLAG_CU_QP_DELTA_ENABLED (1ULL << 6)
2132 #define V4L2_HEVC_PPS_FLAG_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT (1ULL << 7)
2133 #define V4L2_HEVC_PPS_FLAG_WEIGHTED_PRED (1ULL << 8)
2134 #define V4L2_HEVC_PPS_FLAG_WEIGHTED_BIPRED (1ULL << 9)
2135 #define V4L2_HEVC_PPS_FLAG_TRANSQUANT_BYPASS_ENABLED (1ULL << 10)
2136 #define V4L2_HEVC_PPS_FLAG_TILES_ENABLED (1ULL << 11)
2137 #define V4L2_HEVC_PPS_FLAG_ENTROPY_CODING_SYNC_ENABLED (1ULL << 12)
2138 #define V4L2_HEVC_PPS_FLAG_LOOP_FILTER_ACROSS_TILES_ENABLED (1ULL << 13)
2139 #define V4L2_HEVC_PPS_FLAG_PPS_LOOP_FILTER_ACROSS_SLICES_ENABLED (1ULL << 14)
2140 #define V4L2_HEVC_PPS_FLAG_DEBLOCKING_FILTER_OVERRIDE_ENABLED (1ULL << 15)
2141 #define V4L2_HEVC_PPS_FLAG_PPS_DISABLE_DEBLOCKING_FILTER (1ULL << 16)
2142 #define V4L2_HEVC_PPS_FLAG_LISTS_MODIFICATION_PRESENT (1ULL << 17)
2143 #define V4L2_HEVC_PPS_FLAG_SLICE_SEGMENT_HEADER_EXTENSION_PRESENT (1ULL << 18)
2144 #define V4L2_HEVC_PPS_FLAG_DEBLOCKING_FILTER_CONTROL_PRESENT (1ULL << 19)
2145 #define V4L2_HEVC_PPS_FLAG_UNIFORM_SPACING (1ULL << 20)
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184 struct v4l2_ctrl_hevc_pps {
2185 __u8 pic_parameter_set_id;
2186 __u8 num_extra_slice_header_bits;
2187 __u8 num_ref_idx_l0_default_active_minus1;
2188 __u8 num_ref_idx_l1_default_active_minus1;
2189 __s8 init_qp_minus26;
2190 __u8 diff_cu_qp_delta_depth;
2191 __s8 pps_cb_qp_offset;
2192 __s8 pps_cr_qp_offset;
2193 __u8 num_tile_columns_minus1;
2194 __u8 num_tile_rows_minus1;
2195 __u8 column_width_minus1[20];
2196 __u8 row_height_minus1[22];
2197 __s8 pps_beta_offset_div2;
2198 __s8 pps_tc_offset_div2;
2199 __u8 log2_parallel_merge_level_minus2;
2200 __u8 reserved;
2201 __u64 flags;
2202 };
2203
2204 #define V4L2_HEVC_DPB_ENTRY_LONG_TERM_REFERENCE 0x01
2205
2206 #define V4L2_HEVC_SEI_PIC_STRUCT_FRAME 0
2207 #define V4L2_HEVC_SEI_PIC_STRUCT_TOP_FIELD 1
2208 #define V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_FIELD 2
2209 #define V4L2_HEVC_SEI_PIC_STRUCT_TOP_BOTTOM 3
2210 #define V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_TOP 4
2211 #define V4L2_HEVC_SEI_PIC_STRUCT_TOP_BOTTOM_TOP 5
2212 #define V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM 6
2213 #define V4L2_HEVC_SEI_PIC_STRUCT_FRAME_DOUBLING 7
2214 #define V4L2_HEVC_SEI_PIC_STRUCT_FRAME_TRIPLING 8
2215 #define V4L2_HEVC_SEI_PIC_STRUCT_TOP_PAIRED_PREVIOUS_BOTTOM 9
2216 #define V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_PAIRED_PREVIOUS_TOP 10
2217 #define V4L2_HEVC_SEI_PIC_STRUCT_TOP_PAIRED_NEXT_BOTTOM 11
2218 #define V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_PAIRED_NEXT_TOP 12
2219
2220 #define V4L2_HEVC_DPB_ENTRIES_NUM_MAX 16
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231 struct v4l2_hevc_dpb_entry {
2232 __u64 timestamp;
2233 __u8 flags;
2234 __u8 field_pic;
2235 __u16 reserved;
2236 __s32 pic_order_cnt_val;
2237 };
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264 struct v4l2_hevc_pred_weight_table {
2265 __s8 delta_luma_weight_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
2266 __s8 luma_offset_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
2267 __s8 delta_chroma_weight_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2];
2268 __s8 chroma_offset_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2];
2269
2270 __s8 delta_luma_weight_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
2271 __s8 luma_offset_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
2272 __s8 delta_chroma_weight_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2];
2273 __s8 chroma_offset_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2];
2274
2275 __u8 luma_log2_weight_denom;
2276 __s8 delta_chroma_log2_weight_denom;
2277 };
2278
2279 #define V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_SAO_LUMA (1ULL << 0)
2280 #define V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_SAO_CHROMA (1ULL << 1)
2281 #define V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_TEMPORAL_MVP_ENABLED (1ULL << 2)
2282 #define V4L2_HEVC_SLICE_PARAMS_FLAG_MVD_L1_ZERO (1ULL << 3)
2283 #define V4L2_HEVC_SLICE_PARAMS_FLAG_CABAC_INIT (1ULL << 4)
2284 #define V4L2_HEVC_SLICE_PARAMS_FLAG_COLLOCATED_FROM_L0 (1ULL << 5)
2285 #define V4L2_HEVC_SLICE_PARAMS_FLAG_USE_INTEGER_MV (1ULL << 6)
2286 #define V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_DEBLOCKING_FILTER_DISABLED (1ULL << 7)
2287 #define V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_LOOP_FILTER_ACROSS_SLICES_ENABLED (1ULL << 8)
2288 #define V4L2_HEVC_SLICE_PARAMS_FLAG_DEPENDENT_SLICE_SEGMENT (1ULL << 9)
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341 struct v4l2_ctrl_hevc_slice_params {
2342 __u32 bit_size;
2343 __u32 data_byte_offset;
2344 __u32 num_entry_point_offsets;
2345
2346
2347 __u8 nal_unit_type;
2348 __u8 nuh_temporal_id_plus1;
2349
2350
2351 __u8 slice_type;
2352 __u8 colour_plane_id;
2353 __s32 slice_pic_order_cnt;
2354 __u8 num_ref_idx_l0_active_minus1;
2355 __u8 num_ref_idx_l1_active_minus1;
2356 __u8 collocated_ref_idx;
2357 __u8 five_minus_max_num_merge_cand;
2358 __s8 slice_qp_delta;
2359 __s8 slice_cb_qp_offset;
2360 __s8 slice_cr_qp_offset;
2361 __s8 slice_act_y_qp_offset;
2362 __s8 slice_act_cb_qp_offset;
2363 __s8 slice_act_cr_qp_offset;
2364 __s8 slice_beta_offset_div2;
2365 __s8 slice_tc_offset_div2;
2366
2367
2368 __u8 pic_struct;
2369
2370 __u8 reserved0[3];
2371
2372 __u32 slice_segment_addr;
2373 __u8 ref_idx_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
2374 __u8 ref_idx_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
2375 __u16 short_term_ref_pic_set_size;
2376 __u16 long_term_ref_pic_set_size;
2377
2378
2379 struct v4l2_hevc_pred_weight_table pred_weight_table;
2380
2381 __u8 reserved1[2];
2382 __u64 flags;
2383 };
2384
2385 #define V4L2_HEVC_DECODE_PARAM_FLAG_IRAP_PIC 0x1
2386 #define V4L2_HEVC_DECODE_PARAM_FLAG_IDR_PIC 0x2
2387 #define V4L2_HEVC_DECODE_PARAM_FLAG_NO_OUTPUT_OF_PRIOR 0x4
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412 struct v4l2_ctrl_hevc_decode_params {
2413 __s32 pic_order_cnt_val;
2414 __u16 short_term_ref_pic_set_size;
2415 __u16 long_term_ref_pic_set_size;
2416 __u8 num_active_dpb_entries;
2417 __u8 num_poc_st_curr_before;
2418 __u8 num_poc_st_curr_after;
2419 __u8 num_poc_lt_curr;
2420 __u8 poc_st_curr_before[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
2421 __u8 poc_st_curr_after[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
2422 __u8 poc_lt_curr[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
2423 __u8 reserved[4];
2424 struct v4l2_hevc_dpb_entry dpb[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
2425 __u64 flags;
2426 };
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450 struct v4l2_ctrl_hevc_scaling_matrix {
2451 __u8 scaling_list_4x4[6][16];
2452 __u8 scaling_list_8x8[6][64];
2453 __u8 scaling_list_16x16[6][64];
2454 __u8 scaling_list_32x32[2][64];
2455 __u8 scaling_list_dc_coef_16x16[6];
2456 __u8 scaling_list_dc_coef_32x32[2];
2457 };
2458
2459 #define V4L2_CID_COLORIMETRY_CLASS_BASE (V4L2_CTRL_CLASS_COLORIMETRY | 0x900)
2460 #define V4L2_CID_COLORIMETRY_CLASS (V4L2_CTRL_CLASS_COLORIMETRY | 1)
2461
2462 #define V4L2_CID_COLORIMETRY_HDR10_CLL_INFO (V4L2_CID_COLORIMETRY_CLASS_BASE + 0)
2463
2464 struct v4l2_ctrl_hdr10_cll_info {
2465 __u16 max_content_light_level;
2466 __u16 max_pic_average_light_level;
2467 };
2468
2469 #define V4L2_CID_COLORIMETRY_HDR10_MASTERING_DISPLAY (V4L2_CID_COLORIMETRY_CLASS_BASE + 1)
2470
2471 #define V4L2_HDR10_MASTERING_PRIMARIES_X_LOW 5
2472 #define V4L2_HDR10_MASTERING_PRIMARIES_X_HIGH 37000
2473 #define V4L2_HDR10_MASTERING_PRIMARIES_Y_LOW 5
2474 #define V4L2_HDR10_MASTERING_PRIMARIES_Y_HIGH 42000
2475 #define V4L2_HDR10_MASTERING_WHITE_POINT_X_LOW 5
2476 #define V4L2_HDR10_MASTERING_WHITE_POINT_X_HIGH 37000
2477 #define V4L2_HDR10_MASTERING_WHITE_POINT_Y_LOW 5
2478 #define V4L2_HDR10_MASTERING_WHITE_POINT_Y_HIGH 42000
2479 #define V4L2_HDR10_MASTERING_MAX_LUMA_LOW 50000
2480 #define V4L2_HDR10_MASTERING_MAX_LUMA_HIGH 100000000
2481 #define V4L2_HDR10_MASTERING_MIN_LUMA_LOW 1
2482 #define V4L2_HDR10_MASTERING_MIN_LUMA_HIGH 50000
2483
2484 struct v4l2_ctrl_hdr10_mastering_display {
2485 __u16 display_primaries_x[3];
2486 __u16 display_primaries_y[3];
2487 __u16 white_point_x;
2488 __u16 white_point_y;
2489 __u32 max_display_mastering_luminance;
2490 __u32 min_display_mastering_luminance;
2491 };
2492
2493
2494
2495 #define V4L2_VP9_LOOP_FILTER_FLAG_DELTA_ENABLED 0x1
2496 #define V4L2_VP9_LOOP_FILTER_FLAG_DELTA_UPDATE 0x2
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515 struct v4l2_vp9_loop_filter {
2516 __s8 ref_deltas[4];
2517 __s8 mode_deltas[2];
2518 __u8 level;
2519 __u8 sharpness;
2520 __u8 flags;
2521 __u8 reserved[7];
2522 };
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536 struct v4l2_vp9_quantization {
2537 __u8 base_q_idx;
2538 __s8 delta_q_y_dc;
2539 __s8 delta_q_uv_dc;
2540 __s8 delta_q_uv_ac;
2541 __u8 reserved[4];
2542 };
2543
2544 #define V4L2_VP9_SEGMENTATION_FLAG_ENABLED 0x01
2545 #define V4L2_VP9_SEGMENTATION_FLAG_UPDATE_MAP 0x02
2546 #define V4L2_VP9_SEGMENTATION_FLAG_TEMPORAL_UPDATE 0x04
2547 #define V4L2_VP9_SEGMENTATION_FLAG_UPDATE_DATA 0x08
2548 #define V4L2_VP9_SEGMENTATION_FLAG_ABS_OR_DELTA_UPDATE 0x10
2549
2550 #define V4L2_VP9_SEG_LVL_ALT_Q 0
2551 #define V4L2_VP9_SEG_LVL_ALT_L 1
2552 #define V4L2_VP9_SEG_LVL_REF_FRAME 2
2553 #define V4L2_VP9_SEG_LVL_SKIP 3
2554 #define V4L2_VP9_SEG_LVL_MAX 4
2555
2556 #define V4L2_VP9_SEGMENT_FEATURE_ENABLED(id) (1 << (id))
2557 #define V4L2_VP9_SEGMENT_FEATURE_ENABLED_MASK 0xf
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580 struct v4l2_vp9_segmentation {
2581 __s16 feature_data[8][4];
2582 __u8 feature_enabled[8];
2583 __u8 tree_probs[7];
2584 __u8 pred_probs[3];
2585 __u8 flags;
2586 __u8 reserved[5];
2587 };
2588
2589 #define V4L2_VP9_FRAME_FLAG_KEY_FRAME 0x001
2590 #define V4L2_VP9_FRAME_FLAG_SHOW_FRAME 0x002
2591 #define V4L2_VP9_FRAME_FLAG_ERROR_RESILIENT 0x004
2592 #define V4L2_VP9_FRAME_FLAG_INTRA_ONLY 0x008
2593 #define V4L2_VP9_FRAME_FLAG_ALLOW_HIGH_PREC_MV 0x010
2594 #define V4L2_VP9_FRAME_FLAG_REFRESH_FRAME_CTX 0x020
2595 #define V4L2_VP9_FRAME_FLAG_PARALLEL_DEC_MODE 0x040
2596 #define V4L2_VP9_FRAME_FLAG_X_SUBSAMPLING 0x080
2597 #define V4L2_VP9_FRAME_FLAG_Y_SUBSAMPLING 0x100
2598 #define V4L2_VP9_FRAME_FLAG_COLOR_RANGE_FULL_SWING 0x200
2599
2600 #define V4L2_VP9_SIGN_BIAS_LAST 0x1
2601 #define V4L2_VP9_SIGN_BIAS_GOLDEN 0x2
2602 #define V4L2_VP9_SIGN_BIAS_ALT 0x4
2603
2604 #define V4L2_VP9_RESET_FRAME_CTX_NONE 0
2605 #define V4L2_VP9_RESET_FRAME_CTX_SPEC 1
2606 #define V4L2_VP9_RESET_FRAME_CTX_ALL 2
2607
2608 #define V4L2_VP9_INTERP_FILTER_EIGHTTAP 0
2609 #define V4L2_VP9_INTERP_FILTER_EIGHTTAP_SMOOTH 1
2610 #define V4L2_VP9_INTERP_FILTER_EIGHTTAP_SHARP 2
2611 #define V4L2_VP9_INTERP_FILTER_BILINEAR 3
2612 #define V4L2_VP9_INTERP_FILTER_SWITCHABLE 4
2613
2614 #define V4L2_VP9_REFERENCE_MODE_SINGLE_REFERENCE 0
2615 #define V4L2_VP9_REFERENCE_MODE_COMPOUND_REFERENCE 1
2616 #define V4L2_VP9_REFERENCE_MODE_SELECT 2
2617
2618 #define V4L2_VP9_PROFILE_MAX 3
2619
2620 #define V4L2_CID_STATELESS_VP9_FRAME (V4L2_CID_CODEC_STATELESS_BASE + 300)
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665 struct v4l2_ctrl_vp9_frame {
2666 struct v4l2_vp9_loop_filter lf;
2667 struct v4l2_vp9_quantization quant;
2668 struct v4l2_vp9_segmentation seg;
2669 __u32 flags;
2670 __u16 compressed_header_size;
2671 __u16 uncompressed_header_size;
2672 __u16 frame_width_minus_1;
2673 __u16 frame_height_minus_1;
2674 __u16 render_width_minus_1;
2675 __u16 render_height_minus_1;
2676 __u64 last_frame_ts;
2677 __u64 golden_frame_ts;
2678 __u64 alt_frame_ts;
2679 __u8 ref_frame_sign_bias;
2680 __u8 reset_frame_context;
2681 __u8 frame_context_idx;
2682 __u8 profile;
2683 __u8 bit_depth;
2684 __u8 interpolation_filter;
2685 __u8 tile_cols_log2;
2686 __u8 tile_rows_log2;
2687 __u8 reference_mode;
2688 __u8 reserved[7];
2689 };
2690
2691 #define V4L2_VP9_NUM_FRAME_CTX 4
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709 struct v4l2_vp9_mv_probs {
2710 __u8 joint[3];
2711 __u8 sign[2];
2712 __u8 classes[2][10];
2713 __u8 class0_bit[2];
2714 __u8 bits[2][10];
2715 __u8 class0_fr[2][2][3];
2716 __u8 fr[2][3];
2717 __u8 class0_hp[2];
2718 __u8 hp[2];
2719 };
2720
2721 #define V4L2_CID_STATELESS_VP9_COMPRESSED_HDR (V4L2_CID_CODEC_STATELESS_BASE + 301)
2722
2723 #define V4L2_VP9_TX_MODE_ONLY_4X4 0
2724 #define V4L2_VP9_TX_MODE_ALLOW_8X8 1
2725 #define V4L2_VP9_TX_MODE_ALLOW_16X16 2
2726 #define V4L2_VP9_TX_MODE_ALLOW_32X32 3
2727 #define V4L2_VP9_TX_MODE_SELECT 4
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757 struct v4l2_ctrl_vp9_compressed_hdr {
2758 __u8 tx_mode;
2759 __u8 tx8[2][1];
2760 __u8 tx16[2][2];
2761 __u8 tx32[2][3];
2762 __u8 coef[4][2][2][6][6][3];
2763 __u8 skip[3];
2764 __u8 inter_mode[7][3];
2765 __u8 interp_filter[4][2];
2766 __u8 is_inter[4];
2767 __u8 comp_mode[5];
2768 __u8 single_ref[5][2];
2769 __u8 comp_ref[5];
2770 __u8 y_mode[4][9];
2771 __u8 uv_mode[10][9];
2772 __u8 partition[16][3];
2773
2774 struct v4l2_vp9_mv_probs mv;
2775 };
2776
2777
2778 #ifndef __KERNEL__
2779 #define V4L2_CTRL_CLASS_MPEG V4L2_CTRL_CLASS_CODEC
2780 #define V4L2_CID_MPEG_CLASS V4L2_CID_CODEC_CLASS
2781 #define V4L2_CID_MPEG_BASE V4L2_CID_CODEC_BASE
2782 #define V4L2_CID_MPEG_CX2341X_BASE V4L2_CID_CODEC_CX2341X_BASE
2783 #define V4L2_CID_MPEG_MFC51_BASE V4L2_CID_CODEC_MFC51_BASE
2784 #endif
2785
2786 #endif