1 #ifndef __MSM_V4L2_CONTROLS_H__
2 #define __MSM_V4L2_CONTROLS_H__
4 #include <linux/v4l2-controls.h>
6 /* MPEG-class control IDs specific to the msm_vidc driver */
7 #define V4L2_CID_MPEG_MSM_VIDC_BASE (V4L2_CTRL_CLASS_MPEG | 0x2000)
9 #define V4L2_CID_MPEG_VIDC_VIDEO_ENABLE_PICTURE_TYPE \
10 (V4L2_CID_MPEG_MSM_VIDC_BASE+0)
11 #define V4L2_CID_MPEG_VIDC_VIDEO_KEEP_ASPECT_RATIO \
12 (V4L2_CID_MPEG_MSM_VIDC_BASE+1)
13 #define V4L2_CID_MPEG_VIDC_VIDEO_POST_LOOP_DEBLOCKER_MODE \
14 (V4L2_CID_MPEG_MSM_VIDC_BASE+2)
15 #define V4L2_CID_MPEG_VIDC_VIDEO_DIVX_FORMAT \
16 (V4L2_CID_MPEG_MSM_VIDC_BASE+3)
17 enum v4l2_mpeg_vidc_video_divx_format_type {
18 V4L2_MPEG_VIDC_VIDEO_DIVX_FORMAT_4 = 0,
19 V4L2_MPEG_VIDC_VIDEO_DIVX_FORMAT_5 = 1,
20 V4L2_MPEG_VIDC_VIDEO_DIVX_FORMAT_6 = 2,
22 #define V4L2_CID_MPEG_VIDC_VIDEO_MB_ERROR_MAP_REPORTING \
23 (V4L2_CID_MPEG_MSM_VIDC_BASE+4)
24 #define V4L2_CID_MPEG_VIDC_VIDEO_CONTINUE_DATA_TRANSFER \
25 (V4L2_CID_MPEG_MSM_VIDC_BASE+5)
27 #define V4L2_CID_MPEG_VIDC_VIDEO_STREAM_FORMAT (V4L2_CID_MPEG_MSM_VIDC_BASE+6)
28 enum v4l2_mpeg_vidc_video_stream_format {
29 V4L2_MPEG_VIDC_VIDEO_NAL_FORMAT_STARTCODES = 0,
30 V4L2_MPEG_VIDC_VIDEO_NAL_FORMAT_ONE_NAL_PER_BUFFER = 1,
31 V4L2_MPEG_VIDC_VIDEO_NAL_FORMAT_ONE_BYTE_LENGTH = 2,
32 V4L2_MPEG_VIDC_VIDEO_NAL_FORMAT_TWO_BYTE_LENGTH = 3,
33 V4L2_MPEG_VIDC_VIDEO_NAL_FORMAT_FOUR_BYTE_LENGTH = 4,
36 #define V4L2_CID_MPEG_VIDC_VIDEO_OUTPUT_ORDER (V4L2_CID_MPEG_MSM_VIDC_BASE+7)
37 enum v4l2_mpeg_vidc_video_output_order {
38 V4L2_MPEG_VIDC_VIDEO_OUTPUT_ORDER_DISPLAY = 0,
39 V4L2_MPEG_VIDC_VIDEO_OUTPUT_ORDER_DECODE = 1,
42 #define V4L2_CID_MPEG_VIDC_VIDEO_FRAME_RATE (V4L2_CID_MPEG_MSM_VIDC_BASE+8)
43 #define V4L2_CID_MPEG_VIDC_VIDEO_IDR_PERIOD (V4L2_CID_MPEG_MSM_VIDC_BASE+9)
44 #define V4L2_CID_MPEG_VIDC_VIDEO_NUM_P_FRAMES (V4L2_CID_MPEG_MSM_VIDC_BASE+10)
45 #define V4L2_CID_MPEG_VIDC_VIDEO_NUM_B_FRAMES (V4L2_CID_MPEG_MSM_VIDC_BASE+11)
46 #define V4L2_CID_MPEG_VIDC_VIDEO_REQUEST_IFRAME (V4L2_CID_MPEG_MSM_VIDC_BASE+12)
48 #define V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL (V4L2_CID_MPEG_MSM_VIDC_BASE+13)
49 enum v4l2_mpeg_vidc_video_rate_control {
50 V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_OFF = 0,
51 V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_VBR_VFR = 1,
52 V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_VBR_CFR = 2,
53 V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_VFR = 3,
54 V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_CFR = 4,
57 #define V4L2_CID_MPEG_VIDC_VIDEO_ROTATION (V4L2_CID_MPEG_MSM_VIDC_BASE+14)
58 enum v4l2_mpeg_vidc_video_rotation {
59 V4L2_CID_MPEG_VIDC_VIDEO_ROTATION_NONE = 0,
60 V4L2_CID_MPEG_VIDC_VIDEO_ROTATION_90 = 1,
61 V4L2_CID_MPEG_VIDC_VIDEO_ROTATION_180 = 2,
62 V4L2_CID_MPEG_VIDC_VIDEO_ROTATION_270 = 3,
64 #define MSM_VIDC_BASE V4L2_CID_MPEG_MSM_VIDC_BASE
65 #define V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL (MSM_VIDC_BASE+15)
66 enum v4l2_mpeg_vidc_h264_cabac_model {
67 V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL_0 = 0,
68 V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL_1 = 1,
69 V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL_2 = 2,
72 #define V4L2_CID_MPEG_VIDC_VIDEO_INTRA_REFRESH_MODE (MSM_VIDC_BASE+16)
73 enum v4l2_mpeg_vidc_video_intra_refresh_mode {
74 V4L2_CID_MPEG_VIDC_VIDEO_INTRA_REFRESH_NONE = 0,
75 V4L2_CID_MPEG_VIDC_VIDEO_INTRA_REFRESH_CYCLIC = 1,
76 V4L2_CID_MPEG_VIDC_VIDEO_INTRA_REFRESH_ADAPTIVE = 2,
77 V4L2_CID_MPEG_VIDC_VIDEO_INTRA_REFRESH_CYCLIC_ADAPTIVE = 3,
78 V4L2_CID_MPEG_VIDC_VIDEO_INTRA_REFRESH_RANDOM = 4,
80 #define V4L2_CID_MPEG_VIDC_VIDEO_AIR_MBS (V4L2_CID_MPEG_MSM_VIDC_BASE+17)
81 #define V4L2_CID_MPEG_VIDC_VIDEO_AIR_REF (V4L2_CID_MPEG_MSM_VIDC_BASE+18)
82 #define V4L2_CID_MPEG_VIDC_VIDEO_CIR_MBS (V4L2_CID_MPEG_MSM_VIDC_BASE+19)
84 #define V4L2_CID_MPEG_VIDC_VIDEO_H263_PROFILE (V4L2_CID_MPEG_MSM_VIDC_BASE+20)
85 enum v4l2_mpeg_vidc_video_h263_profile {
86 V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_BASELINE = 0,
87 V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_H320CODING = 1,
88 V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_BACKWARDCOMPATIBLE = 2,
89 V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_ISWV2 = 3,
90 V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_ISWV3 = 4,
91 V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_HIGHCOMPRESSION = 5,
92 V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_INTERNET = 6,
93 V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_INTERLACE = 7,
94 V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_HIGHLATENCY = 8,
97 #define V4L2_CID_MPEG_VIDC_VIDEO_H263_LEVEL (V4L2_CID_MPEG_MSM_VIDC_BASE+21)
98 enum v4l2_mpeg_vidc_video_h263_level {
99 V4L2_MPEG_VIDC_VIDEO_H263_LEVEL_1_0 = 0,
100 V4L2_MPEG_VIDC_VIDEO_H263_LEVEL_2_0 = 1,
101 V4L2_MPEG_VIDC_VIDEO_H263_LEVEL_3_0 = 2,
102 V4L2_MPEG_VIDC_VIDEO_H263_LEVEL_4_0 = 3,
103 V4L2_MPEG_VIDC_VIDEO_H263_LEVEL_4_5 = 4,
104 V4L2_MPEG_VIDC_VIDEO_H263_LEVEL_5_0 = 5,
105 V4L2_MPEG_VIDC_VIDEO_H263_LEVEL_6_0 = 6,
106 V4L2_MPEG_VIDC_VIDEO_H263_LEVEL_7_0 = 7,
109 #define V4L2_CID_MPEG_VIDC_VIDEO_H264_AU_DELIMITER \
110 (V4L2_CID_MPEG_MSM_VIDC_BASE + 22)
111 enum v4l2_mpeg_vidc_video_h264_au_delimiter {
112 V4L2_MPEG_VIDC_VIDEO_H264_AU_DELIMITER_DISABLED = 0,
113 V4L2_MPEG_VIDC_VIDEO_H264_AU_DELIMITER_ENABLED = 1
115 #define V4L2_CID_MPEG_VIDC_VIDEO_SYNC_FRAME_DECODE \
116 (V4L2_CID_MPEG_MSM_VIDC_BASE + 23)
117 enum v4l2_mpeg_vidc_video_sync_frame_decode {
118 V4L2_MPEG_VIDC_VIDEO_SYNC_FRAME_DECODE_DISABLE = 0,
119 V4L2_MPEG_VIDC_VIDEO_SYNC_FRAME_DECODE_ENABLE = 1
121 #define V4L2_CID_MPEG_VIDC_VIDEO_SECURE (V4L2_CID_MPEG_MSM_VIDC_BASE+24)
122 #define V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA \
123 (V4L2_CID_MPEG_MSM_VIDC_BASE + 25)
124 enum v4l2_mpeg_vidc_extradata {
125 V4L2_MPEG_VIDC_EXTRADATA_NONE = 0,
126 V4L2_MPEG_VIDC_EXTRADATA_MB_QUANTIZATION = 1,
127 V4L2_MPEG_VIDC_EXTRADATA_INTERLACE_VIDEO = 2,
128 V4L2_MPEG_VIDC_EXTRADATA_VC1_FRAMEDISP = 3,
129 V4L2_MPEG_VIDC_EXTRADATA_VC1_SEQDISP = 4,
130 V4L2_MPEG_VIDC_EXTRADATA_TIMESTAMP = 5,
131 V4L2_MPEG_VIDC_EXTRADATA_S3D_FRAME_PACKING = 6,
132 V4L2_MPEG_VIDC_EXTRADATA_FRAME_RATE = 7,
133 V4L2_MPEG_VIDC_EXTRADATA_PANSCAN_WINDOW = 8,
134 V4L2_MPEG_VIDC_EXTRADATA_RECOVERY_POINT_SEI = 9,
135 V4L2_MPEG_VIDC_EXTRADATA_MULTISLICE_INFO = 10,
136 V4L2_MPEG_VIDC_EXTRADATA_NUM_CONCEALED_MB = 11,
137 V4L2_MPEG_VIDC_EXTRADATA_METADATA_FILLER = 12,
138 V4L2_MPEG_VIDC_EXTRADATA_INPUT_CROP = 13,
139 V4L2_MPEG_VIDC_EXTRADATA_DIGITAL_ZOOM = 14,
140 V4L2_MPEG_VIDC_EXTRADATA_ASPECT_RATIO = 15,
141 V4L2_MPEG_VIDC_EXTRADATA_MPEG2_SEQDISP = 16,
142 V4L2_MPEG_VIDC_EXTRADATA_STREAM_USERDATA = 17,
143 V4L2_MPEG_VIDC_EXTRADATA_FRAME_QP = 18,
144 V4L2_MPEG_VIDC_EXTRADATA_FRAME_BITS_INFO = 19,
145 V4L2_MPEG_VIDC_EXTRADATA_LTR = 20,
146 V4L2_MPEG_VIDC_EXTRADATA_METADATA_MBI = 21,
149 #define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_GOB \
150 (V4L2_CID_MPEG_MSM_VIDC_BASE + 27)
152 #define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_DELIVERY_MODE \
153 (V4L2_CID_MPEG_MSM_VIDC_BASE + 28)
155 #define V4L2_CID_MPEG_VIDC_VIDEO_H264_VUI_TIMING_INFO \
156 (V4L2_CID_MPEG_MSM_VIDC_BASE + 29)
157 enum v4l2_mpeg_vidc_video_h264_vui_timing_info {
158 V4L2_MPEG_VIDC_VIDEO_H264_VUI_TIMING_INFO_DISABLED = 0,
159 V4L2_MPEG_VIDC_VIDEO_H264_VUI_TIMING_INFO_ENABLED = 1
162 #define V4L2_CID_MPEG_VIDC_VIDEO_ALLOC_MODE_INPUT \
163 (V4L2_CID_MPEG_MSM_VIDC_BASE + 30)
164 #define V4L2_CID_MPEG_VIDC_VIDEO_ALLOC_MODE_OUTPUT \
165 (V4L2_CID_MPEG_MSM_VIDC_BASE + 31)
166 enum v4l2_mpeg_vidc_video_alloc_mode_type {
167 V4L2_MPEG_VIDC_VIDEO_STATIC = 0,
168 V4L2_MPEG_VIDC_VIDEO_RING = 1,
169 V4L2_MPEG_VIDC_VIDEO_DYNAMIC = 2,
172 #define V4L2_CID_MPEG_VIDC_VIDEO_FRAME_ASSEMBLY \
173 (V4L2_CID_MPEG_MSM_VIDC_BASE + 32)
174 enum v4l2_mpeg_vidc_video_assembly {
175 V4L2_MPEG_VIDC_FRAME_ASSEMBLY_DISABLE = 0,
176 V4L2_MPEG_VIDC_FRAME_ASSEMBLY_ENABLE = 1,
179 #define V4L2_CID_MPEG_VIDC_VIDEO_VP8_PROFILE_LEVEL \
180 (V4L2_CID_MPEG_MSM_VIDC_BASE + 33)
181 enum v4l2_mpeg_vidc_video_vp8_profile_level {
182 V4L2_MPEG_VIDC_VIDEO_VP8_UNUSED,
183 V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_0,
184 V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_1,
185 V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_2,
186 V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_3,
189 #define V4L2_CID_MPEG_VIDC_VIDEO_H264_VUI_BITSTREAM_RESTRICT \
190 (V4L2_CID_MPEG_MSM_VIDC_BASE + 34)
191 enum v4l2_mpeg_vidc_video_h264_vui_bitstream_restrict {
192 V4L2_MPEG_VIDC_VIDEO_H264_VUI_BITSTREAM_RESTRICT_DISABLED = 0,
193 V4L2_MPEG_VIDC_VIDEO_H264_VUI_BITSTREAM_RESTRICT_ENABLED = 1
196 #define V4L2_CID_MPEG_VIDC_VIDEO_PRESERVE_TEXT_QUALITY \
197 (V4L2_CID_MPEG_MSM_VIDC_BASE + 35)
198 enum v4l2_mpeg_vidc_video_preserve_text_quality {
199 V4L2_MPEG_VIDC_VIDEO_PRESERVE_TEXT_QUALITY_DISABLED = 0,
200 V4L2_MPEG_VIDC_VIDEO_PRESERVE_TEXT_QUALITY_ENABLED = 1
203 #define V4L2_CID_MPEG_VIDC_VIDEO_DEINTERLACE \
204 (V4L2_CID_MPEG_MSM_VIDC_BASE + 36)
205 enum v4l2_mpeg_vidc_video_deinterlace {
206 V4L2_CID_MPEG_VIDC_VIDEO_DEINTERLACE_DISABLED = 0,
207 V4L2_CID_MPEG_VIDC_VIDEO_DEINTERLACE_ENABLED = 1
210 #define V4L2_CID_MPEG_VIDC_VIDEO_MPEG4_TIME_RESOLUTION \
211 (V4L2_CID_MPEG_MSM_VIDC_BASE + 37)
213 #define V4L2_CID_MPEG_VIDC_VIDEO_STREAM_OUTPUT_MODE \
214 (V4L2_CID_MPEG_MSM_VIDC_BASE + 38)
215 enum v4l2_mpeg_vidc_video_decoder_multi_stream {
216 V4L2_CID_MPEG_VIDC_VIDEO_STREAM_OUTPUT_PRIMARY = 0,
217 V4L2_CID_MPEG_VIDC_VIDEO_STREAM_OUTPUT_SECONDARY = 1,
219 #define V4L2_CID_MPEG_VIDC_VIDEO_SCS_THRESHOLD \
220 (V4L2_CID_MPEG_MSM_VIDC_BASE + 39)
222 #define V4L2_CID_MPEG_VIDC_VIDEO_MPEG2_LEVEL (V4L2_CID_MPEG_MSM_VIDC_BASE+40)
223 enum v4l2_mpeg_vidc_video_mpeg2_level {
224 V4L2_MPEG_VIDC_VIDEO_MPEG2_LEVEL_0 = 0,
225 V4L2_MPEG_VIDC_VIDEO_MPEG2_LEVEL_1 = 1,
226 V4L2_MPEG_VIDC_VIDEO_MPEG2_LEVEL_2 = 2,
227 V4L2_MPEG_VIDC_VIDEO_MPEG2_LEVEL_3 = 3,
229 #define V4L2_CID_MPEG_VIDC_VIDEO_MPEG2_PROFILE (V4L2_CID_MPEG_MSM_VIDC_BASE+41)
230 enum v4l2_mpeg_vidc_video_mpeg2_profile {
231 V4L2_MPEG_VIDC_VIDEO_MPEG2_PROFILE_SIMPLE = 0,
232 V4L2_MPEG_VIDC_VIDEO_MPEG2_PROFILE_MAIN = 1,
233 V4L2_MPEG_VIDC_VIDEO_MPEG2_PROFILE_422 = 2,
234 V4L2_MPEG_VIDC_VIDEO_MPEG2_PROFILE_SNR_SCALABLE = 3,
235 V4L2_MPEG_VIDC_VIDEO_MPEG2_PROFILE_SPATIAL_SCALABLE = 4,
236 V4L2_MPEG_VIDC_VIDEO_MPEG2_PROFILE_HIGH = 5,
238 #define V4L2_CID_MPEG_VIDC_VIDEO_REQUEST_SEQ_HEADER \
239 (V4L2_CID_MPEG_MSM_VIDC_BASE + 42)
241 #define V4L2_CID_MPEG_VIDC_VIDEO_MVC_BUFFER_LAYOUT \
242 (V4L2_CID_MPEG_MSM_VIDC_BASE + 43)
243 enum v4l2_mpeg_vidc_video_mvc_layout {
244 V4L2_MPEG_VIDC_VIDEO_MVC_SEQUENTIAL = 0,
245 V4L2_MPEG_VIDC_VIDEO_MVC_TOP_BOTTOM = 1
248 #define V4L2_CID_MPEG_VIDC_VIDEO_VP8_MIN_QP (V4L2_CID_MPEG_MSM_VIDC_BASE + 44)
249 #define V4L2_CID_MPEG_VIDC_VIDEO_VP8_MAX_QP (V4L2_CID_MPEG_MSM_VIDC_BASE + 45)
250 #define V4L2_CID_MPEG_VIDC_VIDEO_CONCEAL_COLOR \
251 (V4L2_CID_MPEG_MSM_VIDC_BASE + 46)
253 #define V4L2_CID_MPEG_VIDC_VIDEO_LTRMODE \
254 (V4L2_CID_MPEG_MSM_VIDC_BASE + 47)
256 enum v4l2_mpeg_vidc_video_ltrmode {
257 V4L2_MPEG_VIDC_VIDEO_LTR_MODE_DISABLE = 0,
258 V4L2_MPEG_VIDC_VIDEO_LTR_MODE_MANUAL = 1,
259 V4L2_MPEG_VIDC_VIDEO_LTR_MODE_PERIODIC = 2
262 #define V4L2_CID_MPEG_VIDC_VIDEO_LTRCOUNT \
263 (V4L2_CID_MPEG_MSM_VIDC_BASE + 48)
265 #define V4L2_CID_MPEG_VIDC_VIDEO_USELTRFRAME \
266 (V4L2_CID_MPEG_MSM_VIDC_BASE + 49)
268 #define V4L2_CID_MPEG_VIDC_VIDEO_MARKLTRFRAME \
269 (V4L2_CID_MPEG_MSM_VIDC_BASE + 50)
271 #define V4L2_CID_MPEG_VIDC_VIDEO_HIER_P_NUM_LAYERS \
272 (V4L2_CID_MPEG_MSM_VIDC_BASE + 51)
274 #define V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_TIMESTAMP_MODE \
275 (V4L2_CID_MPEG_MSM_VIDC_BASE + 52)
276 enum v4l2_mpeg_vidc_video_rate_control_timestamp_mode {
277 V4L2_MPEG_VIDC_VIDEO_RATE_CONTROL_TIMESTAMP_MODE_HONOR = 0,
278 V4L2_MPEG_VIDC_VIDEO_RATE_CONTROL_TIMESTAMP_MODE_IGNORE = 1,
281 #define V4L2_CID_MPEG_VIDC_VIDEO_ENABLE_INITIAL_QP \
282 (V4L2_CID_MPEG_MSM_VIDC_BASE + 53)
283 enum vl42_mpeg_vidc_video_enable_initial_qp {
284 V4L2_CID_MPEG_VIDC_VIDEO_ENABLE_INITIAL_QP_IFRAME = 0x1,
285 V4L2_CID_MPEG_VIDC_VIDEO_ENABLE_INITIAL_QP_PFRAME = 0x2,
286 V4L2_CID_MPEG_VIDC_VIDEO_ENABLE_INITIAL_QP_BFRAME = 0x4,
289 #define V4L2_CID_MPEG_VIDC_VIDEO_I_FRAME_QP \
290 (V4L2_CID_MPEG_MSM_VIDC_BASE + 54)
292 #define V4L2_CID_MPEG_VIDC_VIDEO_P_FRAME_QP \
293 (V4L2_CID_MPEG_MSM_VIDC_BASE + 55)
295 #define V4L2_CID_MPEG_VIDC_VIDEO_B_FRAME_QP \
296 (V4L2_CID_MPEG_MSM_VIDC_BASE + 56)
298 #define V4L2_CID_MPEG_VIDC_VIDEO_IFRAME_X_RANGE \
299 (V4L2_CID_MPEG_MSM_VIDC_BASE + 57)
301 #define V4L2_CID_MPEG_VIDC_VIDEO_PFRAME_X_RANGE \
302 (V4L2_CID_MPEG_MSM_VIDC_BASE + 58)
304 #define V4L2_CID_MPEG_VIDC_VIDEO_BFRAME_X_RANGE \
305 (V4L2_CID_MPEG_MSM_VIDC_BASE + 59)
307 #define V4L2_CID_MPEG_VIDC_VIDEO_IFRAME_Y_RANGE \
308 (V4L2_CID_MPEG_MSM_VIDC_BASE + 60)
310 #define V4L2_CID_MPEG_VIDC_VIDEO_PFRAME_Y_RANGE \
311 (V4L2_CID_MPEG_MSM_VIDC_BASE + 61)
313 #define V4L2_CID_MPEG_VIDC_VIDEO_BFRAME_Y_RANGE \
314 (V4L2_CID_MPEG_MSM_VIDC_BASE + 62)
316 #define V4L2_CID_MPEG_VIDC_VIDEO_VPX_ERROR_RESILIENCE \
317 (V4L2_CID_MPEG_MSM_VIDC_BASE + 63)
319 enum vl42_mpeg_vidc_video_vpx_error_resilience {
320 V4L2_MPEG_VIDC_VIDEO_VPX_ERROR_RESILIENCE_DISABLED = 0,
321 V4L2_MPEG_VIDC_VIDEO_VPX_ERROR_RESILIENCE_ENABLED = 1,
324 #define V4L2_CID_MPEG_VIDC_VIDEO_HEVC_PROFILE \
325 (V4L2_CID_MPEG_MSM_VIDC_BASE + 65)
326 enum v4l2_mpeg_video_hevc_profile {
327 V4L2_MPEG_VIDC_VIDEO_HEVC_PROFILE_MAIN = 0,
328 V4L2_MPEG_VIDC_VIDEO_HEVC_PROFILE_MAIN10 = 1,
329 V4L2_MPEG_VIDC_VIDEO_HEVC_PROFILE_MAIN_STILL_PIC = 2,
332 #define V4L2_CID_MPEG_VIDC_VIDEO_HEVC_TIER_LEVEL \
333 (V4L2_CID_MPEG_MSM_VIDC_BASE + 66)
334 enum v4l2_mpeg_video_hevc_level {
335 V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_1 = 0,
336 V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_1 = 1,
337 V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_2 = 2,
338 V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_2 = 3,
339 V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_2_1 = 4,
340 V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_2_1 = 5,
341 V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_3 = 6,
342 V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_3 = 7,
343 V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_3_1 = 8,
344 V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_3_1 = 9,
345 V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_4 = 10,
346 V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_4 = 11,
347 V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_4_1 = 12,
348 V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_4_1 = 13,
349 V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_5 = 14,
350 V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_5 = 15,
351 V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_5_1 = 16,
352 V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_5_1 = 17,
353 V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_5_2 = 18,
354 V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_5_2 = 19,
355 V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_6 = 20,
356 V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_6 = 21,
357 V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_6_1 = 22,
358 V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_6_1 = 23,
359 V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_6_2 = 24,
360 V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_6_2 = 25,
363 #define V4L2_CID_MPEG_VIDC_VIDEO_H264_NAL_SVC \
364 (V4L2_CID_MPEG_MSM_VIDC_BASE + 67)
366 enum vl42_mpeg_vidc_video_h264_svc_nal {
367 V4L2_CID_MPEG_VIDC_VIDEO_H264_NAL_SVC_DISABLED = 0,
368 V4L2_CID_MPEG_VIDC_VIDEO_H264_NAL_SVC_ENABLED = 1,
371 #define V4L2_CID_MPEG_VIDC_VIDEO_PERF_MODE \
372 (V4L2_CID_MPEG_MSM_VIDC_BASE + 68)
374 enum v4l2_mpeg_vidc_video_perf_mode {
375 V4L2_MPEG_VIDC_VIDEO_PERF_MAX_QUALITY = 1,
376 V4L2_MPEG_VIDC_VIDEO_PERF_POWER_SAVE = 2
379 #define V4L2_CID_MPEG_VIDC_VIDEO_HIER_B_NUM_LAYERS \
380 (V4L2_CID_MPEG_MSM_VIDC_BASE + 69)
382 #define V4L2_CID_MPEG_VIDC_VIDEO_SECURE_SCALING_THRESHOLD \
383 (V4L2_CID_MPEG_MSM_VIDC_BASE + 70)
385 #define V4L2_CID_MPEG_VIDC_VIDEO_NON_SECURE_OUTPUT2 \
386 (V4L2_CID_MPEG_MSM_VIDC_BASE + 71)
388 #define V4L2_CID_MPEG_VIDC_VIDEO_HYBRID_HIERP_MODE \
389 (V4L2_CID_MPEG_MSM_VIDC_BASE + 72)
391 /* Vendor extensions */
392 #define V4L2_QCOM_BUF_FLAG_CODECCONFIG 0x10000
393 #define V4L2_QCOM_BUF_FLAG_EOSEQ 0x20000
394 #define V4L2_QCOM_BUF_TIMESTAMP_INVALID 0x40000
395 #define V4L2_QCOM_BUF_FLAG_IDRFRAME 0x80000 /*Image is a IDR-frame*/
396 #define V4L2_QCOM_BUF_FLAG_DECODEONLY 0x100000
397 #define V4L2_QCOM_BUF_DATA_CORRUPT 0x200000
398 #define V4L2_QCOM_BUF_DROP_FRAME 0x400000
399 #define V4L2_QCOM_BUF_INPUT_UNSUPPORTED 0x800000
400 #define V4L2_QCOM_BUF_FLAG_EOS 0x1000000
401 #define V4L2_QCOM_BUF_TS_DISCONTINUITY 0x2000000
402 #define V4L2_QCOM_BUF_TS_ERROR 0x4000000
403 #define V4L2_QCOM_BUF_FLAG_READONLY 0x8000000
404 #define V4L2_MSM_VIDC_BUF_START_CODE_NOT_FOUND 0x10000000
405 #define V4L2_MSM_BUF_FLAG_YUV_601_709_CLAMP 0x20000000
406 #define V4L2_MSM_BUF_FLAG_MBAFF 0x40000000
409 #define V4L2_CAP_QCOM_FRAMESKIP 0x2000 /* frame skipping is supported */
411 struct v4l2_qcom_frameskip {
412 __u64 maxframeinterval;
416 /* Encoder commands */
417 #define V4L2_ENC_QCOM_CMD_FLUSH (4)
419 /* Decoder commands */
420 #define V4L2_DEC_QCOM_CMD_FLUSH (4)
422 /* Flags for V4L2_DEC_QCOM_CMD_FLUSH */
423 #define V4L2_DEC_QCOM_CMD_FLUSH_OUTPUT (1 << 0)
424 #define V4L2_DEC_QCOM_CMD_FLUSH_CAPTURE (1 << 1)
426 #define V4L2_QCOM_CMD_FLUSH_OUTPUT (1 << 0)
427 #define V4L2_QCOM_CMD_FLUSH_CAPTURE (1 << 1)
430 #define V4L2_EVENT_MSM_VIDC_START (V4L2_EVENT_PRIVATE_START + 0x00001000)
431 #define V4L2_EVENT_MSM_VIDC_FLUSH_DONE (V4L2_EVENT_MSM_VIDC_START + 1)
432 #define V4L2_EVENT_MSM_VIDC_PORT_SETTINGS_CHANGED_SUFFICIENT \
433 (V4L2_EVENT_MSM_VIDC_START + 2)
434 #define V4L2_EVENT_MSM_VIDC_PORT_SETTINGS_CHANGED_INSUFFICIENT \
435 (V4L2_EVENT_MSM_VIDC_START + 3)
436 #define V4L2_EVENT_MSM_VIDC_CLOSE_DONE (V4L2_EVENT_MSM_VIDC_START + 4)
437 #define V4L2_EVENT_MSM_VIDC_SYS_ERROR (V4L2_EVENT_MSM_VIDC_START + 5)
438 #define V4L2_EVENT_MSM_VIDC_RELEASE_BUFFER_REFERENCE \
439 (V4L2_EVENT_MSM_VIDC_START + 6)
440 #define V4L2_EVENT_MSM_VIDC_RELEASE_UNQUEUED_BUFFER \
441 (V4L2_EVENT_MSM_VIDC_START + 7)
442 #define V4L2_EVENT_MSM_VIDC_HW_OVERLOAD (V4L2_EVENT_MSM_VIDC_START + 8)
443 #define V4L2_EVENT_MSM_VIDC_MAX_CLIENTS (V4L2_EVENT_MSM_VIDC_START + 9)
444 #define V4L2_EVENT_MSM_VIDC_HW_UNSUPPORTED (V4L2_EVENT_MSM_VIDC_START + 10)
446 #endif/* __MSM_V4L2_CONTROLS_H__ */