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