1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50#ifndef __LINUX_V4L2_CONTROLS_H
51#define __LINUX_V4L2_CONTROLS_H
52
53#include <linux/types.h>
54
55
56#define V4L2_CTRL_CLASS_USER 0x00980000
57#define V4L2_CTRL_CLASS_CODEC 0x00990000
58#define V4L2_CTRL_CLASS_CAMERA 0x009a0000
59#define V4L2_CTRL_CLASS_FM_TX 0x009b0000
60#define V4L2_CTRL_CLASS_FLASH 0x009c0000
61#define V4L2_CTRL_CLASS_JPEG 0x009d0000
62#define V4L2_CTRL_CLASS_IMAGE_SOURCE 0x009e0000
63#define V4L2_CTRL_CLASS_IMAGE_PROC 0x009f0000
64#define V4L2_CTRL_CLASS_DV 0x00a00000
65#define V4L2_CTRL_CLASS_FM_RX 0x00a10000
66#define V4L2_CTRL_CLASS_RF_TUNER 0x00a20000
67#define V4L2_CTRL_CLASS_DETECT 0x00a30000
68#define V4L2_CTRL_CLASS_CODEC_STATELESS 0x00a40000
69#define V4L2_CTRL_CLASS_COLORIMETRY 0x00a50000
70
71
72
73#define V4L2_CID_BASE (V4L2_CTRL_CLASS_USER | 0x900)
74#define V4L2_CID_USER_BASE V4L2_CID_BASE
75#define V4L2_CID_USER_CLASS (V4L2_CTRL_CLASS_USER | 1)
76#define V4L2_CID_BRIGHTNESS (V4L2_CID_BASE+0)
77#define V4L2_CID_CONTRAST (V4L2_CID_BASE+1)
78#define V4L2_CID_SATURATION (V4L2_CID_BASE+2)
79#define V4L2_CID_HUE (V4L2_CID_BASE+3)
80#define V4L2_CID_AUDIO_VOLUME (V4L2_CID_BASE+5)
81#define V4L2_CID_AUDIO_BALANCE (V4L2_CID_BASE+6)
82#define V4L2_CID_AUDIO_BASS (V4L2_CID_BASE+7)
83#define V4L2_CID_AUDIO_TREBLE (V4L2_CID_BASE+8)
84#define V4L2_CID_AUDIO_MUTE (V4L2_CID_BASE+9)
85#define V4L2_CID_AUDIO_LOUDNESS (V4L2_CID_BASE+10)
86#define V4L2_CID_BLACK_LEVEL (V4L2_CID_BASE+11)
87#define V4L2_CID_AUTO_WHITE_BALANCE (V4L2_CID_BASE+12)
88#define V4L2_CID_DO_WHITE_BALANCE (V4L2_CID_BASE+13)
89#define V4L2_CID_RED_BALANCE (V4L2_CID_BASE+14)
90#define V4L2_CID_BLUE_BALANCE (V4L2_CID_BASE+15)
91#define V4L2_CID_GAMMA (V4L2_CID_BASE+16)
92#define V4L2_CID_WHITENESS (V4L2_CID_GAMMA)
93#define V4L2_CID_EXPOSURE (V4L2_CID_BASE+17)
94#define V4L2_CID_AUTOGAIN (V4L2_CID_BASE+18)
95#define V4L2_CID_GAIN (V4L2_CID_BASE+19)
96#define V4L2_CID_HFLIP (V4L2_CID_BASE+20)
97#define V4L2_CID_VFLIP (V4L2_CID_BASE+21)
98
99#define V4L2_CID_POWER_LINE_FREQUENCY (V4L2_CID_BASE+24)
100enum v4l2_power_line_frequency {
101 V4L2_CID_POWER_LINE_FREQUENCY_DISABLED = 0,
102 V4L2_CID_POWER_LINE_FREQUENCY_50HZ = 1,
103 V4L2_CID_POWER_LINE_FREQUENCY_60HZ = 2,
104 V4L2_CID_POWER_LINE_FREQUENCY_AUTO = 3,
105};
106#define V4L2_CID_HUE_AUTO (V4L2_CID_BASE+25)
107#define V4L2_CID_WHITE_BALANCE_TEMPERATURE (V4L2_CID_BASE+26)
108#define V4L2_CID_SHARPNESS (V4L2_CID_BASE+27)
109#define V4L2_CID_BACKLIGHT_COMPENSATION (V4L2_CID_BASE+28)
110#define V4L2_CID_CHROMA_AGC (V4L2_CID_BASE+29)
111#define V4L2_CID_COLOR_KILLER (V4L2_CID_BASE+30)
112#define V4L2_CID_COLORFX (V4L2_CID_BASE+31)
113enum v4l2_colorfx {
114 V4L2_COLORFX_NONE = 0,
115 V4L2_COLORFX_BW = 1,
116 V4L2_COLORFX_SEPIA = 2,
117 V4L2_COLORFX_NEGATIVE = 3,
118 V4L2_COLORFX_EMBOSS = 4,
119 V4L2_COLORFX_SKETCH = 5,
120 V4L2_COLORFX_SKY_BLUE = 6,
121 V4L2_COLORFX_GRASS_GREEN = 7,
122 V4L2_COLORFX_SKIN_WHITEN = 8,
123 V4L2_COLORFX_VIVID = 9,
124 V4L2_COLORFX_AQUA = 10,
125 V4L2_COLORFX_ART_FREEZE = 11,
126 V4L2_COLORFX_SILHOUETTE = 12,
127 V4L2_COLORFX_SOLARIZATION = 13,
128 V4L2_COLORFX_ANTIQUE = 14,
129 V4L2_COLORFX_SET_CBCR = 15,
130};
131#define V4L2_CID_AUTOBRIGHTNESS (V4L2_CID_BASE+32)
132#define V4L2_CID_BAND_STOP_FILTER (V4L2_CID_BASE+33)
133
134#define V4L2_CID_ROTATE (V4L2_CID_BASE+34)
135#define V4L2_CID_BG_COLOR (V4L2_CID_BASE+35)
136
137#define V4L2_CID_CHROMA_GAIN (V4L2_CID_BASE+36)
138
139#define V4L2_CID_ILLUMINATORS_1 (V4L2_CID_BASE+37)
140#define V4L2_CID_ILLUMINATORS_2 (V4L2_CID_BASE+38)
141
142#define V4L2_CID_MIN_BUFFERS_FOR_CAPTURE (V4L2_CID_BASE+39)
143#define V4L2_CID_MIN_BUFFERS_FOR_OUTPUT (V4L2_CID_BASE+40)
144
145#define V4L2_CID_ALPHA_COMPONENT (V4L2_CID_BASE+41)
146#define V4L2_CID_COLORFX_CBCR (V4L2_CID_BASE+42)
147
148
149#define V4L2_CID_LASTP1 (V4L2_CID_BASE+43)
150
151
152
153
154
155#define V4L2_CID_USER_MEYE_BASE (V4L2_CID_USER_BASE + 0x1000)
156
157
158
159#define V4L2_CID_USER_BTTV_BASE (V4L2_CID_USER_BASE + 0x1010)
160
161
162
163
164#define V4L2_CID_USER_S2255_BASE (V4L2_CID_USER_BASE + 0x1030)
165
166
167
168
169
170#define V4L2_CID_USER_SI476X_BASE (V4L2_CID_USER_BASE + 0x1040)
171
172
173
174#define V4L2_CID_USER_TI_VPE_BASE (V4L2_CID_USER_BASE + 0x1050)
175
176
177
178#define V4L2_CID_USER_SAA7134_BASE (V4L2_CID_USER_BASE + 0x1060)
179
180
181
182#define V4L2_CID_USER_ADV7180_BASE (V4L2_CID_USER_BASE + 0x1070)
183
184
185
186#define V4L2_CID_USER_TC358743_BASE (V4L2_CID_USER_BASE + 0x1080)
187
188
189
190
191#define V4L2_CID_USER_MAX217X_BASE (V4L2_CID_USER_BASE + 0x1090)
192
193
194
195#define V4L2_CID_USER_IMX_BASE (V4L2_CID_USER_BASE + 0x10b0)
196
197
198
199
200
201#define V4L2_CID_USER_ATMEL_ISC_BASE (V4L2_CID_USER_BASE + 0x10c0)
202
203
204
205
206
207#define V4L2_CID_USER_CODA_BASE (V4L2_CID_USER_BASE + 0x10e0)
208
209
210
211
212#define V4L2_CID_USER_CCS_BASE (V4L2_CID_USER_BASE + 0x10f0)
213
214
215
216
217
218#define V4L2_CID_CODEC_BASE (V4L2_CTRL_CLASS_CODEC | 0x900)
219#define V4L2_CID_CODEC_CLASS (V4L2_CTRL_CLASS_CODEC | 1)
220
221
222#define V4L2_CID_MPEG_STREAM_TYPE (V4L2_CID_CODEC_BASE+0)
223enum v4l2_mpeg_stream_type {
224 V4L2_MPEG_STREAM_TYPE_MPEG2_PS = 0,
225 V4L2_MPEG_STREAM_TYPE_MPEG2_TS = 1,
226 V4L2_MPEG_STREAM_TYPE_MPEG1_SS = 2,
227 V4L2_MPEG_STREAM_TYPE_MPEG2_DVD = 3,
228 V4L2_MPEG_STREAM_TYPE_MPEG1_VCD = 4,
229 V4L2_MPEG_STREAM_TYPE_MPEG2_SVCD = 5,
230};
231#define V4L2_CID_MPEG_STREAM_PID_PMT (V4L2_CID_CODEC_BASE+1)
232#define V4L2_CID_MPEG_STREAM_PID_AUDIO (V4L2_CID_CODEC_BASE+2)
233#define V4L2_CID_MPEG_STREAM_PID_VIDEO (V4L2_CID_CODEC_BASE+3)
234#define V4L2_CID_MPEG_STREAM_PID_PCR (V4L2_CID_CODEC_BASE+4)
235#define V4L2_CID_MPEG_STREAM_PES_ID_AUDIO (V4L2_CID_CODEC_BASE+5)
236#define V4L2_CID_MPEG_STREAM_PES_ID_VIDEO (V4L2_CID_CODEC_BASE+6)
237#define V4L2_CID_MPEG_STREAM_VBI_FMT (V4L2_CID_CODEC_BASE+7)
238enum v4l2_mpeg_stream_vbi_fmt {
239 V4L2_MPEG_STREAM_VBI_FMT_NONE = 0,
240 V4L2_MPEG_STREAM_VBI_FMT_IVTV = 1,
241};
242
243
244#define V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ (V4L2_CID_CODEC_BASE+100)
245enum v4l2_mpeg_audio_sampling_freq {
246 V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100 = 0,
247 V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000 = 1,
248 V4L2_MPEG_AUDIO_SAMPLING_FREQ_32000 = 2,
249};
250#define V4L2_CID_MPEG_AUDIO_ENCODING (V4L2_CID_CODEC_BASE+101)
251enum v4l2_mpeg_audio_encoding {
252 V4L2_MPEG_AUDIO_ENCODING_LAYER_1 = 0,
253 V4L2_MPEG_AUDIO_ENCODING_LAYER_2 = 1,
254 V4L2_MPEG_AUDIO_ENCODING_LAYER_3 = 2,
255 V4L2_MPEG_AUDIO_ENCODING_AAC = 3,
256 V4L2_MPEG_AUDIO_ENCODING_AC3 = 4,
257};
258#define V4L2_CID_MPEG_AUDIO_L1_BITRATE (V4L2_CID_CODEC_BASE+102)
259enum v4l2_mpeg_audio_l1_bitrate {
260 V4L2_MPEG_AUDIO_L1_BITRATE_32K = 0,
261 V4L2_MPEG_AUDIO_L1_BITRATE_64K = 1,
262 V4L2_MPEG_AUDIO_L1_BITRATE_96K = 2,
263 V4L2_MPEG_AUDIO_L1_BITRATE_128K = 3,
264 V4L2_MPEG_AUDIO_L1_BITRATE_160K = 4,
265 V4L2_MPEG_AUDIO_L1_BITRATE_192K = 5,
266 V4L2_MPEG_AUDIO_L1_BITRATE_224K = 6,
267 V4L2_MPEG_AUDIO_L1_BITRATE_256K = 7,
268 V4L2_MPEG_AUDIO_L1_BITRATE_288K = 8,
269 V4L2_MPEG_AUDIO_L1_BITRATE_320K = 9,
270 V4L2_MPEG_AUDIO_L1_BITRATE_352K = 10,
271 V4L2_MPEG_AUDIO_L1_BITRATE_384K = 11,
272 V4L2_MPEG_AUDIO_L1_BITRATE_416K = 12,
273 V4L2_MPEG_AUDIO_L1_BITRATE_448K = 13,
274};
275#define V4L2_CID_MPEG_AUDIO_L2_BITRATE (V4L2_CID_CODEC_BASE+103)
276enum v4l2_mpeg_audio_l2_bitrate {
277 V4L2_MPEG_AUDIO_L2_BITRATE_32K = 0,
278 V4L2_MPEG_AUDIO_L2_BITRATE_48K = 1,
279 V4L2_MPEG_AUDIO_L2_BITRATE_56K = 2,
280 V4L2_MPEG_AUDIO_L2_BITRATE_64K = 3,
281 V4L2_MPEG_AUDIO_L2_BITRATE_80K = 4,
282 V4L2_MPEG_AUDIO_L2_BITRATE_96K = 5,
283 V4L2_MPEG_AUDIO_L2_BITRATE_112K = 6,
284 V4L2_MPEG_AUDIO_L2_BITRATE_128K = 7,
285 V4L2_MPEG_AUDIO_L2_BITRATE_160K = 8,
286 V4L2_MPEG_AUDIO_L2_BITRATE_192K = 9,
287 V4L2_MPEG_AUDIO_L2_BITRATE_224K = 10,
288 V4L2_MPEG_AUDIO_L2_BITRATE_256K = 11,
289 V4L2_MPEG_AUDIO_L2_BITRATE_320K = 12,
290 V4L2_MPEG_AUDIO_L2_BITRATE_384K = 13,
291};
292#define V4L2_CID_MPEG_AUDIO_L3_BITRATE (V4L2_CID_CODEC_BASE+104)
293enum v4l2_mpeg_audio_l3_bitrate {
294 V4L2_MPEG_AUDIO_L3_BITRATE_32K = 0,
295 V4L2_MPEG_AUDIO_L3_BITRATE_40K = 1,
296 V4L2_MPEG_AUDIO_L3_BITRATE_48K = 2,
297 V4L2_MPEG_AUDIO_L3_BITRATE_56K = 3,
298 V4L2_MPEG_AUDIO_L3_BITRATE_64K = 4,
299 V4L2_MPEG_AUDIO_L3_BITRATE_80K = 5,
300 V4L2_MPEG_AUDIO_L3_BITRATE_96K = 6,
301 V4L2_MPEG_AUDIO_L3_BITRATE_112K = 7,
302 V4L2_MPEG_AUDIO_L3_BITRATE_128K = 8,
303 V4L2_MPEG_AUDIO_L3_BITRATE_160K = 9,
304 V4L2_MPEG_AUDIO_L3_BITRATE_192K = 10,
305 V4L2_MPEG_AUDIO_L3_BITRATE_224K = 11,
306 V4L2_MPEG_AUDIO_L3_BITRATE_256K = 12,
307 V4L2_MPEG_AUDIO_L3_BITRATE_320K = 13,
308};
309#define V4L2_CID_MPEG_AUDIO_MODE (V4L2_CID_CODEC_BASE+105)
310enum v4l2_mpeg_audio_mode {
311 V4L2_MPEG_AUDIO_MODE_STEREO = 0,
312 V4L2_MPEG_AUDIO_MODE_JOINT_STEREO = 1,
313 V4L2_MPEG_AUDIO_MODE_DUAL = 2,
314 V4L2_MPEG_AUDIO_MODE_MONO = 3,
315};
316#define V4L2_CID_MPEG_AUDIO_MODE_EXTENSION (V4L2_CID_CODEC_BASE+106)
317enum v4l2_mpeg_audio_mode_extension {
318 V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_4 = 0,
319 V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_8 = 1,
320 V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_12 = 2,
321 V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_16 = 3,
322};
323#define V4L2_CID_MPEG_AUDIO_EMPHASIS (V4L2_CID_CODEC_BASE+107)
324enum v4l2_mpeg_audio_emphasis {
325 V4L2_MPEG_AUDIO_EMPHASIS_NONE = 0,
326 V4L2_MPEG_AUDIO_EMPHASIS_50_DIV_15_uS = 1,
327 V4L2_MPEG_AUDIO_EMPHASIS_CCITT_J17 = 2,
328};
329#define V4L2_CID_MPEG_AUDIO_CRC (V4L2_CID_CODEC_BASE+108)
330enum v4l2_mpeg_audio_crc {
331 V4L2_MPEG_AUDIO_CRC_NONE = 0,
332 V4L2_MPEG_AUDIO_CRC_CRC16 = 1,
333};
334#define V4L2_CID_MPEG_AUDIO_MUTE (V4L2_CID_CODEC_BASE+109)
335#define V4L2_CID_MPEG_AUDIO_AAC_BITRATE (V4L2_CID_CODEC_BASE+110)
336#define V4L2_CID_MPEG_AUDIO_AC3_BITRATE (V4L2_CID_CODEC_BASE+111)
337enum v4l2_mpeg_audio_ac3_bitrate {
338 V4L2_MPEG_AUDIO_AC3_BITRATE_32K = 0,
339 V4L2_MPEG_AUDIO_AC3_BITRATE_40K = 1,
340 V4L2_MPEG_AUDIO_AC3_BITRATE_48K = 2,
341 V4L2_MPEG_AUDIO_AC3_BITRATE_56K = 3,
342 V4L2_MPEG_AUDIO_AC3_BITRATE_64K = 4,
343 V4L2_MPEG_AUDIO_AC3_BITRATE_80K = 5,
344 V4L2_MPEG_AUDIO_AC3_BITRATE_96K = 6,
345 V4L2_MPEG_AUDIO_AC3_BITRATE_112K = 7,
346 V4L2_MPEG_AUDIO_AC3_BITRATE_128K = 8,
347 V4L2_MPEG_AUDIO_AC3_BITRATE_160K = 9,
348 V4L2_MPEG_AUDIO_AC3_BITRATE_192K = 10,
349 V4L2_MPEG_AUDIO_AC3_BITRATE_224K = 11,
350 V4L2_MPEG_AUDIO_AC3_BITRATE_256K = 12,
351 V4L2_MPEG_AUDIO_AC3_BITRATE_320K = 13,
352 V4L2_MPEG_AUDIO_AC3_BITRATE_384K = 14,
353 V4L2_MPEG_AUDIO_AC3_BITRATE_448K = 15,
354 V4L2_MPEG_AUDIO_AC3_BITRATE_512K = 16,
355 V4L2_MPEG_AUDIO_AC3_BITRATE_576K = 17,
356 V4L2_MPEG_AUDIO_AC3_BITRATE_640K = 18,
357};
358#define V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK (V4L2_CID_CODEC_BASE+112)
359enum v4l2_mpeg_audio_dec_playback {
360 V4L2_MPEG_AUDIO_DEC_PLAYBACK_AUTO = 0,
361 V4L2_MPEG_AUDIO_DEC_PLAYBACK_STEREO = 1,
362 V4L2_MPEG_AUDIO_DEC_PLAYBACK_LEFT = 2,
363 V4L2_MPEG_AUDIO_DEC_PLAYBACK_RIGHT = 3,
364 V4L2_MPEG_AUDIO_DEC_PLAYBACK_MONO = 4,
365 V4L2_MPEG_AUDIO_DEC_PLAYBACK_SWAPPED_STEREO = 5,
366};
367#define V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK (V4L2_CID_CODEC_BASE+113)
368
369
370#define V4L2_CID_MPEG_VIDEO_ENCODING (V4L2_CID_CODEC_BASE+200)
371enum v4l2_mpeg_video_encoding {
372 V4L2_MPEG_VIDEO_ENCODING_MPEG_1 = 0,
373 V4L2_MPEG_VIDEO_ENCODING_MPEG_2 = 1,
374 V4L2_MPEG_VIDEO_ENCODING_MPEG_4_AVC = 2,
375};
376#define V4L2_CID_MPEG_VIDEO_ASPECT (V4L2_CID_CODEC_BASE+201)
377enum v4l2_mpeg_video_aspect {
378 V4L2_MPEG_VIDEO_ASPECT_1x1 = 0,
379 V4L2_MPEG_VIDEO_ASPECT_4x3 = 1,
380 V4L2_MPEG_VIDEO_ASPECT_16x9 = 2,
381 V4L2_MPEG_VIDEO_ASPECT_221x100 = 3,
382};
383#define V4L2_CID_MPEG_VIDEO_B_FRAMES (V4L2_CID_CODEC_BASE+202)
384#define V4L2_CID_MPEG_VIDEO_GOP_SIZE (V4L2_CID_CODEC_BASE+203)
385#define V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (V4L2_CID_CODEC_BASE+204)
386#define V4L2_CID_MPEG_VIDEO_PULLDOWN (V4L2_CID_CODEC_BASE+205)
387#define V4L2_CID_MPEG_VIDEO_BITRATE_MODE (V4L2_CID_CODEC_BASE+206)
388enum v4l2_mpeg_video_bitrate_mode {
389 V4L2_MPEG_VIDEO_BITRATE_MODE_VBR = 0,
390 V4L2_MPEG_VIDEO_BITRATE_MODE_CBR = 1,
391 V4L2_MPEG_VIDEO_BITRATE_MODE_CQ = 2,
392};
393#define V4L2_CID_MPEG_VIDEO_BITRATE (V4L2_CID_CODEC_BASE+207)
394#define V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (V4L2_CID_CODEC_BASE+208)
395#define V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (V4L2_CID_CODEC_BASE+209)
396#define V4L2_CID_MPEG_VIDEO_MUTE (V4L2_CID_CODEC_BASE+210)
397#define V4L2_CID_MPEG_VIDEO_MUTE_YUV (V4L2_CID_CODEC_BASE+211)
398#define V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE (V4L2_CID_CODEC_BASE+212)
399#define V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER (V4L2_CID_CODEC_BASE+213)
400#define V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB (V4L2_CID_CODEC_BASE+214)
401#define V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE (V4L2_CID_CODEC_BASE+215)
402#define V4L2_CID_MPEG_VIDEO_HEADER_MODE (V4L2_CID_CODEC_BASE+216)
403enum v4l2_mpeg_video_header_mode {
404 V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE = 0,
405 V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME = 1,
406
407};
408#define V4L2_CID_MPEG_VIDEO_MAX_REF_PIC (V4L2_CID_CODEC_BASE+217)
409#define V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE (V4L2_CID_CODEC_BASE+218)
410#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES (V4L2_CID_CODEC_BASE+219)
411#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB (V4L2_CID_CODEC_BASE+220)
412#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE (V4L2_CID_CODEC_BASE+221)
413enum v4l2_mpeg_video_multi_slice_mode {
414 V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE = 0,
415 V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB = 1,
416 V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES = 2,
417#ifndef __KERNEL__
418
419 V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_MB = 1,
420 V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_BYTES = 2,
421#endif
422};
423#define V4L2_CID_MPEG_VIDEO_VBV_SIZE (V4L2_CID_CODEC_BASE+222)
424#define V4L2_CID_MPEG_VIDEO_DEC_PTS (V4L2_CID_CODEC_BASE+223)
425#define V4L2_CID_MPEG_VIDEO_DEC_FRAME (V4L2_CID_CODEC_BASE+224)
426#define V4L2_CID_MPEG_VIDEO_VBV_DELAY (V4L2_CID_CODEC_BASE+225)
427#define V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER (V4L2_CID_CODEC_BASE+226)
428#define V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE (V4L2_CID_CODEC_BASE+227)
429#define V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (V4L2_CID_CODEC_BASE+228)
430#define V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME (V4L2_CID_CODEC_BASE+229)
431#define V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID (V4L2_CID_CODEC_BASE+230)
432#define V4L2_CID_MPEG_VIDEO_AU_DELIMITER (V4L2_CID_CODEC_BASE+231)
433#define V4L2_CID_MPEG_VIDEO_LTR_COUNT (V4L2_CID_CODEC_BASE+232)
434#define V4L2_CID_MPEG_VIDEO_FRAME_LTR_INDEX (V4L2_CID_CODEC_BASE+233)
435#define V4L2_CID_MPEG_VIDEO_USE_LTR_FRAMES (V4L2_CID_CODEC_BASE+234)
436#define V4L2_CID_MPEG_VIDEO_DEC_CONCEAL_COLOR (V4L2_CID_CODEC_BASE+235)
437
438
439#define V4L2_CID_MPEG_VIDEO_MPEG2_LEVEL (V4L2_CID_CODEC_BASE+270)
440enum v4l2_mpeg_video_mpeg2_level {
441 V4L2_MPEG_VIDEO_MPEG2_LEVEL_LOW = 0,
442 V4L2_MPEG_VIDEO_MPEG2_LEVEL_MAIN = 1,
443 V4L2_MPEG_VIDEO_MPEG2_LEVEL_HIGH_1440 = 2,
444 V4L2_MPEG_VIDEO_MPEG2_LEVEL_HIGH = 3,
445};
446#define V4L2_CID_MPEG_VIDEO_MPEG2_PROFILE (V4L2_CID_CODEC_BASE+271)
447enum v4l2_mpeg_video_mpeg2_profile {
448 V4L2_MPEG_VIDEO_MPEG2_PROFILE_SIMPLE = 0,
449 V4L2_MPEG_VIDEO_MPEG2_PROFILE_MAIN = 1,
450 V4L2_MPEG_VIDEO_MPEG2_PROFILE_SNR_SCALABLE = 2,
451 V4L2_MPEG_VIDEO_MPEG2_PROFILE_SPATIALLY_SCALABLE = 3,
452 V4L2_MPEG_VIDEO_MPEG2_PROFILE_HIGH = 4,
453 V4L2_MPEG_VIDEO_MPEG2_PROFILE_MULTIVIEW = 5,
454};
455
456
457#define V4L2_CID_FWHT_I_FRAME_QP (V4L2_CID_CODEC_BASE + 290)
458#define V4L2_CID_FWHT_P_FRAME_QP (V4L2_CID_CODEC_BASE + 291)
459
460#define V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (V4L2_CID_CODEC_BASE+300)
461#define V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (V4L2_CID_CODEC_BASE+301)
462#define V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP (V4L2_CID_CODEC_BASE+302)
463#define V4L2_CID_MPEG_VIDEO_H263_MIN_QP (V4L2_CID_CODEC_BASE+303)
464#define V4L2_CID_MPEG_VIDEO_H263_MAX_QP (V4L2_CID_CODEC_BASE+304)
465#define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP (V4L2_CID_CODEC_BASE+350)
466#define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP (V4L2_CID_CODEC_BASE+351)
467#define V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP (V4L2_CID_CODEC_BASE+352)
468#define V4L2_CID_MPEG_VIDEO_H264_MIN_QP (V4L2_CID_CODEC_BASE+353)
469#define V4L2_CID_MPEG_VIDEO_H264_MAX_QP (V4L2_CID_CODEC_BASE+354)
470#define V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM (V4L2_CID_CODEC_BASE+355)
471#define V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE (V4L2_CID_CODEC_BASE+356)
472#define V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE (V4L2_CID_CODEC_BASE+357)
473enum v4l2_mpeg_video_h264_entropy_mode {
474 V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC = 0,
475 V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC = 1,
476};
477#define V4L2_CID_MPEG_VIDEO_H264_I_PERIOD (V4L2_CID_CODEC_BASE+358)
478#define V4L2_CID_MPEG_VIDEO_H264_LEVEL (V4L2_CID_CODEC_BASE+359)
479enum v4l2_mpeg_video_h264_level {
480 V4L2_MPEG_VIDEO_H264_LEVEL_1_0 = 0,
481 V4L2_MPEG_VIDEO_H264_LEVEL_1B = 1,
482 V4L2_MPEG_VIDEO_H264_LEVEL_1_1 = 2,
483 V4L2_MPEG_VIDEO_H264_LEVEL_1_2 = 3,
484 V4L2_MPEG_VIDEO_H264_LEVEL_1_3 = 4,
485 V4L2_MPEG_VIDEO_H264_LEVEL_2_0 = 5,
486 V4L2_MPEG_VIDEO_H264_LEVEL_2_1 = 6,
487 V4L2_MPEG_VIDEO_H264_LEVEL_2_2 = 7,
488 V4L2_MPEG_VIDEO_H264_LEVEL_3_0 = 8,
489 V4L2_MPEG_VIDEO_H264_LEVEL_3_1 = 9,
490 V4L2_MPEG_VIDEO_H264_LEVEL_3_2 = 10,
491 V4L2_MPEG_VIDEO_H264_LEVEL_4_0 = 11,
492 V4L2_MPEG_VIDEO_H264_LEVEL_4_1 = 12,
493 V4L2_MPEG_VIDEO_H264_LEVEL_4_2 = 13,
494 V4L2_MPEG_VIDEO_H264_LEVEL_5_0 = 14,
495 V4L2_MPEG_VIDEO_H264_LEVEL_5_1 = 15,
496 V4L2_MPEG_VIDEO_H264_LEVEL_5_2 = 16,
497 V4L2_MPEG_VIDEO_H264_LEVEL_6_0 = 17,
498 V4L2_MPEG_VIDEO_H264_LEVEL_6_1 = 18,
499 V4L2_MPEG_VIDEO_H264_LEVEL_6_2 = 19,
500};
501#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA (V4L2_CID_CODEC_BASE+360)
502#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA (V4L2_CID_CODEC_BASE+361)
503#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE (V4L2_CID_CODEC_BASE+362)
504enum v4l2_mpeg_video_h264_loop_filter_mode {
505 V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED = 0,
506 V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED = 1,
507 V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY = 2,
508};
509#define V4L2_CID_MPEG_VIDEO_H264_PROFILE (V4L2_CID_CODEC_BASE+363)
510enum v4l2_mpeg_video_h264_profile {
511 V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE = 0,
512 V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE = 1,
513 V4L2_MPEG_VIDEO_H264_PROFILE_MAIN = 2,
514 V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED = 3,
515 V4L2_MPEG_VIDEO_H264_PROFILE_HIGH = 4,
516 V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10 = 5,
517 V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422 = 6,
518 V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE = 7,
519 V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10_INTRA = 8,
520 V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422_INTRA = 9,
521 V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_INTRA = 10,
522 V4L2_MPEG_VIDEO_H264_PROFILE_CAVLC_444_INTRA = 11,
523 V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_BASELINE = 12,
524 V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH = 13,
525 V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH_INTRA = 14,
526 V4L2_MPEG_VIDEO_H264_PROFILE_STEREO_HIGH = 15,
527 V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH = 16,
528 V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH = 17,
529};
530#define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT (V4L2_CID_CODEC_BASE+364)
531#define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH (V4L2_CID_CODEC_BASE+365)
532#define V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE (V4L2_CID_CODEC_BASE+366)
533#define V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC (V4L2_CID_CODEC_BASE+367)
534enum v4l2_mpeg_video_h264_vui_sar_idc {
535 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_UNSPECIFIED = 0,
536 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_1x1 = 1,
537 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_12x11 = 2,
538 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_10x11 = 3,
539 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_16x11 = 4,
540 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_40x33 = 5,
541 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_24x11 = 6,
542 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_20x11 = 7,
543 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_32x11 = 8,
544 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_80x33 = 9,
545 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_18x11 = 10,
546 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_15x11 = 11,
547 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_64x33 = 12,
548 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_160x99 = 13,
549 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_4x3 = 14,
550 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_3x2 = 15,
551 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_2x1 = 16,
552 V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_EXTENDED = 17,
553};
554#define V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING (V4L2_CID_CODEC_BASE+368)
555#define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0 (V4L2_CID_CODEC_BASE+369)
556#define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE (V4L2_CID_CODEC_BASE+370)
557enum v4l2_mpeg_video_h264_sei_fp_arrangement_type {
558 V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_CHECKERBOARD = 0,
559 V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_COLUMN = 1,
560 V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_ROW = 2,
561 V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_SIDE_BY_SIDE = 3,
562 V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TOP_BOTTOM = 4,
563 V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TEMPORAL = 5,
564};
565#define V4L2_CID_MPEG_VIDEO_H264_FMO (V4L2_CID_CODEC_BASE+371)
566#define V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE (V4L2_CID_CODEC_BASE+372)
567enum v4l2_mpeg_video_h264_fmo_map_type {
568 V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_INTERLEAVED_SLICES = 0,
569 V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_SCATTERED_SLICES = 1,
570 V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_FOREGROUND_WITH_LEFT_OVER = 2,
571 V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_BOX_OUT = 3,
572 V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_RASTER_SCAN = 4,
573 V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_WIPE_SCAN = 5,
574 V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_EXPLICIT = 6,
575};
576#define V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP (V4L2_CID_CODEC_BASE+373)
577#define V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION (V4L2_CID_CODEC_BASE+374)
578enum v4l2_mpeg_video_h264_fmo_change_dir {
579 V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_RIGHT = 0,
580 V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_LEFT = 1,
581};
582#define V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE (V4L2_CID_CODEC_BASE+375)
583#define V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH (V4L2_CID_CODEC_BASE+376)
584#define V4L2_CID_MPEG_VIDEO_H264_ASO (V4L2_CID_CODEC_BASE+377)
585#define V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER (V4L2_CID_CODEC_BASE+378)
586#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING (V4L2_CID_CODEC_BASE+379)
587#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE (V4L2_CID_CODEC_BASE+380)
588enum v4l2_mpeg_video_h264_hierarchical_coding_type {
589 V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B = 0,
590 V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P = 1,
591};
592#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER (V4L2_CID_CODEC_BASE+381)
593#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP (V4L2_CID_CODEC_BASE+382)
594#define V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION (V4L2_CID_CODEC_BASE+383)
595#define V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET (V4L2_CID_CODEC_BASE+384)
596#define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP (V4L2_CID_CODEC_BASE+385)
597#define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP (V4L2_CID_CODEC_BASE+386)
598#define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP (V4L2_CID_CODEC_BASE+387)
599#define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP (V4L2_CID_CODEC_BASE+388)
600#define V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MIN_QP (V4L2_CID_CODEC_BASE+389)
601#define V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MAX_QP (V4L2_CID_CODEC_BASE+390)
602#define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L0_BR (V4L2_CID_CODEC_BASE+391)
603#define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L1_BR (V4L2_CID_CODEC_BASE+392)
604#define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L2_BR (V4L2_CID_CODEC_BASE+393)
605#define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L3_BR (V4L2_CID_CODEC_BASE+394)
606#define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L4_BR (V4L2_CID_CODEC_BASE+395)
607#define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L5_BR (V4L2_CID_CODEC_BASE+396)
608#define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L6_BR (V4L2_CID_CODEC_BASE+397)
609#define V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP (V4L2_CID_CODEC_BASE+400)
610#define V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP (V4L2_CID_CODEC_BASE+401)
611#define V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP (V4L2_CID_CODEC_BASE+402)
612#define V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP (V4L2_CID_CODEC_BASE+403)
613#define V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP (V4L2_CID_CODEC_BASE+404)
614#define V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL (V4L2_CID_CODEC_BASE+405)
615enum v4l2_mpeg_video_mpeg4_level {
616 V4L2_MPEG_VIDEO_MPEG4_LEVEL_0 = 0,
617 V4L2_MPEG_VIDEO_MPEG4_LEVEL_0B = 1,
618 V4L2_MPEG_VIDEO_MPEG4_LEVEL_1 = 2,
619 V4L2_MPEG_VIDEO_MPEG4_LEVEL_2 = 3,
620 V4L2_MPEG_VIDEO_MPEG4_LEVEL_3 = 4,
621 V4L2_MPEG_VIDEO_MPEG4_LEVEL_3B = 5,
622 V4L2_MPEG_VIDEO_MPEG4_LEVEL_4 = 6,
623 V4L2_MPEG_VIDEO_MPEG4_LEVEL_5 = 7,
624};
625#define V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE (V4L2_CID_CODEC_BASE+406)
626enum v4l2_mpeg_video_mpeg4_profile {
627 V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE = 0,
628 V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_SIMPLE = 1,
629 V4L2_MPEG_VIDEO_MPEG4_PROFILE_CORE = 2,
630 V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE_SCALABLE = 3,
631 V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY = 4,
632};
633#define V4L2_CID_MPEG_VIDEO_MPEG4_QPEL (V4L2_CID_CODEC_BASE+407)
634
635
636
637
638
639#define V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS (V4L2_CID_CODEC_BASE+500)
640enum v4l2_vp8_num_partitions {
641 V4L2_CID_MPEG_VIDEO_VPX_1_PARTITION = 0,
642 V4L2_CID_MPEG_VIDEO_VPX_2_PARTITIONS = 1,
643 V4L2_CID_MPEG_VIDEO_VPX_4_PARTITIONS = 2,
644 V4L2_CID_MPEG_VIDEO_VPX_8_PARTITIONS = 3,
645};
646#define V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4 (V4L2_CID_CODEC_BASE+501)
647#define V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES (V4L2_CID_CODEC_BASE+502)
648enum v4l2_vp8_num_ref_frames {
649 V4L2_CID_MPEG_VIDEO_VPX_1_REF_FRAME = 0,
650 V4L2_CID_MPEG_VIDEO_VPX_2_REF_FRAME = 1,
651 V4L2_CID_MPEG_VIDEO_VPX_3_REF_FRAME = 2,
652};
653#define V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL (V4L2_CID_CODEC_BASE+503)
654#define V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS (V4L2_CID_CODEC_BASE+504)
655#define V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD (V4L2_CID_CODEC_BASE+505)
656#define V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL (V4L2_CID_CODEC_BASE+506)
657enum v4l2_vp8_golden_frame_sel {
658 V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_PREV = 0,
659 V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_REF_PERIOD = 1,
660};
661#define V4L2_CID_MPEG_VIDEO_VPX_MIN_QP (V4L2_CID_CODEC_BASE+507)
662#define V4L2_CID_MPEG_VIDEO_VPX_MAX_QP (V4L2_CID_CODEC_BASE+508)
663#define V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP (V4L2_CID_CODEC_BASE+509)
664#define V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (V4L2_CID_CODEC_BASE+510)
665
666#define V4L2_CID_MPEG_VIDEO_VP8_PROFILE (V4L2_CID_CODEC_BASE+511)
667enum v4l2_mpeg_video_vp8_profile {
668 V4L2_MPEG_VIDEO_VP8_PROFILE_0 = 0,
669 V4L2_MPEG_VIDEO_VP8_PROFILE_1 = 1,
670 V4L2_MPEG_VIDEO_VP8_PROFILE_2 = 2,
671 V4L2_MPEG_VIDEO_VP8_PROFILE_3 = 3,
672};
673
674#define V4L2_CID_MPEG_VIDEO_VPX_PROFILE V4L2_CID_MPEG_VIDEO_VP8_PROFILE
675#define V4L2_CID_MPEG_VIDEO_VP9_PROFILE (V4L2_CID_CODEC_BASE+512)
676enum v4l2_mpeg_video_vp9_profile {
677 V4L2_MPEG_VIDEO_VP9_PROFILE_0 = 0,
678 V4L2_MPEG_VIDEO_VP9_PROFILE_1 = 1,
679 V4L2_MPEG_VIDEO_VP9_PROFILE_2 = 2,
680 V4L2_MPEG_VIDEO_VP9_PROFILE_3 = 3,
681};
682#define V4L2_CID_MPEG_VIDEO_VP9_LEVEL (V4L2_CID_CODEC_BASE+513)
683enum v4l2_mpeg_video_vp9_level {
684 V4L2_MPEG_VIDEO_VP9_LEVEL_1_0 = 0,
685 V4L2_MPEG_VIDEO_VP9_LEVEL_1_1 = 1,
686 V4L2_MPEG_VIDEO_VP9_LEVEL_2_0 = 2,
687 V4L2_MPEG_VIDEO_VP9_LEVEL_2_1 = 3,
688 V4L2_MPEG_VIDEO_VP9_LEVEL_3_0 = 4,
689 V4L2_MPEG_VIDEO_VP9_LEVEL_3_1 = 5,
690 V4L2_MPEG_VIDEO_VP9_LEVEL_4_0 = 6,
691 V4L2_MPEG_VIDEO_VP9_LEVEL_4_1 = 7,
692 V4L2_MPEG_VIDEO_VP9_LEVEL_5_0 = 8,
693 V4L2_MPEG_VIDEO_VP9_LEVEL_5_1 = 9,
694 V4L2_MPEG_VIDEO_VP9_LEVEL_5_2 = 10,
695 V4L2_MPEG_VIDEO_VP9_LEVEL_6_0 = 11,
696 V4L2_MPEG_VIDEO_VP9_LEVEL_6_1 = 12,
697 V4L2_MPEG_VIDEO_VP9_LEVEL_6_2 = 13,
698};
699
700
701
702#define V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP (V4L2_CID_CODEC_BASE + 600)
703#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP (V4L2_CID_CODEC_BASE + 601)
704#define V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP (V4L2_CID_CODEC_BASE + 602)
705#define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP (V4L2_CID_CODEC_BASE + 603)
706#define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP (V4L2_CID_CODEC_BASE + 604)
707#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP (V4L2_CID_CODEC_BASE + 605)
708#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE (V4L2_CID_CODEC_BASE + 606)
709enum v4l2_mpeg_video_hevc_hier_coding_type {
710 V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B = 0,
711 V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P = 1,
712};
713#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER (V4L2_CID_CODEC_BASE + 607)
714#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP (V4L2_CID_CODEC_BASE + 608)
715#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP (V4L2_CID_CODEC_BASE + 609)
716#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP (V4L2_CID_CODEC_BASE + 610)
717#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP (V4L2_CID_CODEC_BASE + 611)
718#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP (V4L2_CID_CODEC_BASE + 612)
719#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP (V4L2_CID_CODEC_BASE + 613)
720#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP (V4L2_CID_CODEC_BASE + 614)
721#define V4L2_CID_MPEG_VIDEO_HEVC_PROFILE (V4L2_CID_CODEC_BASE + 615)
722enum v4l2_mpeg_video_hevc_profile {
723 V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN = 0,
724 V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE = 1,
725 V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10 = 2,
726};
727#define V4L2_CID_MPEG_VIDEO_HEVC_LEVEL (V4L2_CID_CODEC_BASE + 616)
728enum v4l2_mpeg_video_hevc_level {
729 V4L2_MPEG_VIDEO_HEVC_LEVEL_1 = 0,
730 V4L2_MPEG_VIDEO_HEVC_LEVEL_2 = 1,
731 V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1 = 2,
732 V4L2_MPEG_VIDEO_HEVC_LEVEL_3 = 3,
733 V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1 = 4,
734 V4L2_MPEG_VIDEO_HEVC_LEVEL_4 = 5,
735 V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1 = 6,
736 V4L2_MPEG_VIDEO_HEVC_LEVEL_5 = 7,
737 V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1 = 8,
738 V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2 = 9,
739 V4L2_MPEG_VIDEO_HEVC_LEVEL_6 = 10,
740 V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1 = 11,
741 V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2 = 12,
742};
743#define V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION (V4L2_CID_CODEC_BASE + 617)
744#define V4L2_CID_MPEG_VIDEO_HEVC_TIER (V4L2_CID_CODEC_BASE + 618)
745enum v4l2_mpeg_video_hevc_tier {
746 V4L2_MPEG_VIDEO_HEVC_TIER_MAIN = 0,
747 V4L2_MPEG_VIDEO_HEVC_TIER_HIGH = 1,
748};
749#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH (V4L2_CID_CODEC_BASE + 619)
750#define V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE (V4L2_CID_CODEC_BASE + 620)
751enum v4l2_cid_mpeg_video_hevc_loop_filter_mode {
752 V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED = 0,
753 V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_ENABLED = 1,
754 V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY = 2,
755};
756#define V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2 (V4L2_CID_CODEC_BASE + 621)
757#define V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2 (V4L2_CID_CODEC_BASE + 622)
758#define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE (V4L2_CID_CODEC_BASE + 623)
759enum v4l2_cid_mpeg_video_hevc_refresh_type {
760 V4L2_MPEG_VIDEO_HEVC_REFRESH_NONE = 0,
761 V4L2_MPEG_VIDEO_HEVC_REFRESH_CRA = 1,
762 V4L2_MPEG_VIDEO_HEVC_REFRESH_IDR = 2,
763};
764#define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD (V4L2_CID_CODEC_BASE + 624)
765#define V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU (V4L2_CID_CODEC_BASE + 625)
766#define V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED (V4L2_CID_CODEC_BASE + 626)
767#define V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT (V4L2_CID_CODEC_BASE + 627)
768#define V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB (V4L2_CID_CODEC_BASE + 628)
769#define V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID (V4L2_CID_CODEC_BASE + 629)
770#define V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING (V4L2_CID_CODEC_BASE + 630)
771#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1 (V4L2_CID_CODEC_BASE + 631)
772#define V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT (V4L2_CID_CODEC_BASE + 632)
773#define V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION (V4L2_CID_CODEC_BASE + 633)
774#define V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE (V4L2_CID_CODEC_BASE + 634)
775#define V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD (V4L2_CID_CODEC_BASE + 635)
776enum v4l2_cid_mpeg_video_hevc_size_of_length_field {
777 V4L2_MPEG_VIDEO_HEVC_SIZE_0 = 0,
778 V4L2_MPEG_VIDEO_HEVC_SIZE_1 = 1,
779 V4L2_MPEG_VIDEO_HEVC_SIZE_2 = 2,
780 V4L2_MPEG_VIDEO_HEVC_SIZE_4 = 3,
781};
782#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR (V4L2_CID_CODEC_BASE + 636)
783#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR (V4L2_CID_CODEC_BASE + 637)
784#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR (V4L2_CID_CODEC_BASE + 638)
785#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR (V4L2_CID_CODEC_BASE + 639)
786#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR (V4L2_CID_CODEC_BASE + 640)
787#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR (V4L2_CID_CODEC_BASE + 641)
788#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR (V4L2_CID_CODEC_BASE + 642)
789#define V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES (V4L2_CID_CODEC_BASE + 643)
790#define V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR (V4L2_CID_CODEC_BASE + 644)
791#define V4L2_CID_MPEG_VIDEO_CONSTANT_QUALITY (V4L2_CID_CODEC_BASE + 645)
792#define V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE (V4L2_CID_CODEC_BASE + 646)
793enum v4l2_mpeg_video_frame_skip_mode {
794 V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED = 0,
795 V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_LEVEL_LIMIT = 1,
796 V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT = 2,
797};
798
799#define V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MIN_QP (V4L2_CID_CODEC_BASE + 647)
800#define V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MAX_QP (V4L2_CID_CODEC_BASE + 648)
801#define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MIN_QP (V4L2_CID_CODEC_BASE + 649)
802#define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MAX_QP (V4L2_CID_CODEC_BASE + 650)
803#define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MIN_QP (V4L2_CID_CODEC_BASE + 651)
804#define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MAX_QP (V4L2_CID_CODEC_BASE + 652)
805
806#define V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY (V4L2_CID_CODEC_BASE + 653)
807#define V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE (V4L2_CID_CODEC_BASE + 654)
808
809
810#define V4L2_CID_CODEC_CX2341X_BASE (V4L2_CTRL_CLASS_CODEC | 0x1000)
811#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_CODEC_CX2341X_BASE+0)
812enum v4l2_mpeg_cx2341x_video_spatial_filter_mode {
813 V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_MANUAL = 0,
814 V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_AUTO = 1,
815};
816#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER (V4L2_CID_CODEC_CX2341X_BASE+1)
817#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE (V4L2_CID_CODEC_CX2341X_BASE+2)
818enum v4l2_mpeg_cx2341x_video_luma_spatial_filter_type {
819 V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_OFF = 0,
820 V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_HOR = 1,
821 V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_VERT = 2,
822 V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_HV_SEPARABLE = 3,
823 V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_SYM_NON_SEPARABLE = 4,
824};
825#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE (V4L2_CID_CODEC_CX2341X_BASE+3)
826enum v4l2_mpeg_cx2341x_video_chroma_spatial_filter_type {
827 V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_OFF = 0,
828 V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_1D_HOR = 1,
829};
830#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE (V4L2_CID_CODEC_CX2341X_BASE+4)
831enum v4l2_mpeg_cx2341x_video_temporal_filter_mode {
832 V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_MANUAL = 0,
833 V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_AUTO = 1,
834};
835#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER (V4L2_CID_CODEC_CX2341X_BASE+5)
836#define V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE (V4L2_CID_CODEC_CX2341X_BASE+6)
837enum v4l2_mpeg_cx2341x_video_median_filter_type {
838 V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_OFF = 0,
839 V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR = 1,
840 V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_VERT = 2,
841 V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR_VERT = 3,
842 V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_DIAG = 4,
843};
844#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_CODEC_CX2341X_BASE+7)
845#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP (V4L2_CID_CODEC_CX2341X_BASE+8)
846#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_CODEC_CX2341X_BASE+9)
847#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP (V4L2_CID_CODEC_CX2341X_BASE+10)
848#define V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS (V4L2_CID_CODEC_CX2341X_BASE+11)
849
850
851#define V4L2_CID_CODEC_MFC51_BASE (V4L2_CTRL_CLASS_CODEC | 0x1100)
852
853#define V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY (V4L2_CID_CODEC_MFC51_BASE+0)
854#define V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE (V4L2_CID_CODEC_MFC51_BASE+1)
855#define V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE (V4L2_CID_CODEC_MFC51_BASE+2)
856enum v4l2_mpeg_mfc51_video_frame_skip_mode {
857 V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_DISABLED = 0,
858 V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_LEVEL_LIMIT = 1,
859 V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT = 2,
860};
861#define V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE (V4L2_CID_CODEC_MFC51_BASE+3)
862enum v4l2_mpeg_mfc51_video_force_frame_type {
863 V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_DISABLED = 0,
864 V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_I_FRAME = 1,
865 V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_NOT_CODED = 2,
866};
867#define V4L2_CID_MPEG_MFC51_VIDEO_PADDING (V4L2_CID_CODEC_MFC51_BASE+4)
868#define V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV (V4L2_CID_CODEC_MFC51_BASE+5)
869#define V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT (V4L2_CID_CODEC_MFC51_BASE+6)
870#define V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF (V4L2_CID_CODEC_MFC51_BASE+7)
871#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY (V4L2_CID_CODEC_MFC51_BASE+50)
872#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK (V4L2_CID_CODEC_MFC51_BASE+51)
873#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH (V4L2_CID_CODEC_MFC51_BASE+52)
874#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC (V4L2_CID_CODEC_MFC51_BASE+53)
875#define V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P (V4L2_CID_CODEC_MFC51_BASE+54)
876
877
878
879#define V4L2_CID_CAMERA_CLASS_BASE (V4L2_CTRL_CLASS_CAMERA | 0x900)
880#define V4L2_CID_CAMERA_CLASS (V4L2_CTRL_CLASS_CAMERA | 1)
881
882#define V4L2_CID_EXPOSURE_AUTO (V4L2_CID_CAMERA_CLASS_BASE+1)
883enum v4l2_exposure_auto_type {
884 V4L2_EXPOSURE_AUTO = 0,
885 V4L2_EXPOSURE_MANUAL = 1,
886 V4L2_EXPOSURE_SHUTTER_PRIORITY = 2,
887 V4L2_EXPOSURE_APERTURE_PRIORITY = 3
888};
889#define V4L2_CID_EXPOSURE_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+2)
890#define V4L2_CID_EXPOSURE_AUTO_PRIORITY (V4L2_CID_CAMERA_CLASS_BASE+3)
891
892#define V4L2_CID_PAN_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+4)
893#define V4L2_CID_TILT_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+5)
894#define V4L2_CID_PAN_RESET (V4L2_CID_CAMERA_CLASS_BASE+6)
895#define V4L2_CID_TILT_RESET (V4L2_CID_CAMERA_CLASS_BASE+7)
896
897#define V4L2_CID_PAN_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+8)
898#define V4L2_CID_TILT_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+9)
899
900#define V4L2_CID_FOCUS_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+10)
901#define V4L2_CID_FOCUS_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+11)
902#define V4L2_CID_FOCUS_AUTO (V4L2_CID_CAMERA_CLASS_BASE+12)
903
904#define V4L2_CID_ZOOM_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+13)
905#define V4L2_CID_ZOOM_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+14)
906#define V4L2_CID_ZOOM_CONTINUOUS (V4L2_CID_CAMERA_CLASS_BASE+15)
907
908#define V4L2_CID_PRIVACY (V4L2_CID_CAMERA_CLASS_BASE+16)
909
910#define V4L2_CID_IRIS_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+17)
911#define V4L2_CID_IRIS_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+18)
912
913#define V4L2_CID_AUTO_EXPOSURE_BIAS (V4L2_CID_CAMERA_CLASS_BASE+19)
914
915#define V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE (V4L2_CID_CAMERA_CLASS_BASE+20)
916enum v4l2_auto_n_preset_white_balance {
917 V4L2_WHITE_BALANCE_MANUAL = 0,
918 V4L2_WHITE_BALANCE_AUTO = 1,
919 V4L2_WHITE_BALANCE_INCANDESCENT = 2,
920 V4L2_WHITE_BALANCE_FLUORESCENT = 3,
921 V4L2_WHITE_BALANCE_FLUORESCENT_H = 4,
922 V4L2_WHITE_BALANCE_HORIZON = 5,
923 V4L2_WHITE_BALANCE_DAYLIGHT = 6,
924 V4L2_WHITE_BALANCE_FLASH = 7,
925 V4L2_WHITE_BALANCE_CLOUDY = 8,
926 V4L2_WHITE_BALANCE_SHADE = 9,
927};
928
929#define V4L2_CID_WIDE_DYNAMIC_RANGE (V4L2_CID_CAMERA_CLASS_BASE+21)
930#define V4L2_CID_IMAGE_STABILIZATION (V4L2_CID_CAMERA_CLASS_BASE+22)
931
932#define V4L2_CID_ISO_SENSITIVITY (V4L2_CID_CAMERA_CLASS_BASE+23)
933#define V4L2_CID_ISO_SENSITIVITY_AUTO (V4L2_CID_CAMERA_CLASS_BASE+24)
934enum v4l2_iso_sensitivity_auto_type {
935 V4L2_ISO_SENSITIVITY_MANUAL = 0,
936 V4L2_ISO_SENSITIVITY_AUTO = 1,
937};
938
939#define V4L2_CID_EXPOSURE_METERING (V4L2_CID_CAMERA_CLASS_BASE+25)
940enum v4l2_exposure_metering {
941 V4L2_EXPOSURE_METERING_AVERAGE = 0,
942 V4L2_EXPOSURE_METERING_CENTER_WEIGHTED = 1,
943 V4L2_EXPOSURE_METERING_SPOT = 2,
944 V4L2_EXPOSURE_METERING_MATRIX = 3,
945};
946
947#define V4L2_CID_SCENE_MODE (V4L2_CID_CAMERA_CLASS_BASE+26)
948enum v4l2_scene_mode {
949 V4L2_SCENE_MODE_NONE = 0,
950 V4L2_SCENE_MODE_BACKLIGHT = 1,
951 V4L2_SCENE_MODE_BEACH_SNOW = 2,
952 V4L2_SCENE_MODE_CANDLE_LIGHT = 3,
953 V4L2_SCENE_MODE_DAWN_DUSK = 4,
954 V4L2_SCENE_MODE_FALL_COLORS = 5,
955 V4L2_SCENE_MODE_FIREWORKS = 6,
956 V4L2_SCENE_MODE_LANDSCAPE = 7,
957 V4L2_SCENE_MODE_NIGHT = 8,
958 V4L2_SCENE_MODE_PARTY_INDOOR = 9,
959 V4L2_SCENE_MODE_PORTRAIT = 10,
960 V4L2_SCENE_MODE_SPORTS = 11,
961 V4L2_SCENE_MODE_SUNSET = 12,
962 V4L2_SCENE_MODE_TEXT = 13,
963};
964
965#define V4L2_CID_3A_LOCK (V4L2_CID_CAMERA_CLASS_BASE+27)
966#define V4L2_LOCK_EXPOSURE (1 << 0)
967#define V4L2_LOCK_WHITE_BALANCE (1 << 1)
968#define V4L2_LOCK_FOCUS (1 << 2)
969
970#define V4L2_CID_AUTO_FOCUS_START (V4L2_CID_CAMERA_CLASS_BASE+28)
971#define V4L2_CID_AUTO_FOCUS_STOP (V4L2_CID_CAMERA_CLASS_BASE+29)
972#define V4L2_CID_AUTO_FOCUS_STATUS (V4L2_CID_CAMERA_CLASS_BASE+30)
973#define V4L2_AUTO_FOCUS_STATUS_IDLE (0 << 0)
974#define V4L2_AUTO_FOCUS_STATUS_BUSY (1 << 0)
975#define V4L2_AUTO_FOCUS_STATUS_REACHED (1 << 1)
976#define V4L2_AUTO_FOCUS_STATUS_FAILED (1 << 2)
977
978#define V4L2_CID_AUTO_FOCUS_RANGE (V4L2_CID_CAMERA_CLASS_BASE+31)
979enum v4l2_auto_focus_range {
980 V4L2_AUTO_FOCUS_RANGE_AUTO = 0,
981 V4L2_AUTO_FOCUS_RANGE_NORMAL = 1,
982 V4L2_AUTO_FOCUS_RANGE_MACRO = 2,
983 V4L2_AUTO_FOCUS_RANGE_INFINITY = 3,
984};
985
986#define V4L2_CID_PAN_SPEED (V4L2_CID_CAMERA_CLASS_BASE+32)
987#define V4L2_CID_TILT_SPEED (V4L2_CID_CAMERA_CLASS_BASE+33)
988
989#define V4L2_CID_CAMERA_ORIENTATION (V4L2_CID_CAMERA_CLASS_BASE+34)
990#define V4L2_CAMERA_ORIENTATION_FRONT 0
991#define V4L2_CAMERA_ORIENTATION_BACK 1
992#define V4L2_CAMERA_ORIENTATION_EXTERNAL 2
993
994#define V4L2_CID_CAMERA_SENSOR_ROTATION (V4L2_CID_CAMERA_CLASS_BASE+35)
995
996
997
998#define V4L2_CID_FM_TX_CLASS_BASE (V4L2_CTRL_CLASS_FM_TX | 0x900)
999#define V4L2_CID_FM_TX_CLASS (V4L2_CTRL_CLASS_FM_TX | 1)
1000
1001#define V4L2_CID_RDS_TX_DEVIATION (V4L2_CID_FM_TX_CLASS_BASE + 1)
1002#define V4L2_CID_RDS_TX_PI (V4L2_CID_FM_TX_CLASS_BASE + 2)
1003#define V4L2_CID_RDS_TX_PTY (V4L2_CID_FM_TX_CLASS_BASE + 3)
1004#define V4L2_CID_RDS_TX_PS_NAME (V4L2_CID_FM_TX_CLASS_BASE + 5)
1005#define V4L2_CID_RDS_TX_RADIO_TEXT (V4L2_CID_FM_TX_CLASS_BASE + 6)
1006#define V4L2_CID_RDS_TX_MONO_STEREO (V4L2_CID_FM_TX_CLASS_BASE + 7)
1007#define V4L2_CID_RDS_TX_ARTIFICIAL_HEAD (V4L2_CID_FM_TX_CLASS_BASE + 8)
1008#define V4L2_CID_RDS_TX_COMPRESSED (V4L2_CID_FM_TX_CLASS_BASE + 9)
1009#define V4L2_CID_RDS_TX_DYNAMIC_PTY (V4L2_CID_FM_TX_CLASS_BASE + 10)
1010#define V4L2_CID_RDS_TX_TRAFFIC_ANNOUNCEMENT (V4L2_CID_FM_TX_CLASS_BASE + 11)
1011#define V4L2_CID_RDS_TX_TRAFFIC_PROGRAM (V4L2_CID_FM_TX_CLASS_BASE + 12)
1012#define V4L2_CID_RDS_TX_MUSIC_SPEECH (V4L2_CID_FM_TX_CLASS_BASE + 13)
1013#define V4L2_CID_RDS_TX_ALT_FREQS_ENABLE (V4L2_CID_FM_TX_CLASS_BASE + 14)
1014#define V4L2_CID_RDS_TX_ALT_FREQS (V4L2_CID_FM_TX_CLASS_BASE + 15)
1015
1016#define V4L2_CID_AUDIO_LIMITER_ENABLED (V4L2_CID_FM_TX_CLASS_BASE + 64)
1017#define V4L2_CID_AUDIO_LIMITER_RELEASE_TIME (V4L2_CID_FM_TX_CLASS_BASE + 65)
1018#define V4L2_CID_AUDIO_LIMITER_DEVIATION (V4L2_CID_FM_TX_CLASS_BASE + 66)
1019
1020#define V4L2_CID_AUDIO_COMPRESSION_ENABLED (V4L2_CID_FM_TX_CLASS_BASE + 80)
1021#define V4L2_CID_AUDIO_COMPRESSION_GAIN (V4L2_CID_FM_TX_CLASS_BASE + 81)
1022#define V4L2_CID_AUDIO_COMPRESSION_THRESHOLD (V4L2_CID_FM_TX_CLASS_BASE + 82)
1023#define V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME (V4L2_CID_FM_TX_CLASS_BASE + 83)
1024#define V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME (V4L2_CID_FM_TX_CLASS_BASE + 84)
1025
1026#define V4L2_CID_PILOT_TONE_ENABLED (V4L2_CID_FM_TX_CLASS_BASE + 96)
1027#define V4L2_CID_PILOT_TONE_DEVIATION (V4L2_CID_FM_TX_CLASS_BASE + 97)
1028#define V4L2_CID_PILOT_TONE_FREQUENCY (V4L2_CID_FM_TX_CLASS_BASE + 98)
1029
1030#define V4L2_CID_TUNE_PREEMPHASIS (V4L2_CID_FM_TX_CLASS_BASE + 112)
1031enum v4l2_preemphasis {
1032 V4L2_PREEMPHASIS_DISABLED = 0,
1033 V4L2_PREEMPHASIS_50_uS = 1,
1034 V4L2_PREEMPHASIS_75_uS = 2,
1035};
1036#define V4L2_CID_TUNE_POWER_LEVEL (V4L2_CID_FM_TX_CLASS_BASE + 113)
1037#define V4L2_CID_TUNE_ANTENNA_CAPACITOR (V4L2_CID_FM_TX_CLASS_BASE + 114)
1038
1039
1040
1041
1042#define V4L2_CID_FLASH_CLASS_BASE (V4L2_CTRL_CLASS_FLASH | 0x900)
1043#define V4L2_CID_FLASH_CLASS (V4L2_CTRL_CLASS_FLASH | 1)
1044
1045#define V4L2_CID_FLASH_LED_MODE (V4L2_CID_FLASH_CLASS_BASE + 1)
1046enum v4l2_flash_led_mode {
1047 V4L2_FLASH_LED_MODE_NONE,
1048 V4L2_FLASH_LED_MODE_FLASH,
1049 V4L2_FLASH_LED_MODE_TORCH,
1050};
1051
1052#define V4L2_CID_FLASH_STROBE_SOURCE (V4L2_CID_FLASH_CLASS_BASE + 2)
1053enum v4l2_flash_strobe_source {
1054 V4L2_FLASH_STROBE_SOURCE_SOFTWARE,
1055 V4L2_FLASH_STROBE_SOURCE_EXTERNAL,
1056};
1057
1058#define V4L2_CID_FLASH_STROBE (V4L2_CID_FLASH_CLASS_BASE + 3)
1059#define V4L2_CID_FLASH_STROBE_STOP (V4L2_CID_FLASH_CLASS_BASE + 4)
1060#define V4L2_CID_FLASH_STROBE_STATUS (V4L2_CID_FLASH_CLASS_BASE + 5)
1061
1062#define V4L2_CID_FLASH_TIMEOUT (V4L2_CID_FLASH_CLASS_BASE + 6)
1063#define V4L2_CID_FLASH_INTENSITY (V4L2_CID_FLASH_CLASS_BASE + 7)
1064#define V4L2_CID_FLASH_TORCH_INTENSITY (V4L2_CID_FLASH_CLASS_BASE + 8)
1065#define V4L2_CID_FLASH_INDICATOR_INTENSITY (V4L2_CID_FLASH_CLASS_BASE + 9)
1066
1067#define V4L2_CID_FLASH_FAULT (V4L2_CID_FLASH_CLASS_BASE + 10)
1068#define V4L2_FLASH_FAULT_OVER_VOLTAGE (1 << 0)
1069#define V4L2_FLASH_FAULT_TIMEOUT (1 << 1)
1070#define V4L2_FLASH_FAULT_OVER_TEMPERATURE (1 << 2)
1071#define V4L2_FLASH_FAULT_SHORT_CIRCUIT (1 << 3)
1072#define V4L2_FLASH_FAULT_OVER_CURRENT (1 << 4)
1073#define V4L2_FLASH_FAULT_INDICATOR (1 << 5)
1074#define V4L2_FLASH_FAULT_UNDER_VOLTAGE (1 << 6)
1075#define V4L2_FLASH_FAULT_INPUT_VOLTAGE (1 << 7)
1076#define V4L2_FLASH_FAULT_LED_OVER_TEMPERATURE (1 << 8)
1077
1078#define V4L2_CID_FLASH_CHARGE (V4L2_CID_FLASH_CLASS_BASE + 11)
1079#define V4L2_CID_FLASH_READY (V4L2_CID_FLASH_CLASS_BASE + 12)
1080
1081
1082
1083
1084#define V4L2_CID_JPEG_CLASS_BASE (V4L2_CTRL_CLASS_JPEG | 0x900)
1085#define V4L2_CID_JPEG_CLASS (V4L2_CTRL_CLASS_JPEG | 1)
1086
1087#define V4L2_CID_JPEG_CHROMA_SUBSAMPLING (V4L2_CID_JPEG_CLASS_BASE + 1)
1088enum v4l2_jpeg_chroma_subsampling {
1089 V4L2_JPEG_CHROMA_SUBSAMPLING_444 = 0,
1090 V4L2_JPEG_CHROMA_SUBSAMPLING_422 = 1,
1091 V4L2_JPEG_CHROMA_SUBSAMPLING_420 = 2,
1092 V4L2_JPEG_CHROMA_SUBSAMPLING_411 = 3,
1093 V4L2_JPEG_CHROMA_SUBSAMPLING_410 = 4,
1094 V4L2_JPEG_CHROMA_SUBSAMPLING_GRAY = 5,
1095};
1096#define V4L2_CID_JPEG_RESTART_INTERVAL (V4L2_CID_JPEG_CLASS_BASE + 2)
1097#define V4L2_CID_JPEG_COMPRESSION_QUALITY (V4L2_CID_JPEG_CLASS_BASE + 3)
1098
1099#define V4L2_CID_JPEG_ACTIVE_MARKER (V4L2_CID_JPEG_CLASS_BASE + 4)
1100#define V4L2_JPEG_ACTIVE_MARKER_APP0 (1 << 0)
1101#define V4L2_JPEG_ACTIVE_MARKER_APP1 (1 << 1)
1102#define V4L2_JPEG_ACTIVE_MARKER_COM (1 << 16)
1103#define V4L2_JPEG_ACTIVE_MARKER_DQT (1 << 17)
1104#define V4L2_JPEG_ACTIVE_MARKER_DHT (1 << 18)
1105
1106
1107
1108#define V4L2_CID_IMAGE_SOURCE_CLASS_BASE (V4L2_CTRL_CLASS_IMAGE_SOURCE | 0x900)
1109#define V4L2_CID_IMAGE_SOURCE_CLASS (V4L2_CTRL_CLASS_IMAGE_SOURCE | 1)
1110
1111#define V4L2_CID_VBLANK (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 1)
1112#define V4L2_CID_HBLANK (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 2)
1113#define V4L2_CID_ANALOGUE_GAIN (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 3)
1114#define V4L2_CID_TEST_PATTERN_RED (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 4)
1115#define V4L2_CID_TEST_PATTERN_GREENR (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 5)
1116#define V4L2_CID_TEST_PATTERN_BLUE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 6)
1117#define V4L2_CID_TEST_PATTERN_GREENB (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 7)
1118#define V4L2_CID_UNIT_CELL_SIZE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 8)
1119
1120
1121
1122
1123#define V4L2_CID_IMAGE_PROC_CLASS_BASE (V4L2_CTRL_CLASS_IMAGE_PROC | 0x900)
1124#define V4L2_CID_IMAGE_PROC_CLASS (V4L2_CTRL_CLASS_IMAGE_PROC | 1)
1125
1126#define V4L2_CID_LINK_FREQ (V4L2_CID_IMAGE_PROC_CLASS_BASE + 1)
1127#define V4L2_CID_PIXEL_RATE (V4L2_CID_IMAGE_PROC_CLASS_BASE + 2)
1128#define V4L2_CID_TEST_PATTERN (V4L2_CID_IMAGE_PROC_CLASS_BASE + 3)
1129#define V4L2_CID_DEINTERLACING_MODE (V4L2_CID_IMAGE_PROC_CLASS_BASE + 4)
1130#define V4L2_CID_DIGITAL_GAIN (V4L2_CID_IMAGE_PROC_CLASS_BASE + 5)
1131
1132
1133#define V4L2_CID_DV_CLASS_BASE (V4L2_CTRL_CLASS_DV | 0x900)
1134#define V4L2_CID_DV_CLASS (V4L2_CTRL_CLASS_DV | 1)
1135
1136#define V4L2_CID_DV_TX_HOTPLUG (V4L2_CID_DV_CLASS_BASE + 1)
1137#define V4L2_CID_DV_TX_RXSENSE (V4L2_CID_DV_CLASS_BASE + 2)
1138#define V4L2_CID_DV_TX_EDID_PRESENT (V4L2_CID_DV_CLASS_BASE + 3)
1139#define V4L2_CID_DV_TX_MODE (V4L2_CID_DV_CLASS_BASE + 4)
1140enum v4l2_dv_tx_mode {
1141 V4L2_DV_TX_MODE_DVI_D = 0,
1142 V4L2_DV_TX_MODE_HDMI = 1,
1143};
1144#define V4L2_CID_DV_TX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 5)
1145enum v4l2_dv_rgb_range {
1146 V4L2_DV_RGB_RANGE_AUTO = 0,
1147 V4L2_DV_RGB_RANGE_LIMITED = 1,
1148 V4L2_DV_RGB_RANGE_FULL = 2,
1149};
1150
1151#define V4L2_CID_DV_TX_IT_CONTENT_TYPE (V4L2_CID_DV_CLASS_BASE + 6)
1152enum v4l2_dv_it_content_type {
1153 V4L2_DV_IT_CONTENT_TYPE_GRAPHICS = 0,
1154 V4L2_DV_IT_CONTENT_TYPE_PHOTO = 1,
1155 V4L2_DV_IT_CONTENT_TYPE_CINEMA = 2,
1156 V4L2_DV_IT_CONTENT_TYPE_GAME = 3,
1157 V4L2_DV_IT_CONTENT_TYPE_NO_ITC = 4,
1158};
1159
1160#define V4L2_CID_DV_RX_POWER_PRESENT (V4L2_CID_DV_CLASS_BASE + 100)
1161#define V4L2_CID_DV_RX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 101)
1162#define V4L2_CID_DV_RX_IT_CONTENT_TYPE (V4L2_CID_DV_CLASS_BASE + 102)
1163
1164#define V4L2_CID_FM_RX_CLASS_BASE (V4L2_CTRL_CLASS_FM_RX | 0x900)
1165#define V4L2_CID_FM_RX_CLASS (V4L2_CTRL_CLASS_FM_RX | 1)
1166
1167#define V4L2_CID_TUNE_DEEMPHASIS (V4L2_CID_FM_RX_CLASS_BASE + 1)
1168enum v4l2_deemphasis {
1169 V4L2_DEEMPHASIS_DISABLED = V4L2_PREEMPHASIS_DISABLED,
1170 V4L2_DEEMPHASIS_50_uS = V4L2_PREEMPHASIS_50_uS,
1171 V4L2_DEEMPHASIS_75_uS = V4L2_PREEMPHASIS_75_uS,
1172};
1173
1174#define V4L2_CID_RDS_RECEPTION (V4L2_CID_FM_RX_CLASS_BASE + 2)
1175#define V4L2_CID_RDS_RX_PTY (V4L2_CID_FM_RX_CLASS_BASE + 3)
1176#define V4L2_CID_RDS_RX_PS_NAME (V4L2_CID_FM_RX_CLASS_BASE + 4)
1177#define V4L2_CID_RDS_RX_RADIO_TEXT (V4L2_CID_FM_RX_CLASS_BASE + 5)
1178#define V4L2_CID_RDS_RX_TRAFFIC_ANNOUNCEMENT (V4L2_CID_FM_RX_CLASS_BASE + 6)
1179#define V4L2_CID_RDS_RX_TRAFFIC_PROGRAM (V4L2_CID_FM_RX_CLASS_BASE + 7)
1180#define V4L2_CID_RDS_RX_MUSIC_SPEECH (V4L2_CID_FM_RX_CLASS_BASE + 8)
1181
1182#define V4L2_CID_RF_TUNER_CLASS_BASE (V4L2_CTRL_CLASS_RF_TUNER | 0x900)
1183#define V4L2_CID_RF_TUNER_CLASS (V4L2_CTRL_CLASS_RF_TUNER | 1)
1184
1185#define V4L2_CID_RF_TUNER_BANDWIDTH_AUTO (V4L2_CID_RF_TUNER_CLASS_BASE + 11)
1186#define V4L2_CID_RF_TUNER_BANDWIDTH (V4L2_CID_RF_TUNER_CLASS_BASE + 12)
1187#define V4L2_CID_RF_TUNER_RF_GAIN (V4L2_CID_RF_TUNER_CLASS_BASE + 32)
1188#define V4L2_CID_RF_TUNER_LNA_GAIN_AUTO (V4L2_CID_RF_TUNER_CLASS_BASE + 41)
1189#define V4L2_CID_RF_TUNER_LNA_GAIN (V4L2_CID_RF_TUNER_CLASS_BASE + 42)
1190#define V4L2_CID_RF_TUNER_MIXER_GAIN_AUTO (V4L2_CID_RF_TUNER_CLASS_BASE + 51)
1191#define V4L2_CID_RF_TUNER_MIXER_GAIN (V4L2_CID_RF_TUNER_CLASS_BASE + 52)
1192#define V4L2_CID_RF_TUNER_IF_GAIN_AUTO (V4L2_CID_RF_TUNER_CLASS_BASE + 61)
1193#define V4L2_CID_RF_TUNER_IF_GAIN (V4L2_CID_RF_TUNER_CLASS_BASE + 62)
1194#define V4L2_CID_RF_TUNER_PLL_LOCK (V4L2_CID_RF_TUNER_CLASS_BASE + 91)
1195
1196
1197
1198#define V4L2_CID_DETECT_CLASS_BASE (V4L2_CTRL_CLASS_DETECT | 0x900)
1199#define V4L2_CID_DETECT_CLASS (V4L2_CTRL_CLASS_DETECT | 1)
1200
1201#define V4L2_CID_DETECT_MD_MODE (V4L2_CID_DETECT_CLASS_BASE + 1)
1202enum v4l2_detect_md_mode {
1203 V4L2_DETECT_MD_MODE_DISABLED = 0,
1204 V4L2_DETECT_MD_MODE_GLOBAL = 1,
1205 V4L2_DETECT_MD_MODE_THRESHOLD_GRID = 2,
1206 V4L2_DETECT_MD_MODE_REGION_GRID = 3,
1207};
1208#define V4L2_CID_DETECT_MD_GLOBAL_THRESHOLD (V4L2_CID_DETECT_CLASS_BASE + 2)
1209#define V4L2_CID_DETECT_MD_THRESHOLD_GRID (V4L2_CID_DETECT_CLASS_BASE + 3)
1210#define V4L2_CID_DETECT_MD_REGION_GRID (V4L2_CID_DETECT_CLASS_BASE + 4)
1211
1212
1213
1214#define V4L2_CID_CODEC_STATELESS_BASE (V4L2_CTRL_CLASS_CODEC_STATELESS | 0x900)
1215#define V4L2_CID_CODEC_STATELESS_CLASS (V4L2_CTRL_CLASS_CODEC_STATELESS | 1)
1216
1217#define V4L2_CID_STATELESS_H264_DECODE_MODE (V4L2_CID_CODEC_STATELESS_BASE + 0)
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234enum v4l2_stateless_h264_decode_mode {
1235 V4L2_STATELESS_H264_DECODE_MODE_SLICE_BASED,
1236 V4L2_STATELESS_H264_DECODE_MODE_FRAME_BASED,
1237};
1238
1239#define V4L2_CID_STATELESS_H264_START_CODE (V4L2_CID_CODEC_STATELESS_BASE + 1)
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251enum v4l2_stateless_h264_start_code {
1252 V4L2_STATELESS_H264_START_CODE_NONE,
1253 V4L2_STATELESS_H264_START_CODE_ANNEX_B,
1254};
1255
1256#define V4L2_H264_SPS_CONSTRAINT_SET0_FLAG 0x01
1257#define V4L2_H264_SPS_CONSTRAINT_SET1_FLAG 0x02
1258#define V4L2_H264_SPS_CONSTRAINT_SET2_FLAG 0x04
1259#define V4L2_H264_SPS_CONSTRAINT_SET3_FLAG 0x08
1260#define V4L2_H264_SPS_CONSTRAINT_SET4_FLAG 0x10
1261#define V4L2_H264_SPS_CONSTRAINT_SET5_FLAG 0x20
1262
1263#define V4L2_H264_SPS_FLAG_SEPARATE_COLOUR_PLANE 0x01
1264#define V4L2_H264_SPS_FLAG_QPPRIME_Y_ZERO_TRANSFORM_BYPASS 0x02
1265#define V4L2_H264_SPS_FLAG_DELTA_PIC_ORDER_ALWAYS_ZERO 0x04
1266#define V4L2_H264_SPS_FLAG_GAPS_IN_FRAME_NUM_VALUE_ALLOWED 0x08
1267#define V4L2_H264_SPS_FLAG_FRAME_MBS_ONLY 0x10
1268#define V4L2_H264_SPS_FLAG_MB_ADAPTIVE_FRAME_FIELD 0x20
1269#define V4L2_H264_SPS_FLAG_DIRECT_8X8_INFERENCE 0x40
1270
1271#define V4L2_H264_SPS_HAS_CHROMA_FORMAT(sps) \
1272 ((sps)->profile_idc == 100 || (sps)->profile_idc == 110 || \
1273 (sps)->profile_idc == 122 || (sps)->profile_idc == 244 || \
1274 (sps)->profile_idc == 44 || (sps)->profile_idc == 83 || \
1275 (sps)->profile_idc == 86 || (sps)->profile_idc == 118 || \
1276 (sps)->profile_idc == 128 || (sps)->profile_idc == 138 || \
1277 (sps)->profile_idc == 139 || (sps)->profile_idc == 134 || \
1278 (sps)->profile_idc == 135)
1279
1280#define V4L2_CID_STATELESS_H264_SPS (V4L2_CID_CODEC_STATELESS_BASE + 2)
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306struct v4l2_ctrl_h264_sps {
1307 __u8 profile_idc;
1308 __u8 constraint_set_flags;
1309 __u8 level_idc;
1310 __u8 seq_parameter_set_id;
1311 __u8 chroma_format_idc;
1312 __u8 bit_depth_luma_minus8;
1313 __u8 bit_depth_chroma_minus8;
1314 __u8 log2_max_frame_num_minus4;
1315 __u8 pic_order_cnt_type;
1316 __u8 log2_max_pic_order_cnt_lsb_minus4;
1317 __u8 max_num_ref_frames;
1318 __u8 num_ref_frames_in_pic_order_cnt_cycle;
1319 __s32 offset_for_ref_frame[255];
1320 __s32 offset_for_non_ref_pic;
1321 __s32 offset_for_top_to_bottom_field;
1322 __u16 pic_width_in_mbs_minus1;
1323 __u16 pic_height_in_map_units_minus1;
1324 __u32 flags;
1325};
1326
1327#define V4L2_H264_PPS_FLAG_ENTROPY_CODING_MODE 0x0001
1328#define V4L2_H264_PPS_FLAG_BOTTOM_FIELD_PIC_ORDER_IN_FRAME_PRESENT 0x0002
1329#define V4L2_H264_PPS_FLAG_WEIGHTED_PRED 0x0004
1330#define V4L2_H264_PPS_FLAG_DEBLOCKING_FILTER_CONTROL_PRESENT 0x0008
1331#define V4L2_H264_PPS_FLAG_CONSTRAINED_INTRA_PRED 0x0010
1332#define V4L2_H264_PPS_FLAG_REDUNDANT_PIC_CNT_PRESENT 0x0020
1333#define V4L2_H264_PPS_FLAG_TRANSFORM_8X8_MODE 0x0040
1334#define V4L2_H264_PPS_FLAG_SCALING_MATRIX_PRESENT 0x0080
1335
1336#define V4L2_CID_STATELESS_H264_PPS (V4L2_CID_CODEC_STATELESS_BASE + 3)
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362struct v4l2_ctrl_h264_pps {
1363 __u8 pic_parameter_set_id;
1364 __u8 seq_parameter_set_id;
1365 __u8 num_slice_groups_minus1;
1366 __u8 num_ref_idx_l0_default_active_minus1;
1367 __u8 num_ref_idx_l1_default_active_minus1;
1368 __u8 weighted_bipred_idc;
1369 __s8 pic_init_qp_minus26;
1370 __s8 pic_init_qs_minus26;
1371 __s8 chroma_qp_index_offset;
1372 __s8 second_chroma_qp_index_offset;
1373 __u16 flags;
1374};
1375
1376#define V4L2_CID_STATELESS_H264_SCALING_MATRIX (V4L2_CID_CODEC_STATELESS_BASE + 4)
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394struct v4l2_ctrl_h264_scaling_matrix {
1395 __u8 scaling_list_4x4[6][16];
1396 __u8 scaling_list_8x8[6][64];
1397};
1398
1399struct v4l2_h264_weight_factors {
1400 __s16 luma_weight[32];
1401 __s16 luma_offset[32];
1402 __s16 chroma_weight[32][2];
1403 __s16 chroma_offset[32][2];
1404};
1405
1406#define V4L2_H264_CTRL_PRED_WEIGHTS_REQUIRED(pps, slice) \
1407 ((((pps)->flags & V4L2_H264_PPS_FLAG_WEIGHTED_PRED) && \
1408 ((slice)->slice_type == V4L2_H264_SLICE_TYPE_P || \
1409 (slice)->slice_type == V4L2_H264_SLICE_TYPE_SP)) || \
1410 ((pps)->weighted_bipred_idc == 1 && \
1411 (slice)->slice_type == V4L2_H264_SLICE_TYPE_B))
1412
1413#define V4L2_CID_STATELESS_H264_PRED_WEIGHTS (V4L2_CID_CODEC_STATELESS_BASE + 5)
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424struct v4l2_ctrl_h264_pred_weights {
1425 __u16 luma_log2_weight_denom;
1426 __u16 chroma_log2_weight_denom;
1427 struct v4l2_h264_weight_factors weight_factors[2];
1428};
1429
1430#define V4L2_H264_SLICE_TYPE_P 0
1431#define V4L2_H264_SLICE_TYPE_B 1
1432#define V4L2_H264_SLICE_TYPE_I 2
1433#define V4L2_H264_SLICE_TYPE_SP 3
1434#define V4L2_H264_SLICE_TYPE_SI 4
1435
1436#define V4L2_H264_SLICE_FLAG_DIRECT_SPATIAL_MV_PRED 0x01
1437#define V4L2_H264_SLICE_FLAG_SP_FOR_SWITCH 0x02
1438
1439#define V4L2_H264_TOP_FIELD_REF 0x1
1440#define V4L2_H264_BOTTOM_FIELD_REF 0x2
1441#define V4L2_H264_FRAME_REF 0x3
1442
1443
1444
1445
1446
1447
1448
1449
1450struct v4l2_h264_reference {
1451 __u8 fields;
1452 __u8 index;
1453};
1454
1455
1456
1457
1458
1459#define V4L2_H264_NUM_DPB_ENTRIES 16
1460#define V4L2_H264_REF_LIST_LEN (2 * V4L2_H264_NUM_DPB_ENTRIES)
1461
1462#define V4L2_CID_STATELESS_H264_SLICE_PARAMS (V4L2_CID_CODEC_STATELESS_BASE + 6)
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497struct v4l2_ctrl_h264_slice_params {
1498 __u32 header_bit_size;
1499 __u32 first_mb_in_slice;
1500 __u8 slice_type;
1501 __u8 colour_plane_id;
1502 __u8 redundant_pic_cnt;
1503 __u8 cabac_init_idc;
1504 __s8 slice_qp_delta;
1505 __s8 slice_qs_delta;
1506 __u8 disable_deblocking_filter_idc;
1507 __s8 slice_alpha_c0_offset_div2;
1508 __s8 slice_beta_offset_div2;
1509 __u8 num_ref_idx_l0_active_minus1;
1510 __u8 num_ref_idx_l1_active_minus1;
1511
1512 __u8 reserved;
1513
1514 struct v4l2_h264_reference ref_pic_list0[V4L2_H264_REF_LIST_LEN];
1515 struct v4l2_h264_reference ref_pic_list1[V4L2_H264_REF_LIST_LEN];
1516
1517 __u32 flags;
1518};
1519
1520#define V4L2_H264_DPB_ENTRY_FLAG_VALID 0x01
1521#define V4L2_H264_DPB_ENTRY_FLAG_ACTIVE 0x02
1522#define V4L2_H264_DPB_ENTRY_FLAG_LONG_TERM 0x04
1523#define V4L2_H264_DPB_ENTRY_FLAG_FIELD 0x08
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542struct v4l2_h264_dpb_entry {
1543 __u64 reference_ts;
1544 __u32 pic_num;
1545 __u16 frame_num;
1546 __u8 fields;
1547 __u8 reserved[5];
1548 __s32 top_field_order_cnt;
1549 __s32 bottom_field_order_cnt;
1550 __u32 flags;
1551};
1552
1553#define V4L2_H264_DECODE_PARAM_FLAG_IDR_PIC 0x01
1554#define V4L2_H264_DECODE_PARAM_FLAG_FIELD_PIC 0x02
1555#define V4L2_H264_DECODE_PARAM_FLAG_BOTTOM_FIELD 0x04
1556
1557#define V4L2_CID_STATELESS_H264_DECODE_PARAMS (V4L2_CID_CODEC_STATELESS_BASE + 7)
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579struct v4l2_ctrl_h264_decode_params {
1580 struct v4l2_h264_dpb_entry dpb[V4L2_H264_NUM_DPB_ENTRIES];
1581 __u16 nal_ref_idc;
1582 __u16 frame_num;
1583 __s32 top_field_order_cnt;
1584 __s32 bottom_field_order_cnt;
1585 __u16 idr_pic_id;
1586 __u16 pic_order_cnt_lsb;
1587 __s32 delta_pic_order_cnt_bottom;
1588 __s32 delta_pic_order_cnt0;
1589 __s32 delta_pic_order_cnt1;
1590 __u32 dec_ref_pic_marking_bit_size;
1591 __u32 pic_order_cnt_bit_size;
1592 __u32 slice_group_change_cycle;
1593
1594 __u32 reserved;
1595 __u32 flags;
1596};
1597
1598
1599
1600
1601
1602#define V4L2_FWHT_VERSION 3
1603
1604
1605#define V4L2_FWHT_FL_IS_INTERLACED BIT(0)
1606
1607#define V4L2_FWHT_FL_IS_BOTTOM_FIRST BIT(1)
1608
1609#define V4L2_FWHT_FL_IS_ALTERNATE BIT(2)
1610
1611
1612
1613
1614#define V4L2_FWHT_FL_IS_BOTTOM_FIELD BIT(3)
1615
1616#define V4L2_FWHT_FL_LUMA_IS_UNCOMPRESSED BIT(4)
1617
1618#define V4L2_FWHT_FL_CB_IS_UNCOMPRESSED BIT(5)
1619
1620#define V4L2_FWHT_FL_CR_IS_UNCOMPRESSED BIT(6)
1621
1622#define V4L2_FWHT_FL_CHROMA_FULL_HEIGHT BIT(7)
1623
1624#define V4L2_FWHT_FL_CHROMA_FULL_WIDTH BIT(8)
1625
1626#define V4L2_FWHT_FL_ALPHA_IS_UNCOMPRESSED BIT(9)
1627
1628#define V4L2_FWHT_FL_I_FRAME BIT(10)
1629
1630
1631#define V4L2_FWHT_FL_COMPONENTS_NUM_MSK GENMASK(18, 16)
1632#define V4L2_FWHT_FL_COMPONENTS_NUM_OFFSET 16
1633
1634
1635#define V4L2_FWHT_FL_PIXENC_MSK GENMASK(20, 19)
1636#define V4L2_FWHT_FL_PIXENC_OFFSET 19
1637#define V4L2_FWHT_FL_PIXENC_YUV (1 << V4L2_FWHT_FL_PIXENC_OFFSET)
1638#define V4L2_FWHT_FL_PIXENC_RGB (2 << V4L2_FWHT_FL_PIXENC_OFFSET)
1639#define V4L2_FWHT_FL_PIXENC_HSV (3 << V4L2_FWHT_FL_PIXENC_OFFSET)
1640
1641#define V4L2_CID_STATELESS_FWHT_PARAMS (V4L2_CID_CODEC_STATELESS_BASE + 100)
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657struct v4l2_ctrl_fwht_params {
1658 __u64 backward_ref_ts;
1659 __u32 version;
1660 __u32 width;
1661 __u32 height;
1662 __u32 flags;
1663 __u32 colorspace;
1664 __u32 xfer_func;
1665 __u32 ycbcr_enc;
1666 __u32 quantization;
1667};
1668
1669
1670
1671#define V4L2_VP8_SEGMENT_FLAG_ENABLED 0x01
1672#define V4L2_VP8_SEGMENT_FLAG_UPDATE_MAP 0x02
1673#define V4L2_VP8_SEGMENT_FLAG_UPDATE_FEATURE_DATA 0x04
1674#define V4L2_VP8_SEGMENT_FLAG_DELTA_VALUE_MODE 0x08
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690struct v4l2_vp8_segment {
1691 __s8 quant_update[4];
1692 __s8 lf_update[4];
1693 __u8 segment_probs[3];
1694 __u8 padding;
1695 __u32 flags;
1696};
1697
1698#define V4L2_VP8_LF_ADJ_ENABLE 0x01
1699#define V4L2_VP8_LF_DELTA_UPDATE 0x02
1700#define V4L2_VP8_LF_FILTER_TYPE_SIMPLE 0x04
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717struct v4l2_vp8_loop_filter {
1718 __s8 ref_frm_delta[4];
1719 __s8 mb_mode_delta[4];
1720 __u8 sharpness_level;
1721 __u8 level;
1722 __u16 padding;
1723 __u32 flags;
1724};
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742struct v4l2_vp8_quantization {
1743 __u8 y_ac_qi;
1744 __s8 y_dc_delta;
1745 __s8 y2_dc_delta;
1746 __s8 y2_ac_delta;
1747 __s8 uv_dc_delta;
1748 __s8 uv_ac_delta;
1749 __u16 padding;
1750};
1751
1752#define V4L2_VP8_COEFF_PROB_CNT 11
1753#define V4L2_VP8_MV_PROB_CNT 19
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769struct v4l2_vp8_entropy {
1770 __u8 coeff_probs[4][8][3][V4L2_VP8_COEFF_PROB_CNT];
1771 __u8 y_mode_probs[4];
1772 __u8 uv_mode_probs[3];
1773 __u8 mv_probs[2][V4L2_VP8_MV_PROB_CNT];
1774 __u8 padding[3];
1775};
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788struct v4l2_vp8_entropy_coder_state {
1789 __u8 range;
1790 __u8 value;
1791 __u8 bit_count;
1792 __u8 padding;
1793};
1794
1795#define V4L2_VP8_FRAME_FLAG_KEY_FRAME 0x01
1796#define V4L2_VP8_FRAME_FLAG_EXPERIMENTAL 0x02
1797#define V4L2_VP8_FRAME_FLAG_SHOW_FRAME 0x04
1798#define V4L2_VP8_FRAME_FLAG_MB_NO_SKIP_COEFF 0x08
1799#define V4L2_VP8_FRAME_FLAG_SIGN_BIAS_GOLDEN 0x10
1800#define V4L2_VP8_FRAME_FLAG_SIGN_BIAS_ALT 0x20
1801
1802#define V4L2_VP8_FRAME_IS_KEY_FRAME(hdr) \
1803 (!!((hdr)->flags & V4L2_VP8_FRAME_FLAG_KEY_FRAME))
1804
1805#define V4L2_CID_STATELESS_VP8_FRAME (V4L2_CID_CODEC_STATELESS_BASE + 200)
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834struct v4l2_ctrl_vp8_frame {
1835 struct v4l2_vp8_segment segment;
1836 struct v4l2_vp8_loop_filter lf;
1837 struct v4l2_vp8_quantization quant;
1838 struct v4l2_vp8_entropy entropy;
1839 struct v4l2_vp8_entropy_coder_state coder_state;
1840
1841 __u16 width;
1842 __u16 height;
1843
1844 __u8 horizontal_scale;
1845 __u8 vertical_scale;
1846
1847 __u8 version;
1848 __u8 prob_skip_false;
1849 __u8 prob_intra;
1850 __u8 prob_last;
1851 __u8 prob_gf;
1852 __u8 num_dct_parts;
1853
1854 __u32 first_part_size;
1855 __u32 first_part_header_bits;
1856 __u32 dct_part_sizes[8];
1857
1858 __u64 last_frame_ts;
1859 __u64 golden_frame_ts;
1860 __u64 alt_frame_ts;
1861
1862 __u64 flags;
1863};
1864
1865#define V4L2_CID_COLORIMETRY_CLASS_BASE (V4L2_CTRL_CLASS_COLORIMETRY | 0x900)
1866#define V4L2_CID_COLORIMETRY_CLASS (V4L2_CTRL_CLASS_COLORIMETRY | 1)
1867
1868#define V4L2_CID_COLORIMETRY_HDR10_CLL_INFO (V4L2_CID_COLORIMETRY_CLASS_BASE + 0)
1869
1870struct v4l2_ctrl_hdr10_cll_info {
1871 __u16 max_content_light_level;
1872 __u16 max_pic_average_light_level;
1873};
1874
1875#define V4L2_CID_COLORIMETRY_HDR10_MASTERING_DISPLAY (V4L2_CID_COLORIMETRY_CLASS_BASE + 1)
1876
1877#define V4L2_HDR10_MASTERING_PRIMARIES_X_LOW 5
1878#define V4L2_HDR10_MASTERING_PRIMARIES_X_HIGH 37000
1879#define V4L2_HDR10_MASTERING_PRIMARIES_Y_LOW 5
1880#define V4L2_HDR10_MASTERING_PRIMARIES_Y_HIGH 42000
1881#define V4L2_HDR10_MASTERING_WHITE_POINT_X_LOW 5
1882#define V4L2_HDR10_MASTERING_WHITE_POINT_X_HIGH 37000
1883#define V4L2_HDR10_MASTERING_WHITE_POINT_Y_LOW 5
1884#define V4L2_HDR10_MASTERING_WHITE_POINT_Y_HIGH 42000
1885#define V4L2_HDR10_MASTERING_MAX_LUMA_LOW 50000
1886#define V4L2_HDR10_MASTERING_MAX_LUMA_HIGH 100000000
1887#define V4L2_HDR10_MASTERING_MIN_LUMA_LOW 1
1888#define V4L2_HDR10_MASTERING_MIN_LUMA_HIGH 50000
1889
1890struct v4l2_ctrl_hdr10_mastering_display {
1891 __u16 display_primaries_x[3];
1892 __u16 display_primaries_y[3];
1893 __u16 white_point_x;
1894 __u16 white_point_y;
1895 __u32 max_display_mastering_luminance;
1896 __u32 min_display_mastering_luminance;
1897};
1898
1899
1900#ifndef __KERNEL__
1901#define V4L2_CTRL_CLASS_MPEG V4L2_CTRL_CLASS_CODEC
1902#define V4L2_CID_MPEG_CLASS V4L2_CID_CODEC_CLASS
1903#define V4L2_CID_MPEG_BASE V4L2_CID_CODEC_BASE
1904#define V4L2_CID_MPEG_CX2341X_BASE V4L2_CID_CODEC_CX2341X_BASE
1905#define V4L2_CID_MPEG_MFC51_BASE V4L2_CID_CODEC_MFC51_BASE
1906#endif
1907
1908#endif
1909