OLD | NEW |
| (Empty) |
1 /** | |
2 * Copyright (c) 2008 The Khronos Group Inc. | |
3 * | |
4 * Permission is hereby granted, free of charge, to any person obtaining | |
5 * a copy of this software and associated documentation files (the | |
6 * "Software"), to deal in the Software without restriction, including | |
7 * without limitation the rights to use, copy, modify, merge, publish, | |
8 * distribute, sublicense, and/or sell copies of the Software, and to | |
9 * permit persons to whom the Software is furnished to do so, subject | |
10 * to the following conditions: | |
11 * The above copyright notice and this permission notice shall be included | |
12 * in all copies or substantial portions of the Software. | |
13 * | |
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | |
15 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |
16 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. | |
17 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY | |
18 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, | |
19 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE | |
20 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |
21 * | |
22 */ | |
23 | |
24 /** | |
25 * @file OMX_IVCommon.h - OpenMax IL version 1.1.2 | |
26 * The structures needed by Video and Image components to exchange | |
27 * parameters and configuration data with the components. | |
28 */ | |
29 #ifndef OMX_IVCommon_h | |
30 #define OMX_IVCommon_h | |
31 | |
32 #ifdef __cplusplus | |
33 extern "C" { | |
34 #endif /* __cplusplus */ | |
35 | |
36 /** | |
37 * Each OMX header must include all required header files to allow the header | |
38 * to compile without errors. The includes below are required for this header | |
39 * file to compile successfully | |
40 */ | |
41 | |
42 #include <OMX_Core.h> | |
43 | |
44 /** @defgroup iv OpenMAX IL Imaging and Video Domain | |
45 * Common structures for OpenMAX IL Imaging and Video domains | |
46 * @{ | |
47 */ | |
48 | |
49 | |
50 /** | |
51 * Enumeration defining possible uncompressed image/video formats. | |
52 * | |
53 * ENUMS: | |
54 * Unused : Placeholder value when format is N/A | |
55 * Monochrome : black and white | |
56 * 8bitRGB332 : Red 7:5, Green 4:2, Blue 1:0 | |
57 * 12bitRGB444 : Red 11:8, Green 7:4, Blue 3:0 | |
58 * 16bitARGB4444 : Alpha 15:12, Red 11:8, Green 7:4, Blue 3:0 | |
59 * 16bitARGB1555 : Alpha 15, Red 14:10, Green 9:5, Blue 4:0 | |
60 * 16bitRGB565 : Red 15:11, Green 10:5, Blue 4:0 | |
61 * 16bitBGR565 : Blue 15:11, Green 10:5, Red 4:0 | |
62 * 18bitRGB666 : Red 17:12, Green 11:6, Blue 5:0 | |
63 * 18bitARGB1665 : Alpha 17, Red 16:11, Green 10:5, Blue 4:0 | |
64 * 19bitARGB1666 : Alpha 18, Red 17:12, Green 11:6, Blue 5:0 | |
65 * 24bitRGB888 : Red 24:16, Green 15:8, Blue 7:0 | |
66 * 24bitBGR888 : Blue 24:16, Green 15:8, Red 7:0 | |
67 * 24bitARGB1887 : Alpha 23, Red 22:15, Green 14:7, Blue 6:0 | |
68 * 25bitARGB1888 : Alpha 24, Red 23:16, Green 15:8, Blue 7:0 | |
69 * 32bitBGRA8888 : Blue 31:24, Green 23:16, Red 15:8, Alpha 7:0 | |
70 * 32bitARGB8888 : Alpha 31:24, Red 23:16, Green 15:8, Blue 7:0 | |
71 * YUV411Planar : U,Y are subsampled by a factor of 4 horizontally | |
72 * YUV411PackedPlanar : packed per payload in planar slices | |
73 * YUV420Planar : Three arrays Y,U,V. | |
74 * YUV420PackedPlanar : packed per payload in planar slices | |
75 * YUV420SemiPlanar : Two arrays, one is all Y, the other is U and V | |
76 * YUV422Planar : Three arrays Y,U,V. | |
77 * YUV422PackedPlanar : packed per payload in planar slices | |
78 * YUV422SemiPlanar : Two arrays, one is all Y, the other is U and V | |
79 * YCbYCr : Organized as 16bit YUYV (i.e. YCbYCr) | |
80 * YCrYCb : Organized as 16bit YVYU (i.e. YCrYCb) | |
81 * CbYCrY : Organized as 16bit UYVY (i.e. CbYCrY) | |
82 * CrYCbY : Organized as 16bit VYUY (i.e. CrYCbY) | |
83 * YUV444Interleaved : Each pixel contains equal parts YUV | |
84 * RawBayer8bit : SMIA camera output format | |
85 * RawBayer10bit : SMIA camera output format | |
86 * RawBayer8bitcompressed : SMIA camera output format | |
87 */ | |
88 typedef enum OMX_COLOR_FORMATTYPE { | |
89 OMX_COLOR_FormatUnused, | |
90 OMX_COLOR_FormatMonochrome, | |
91 OMX_COLOR_Format8bitRGB332, | |
92 OMX_COLOR_Format12bitRGB444, | |
93 OMX_COLOR_Format16bitARGB4444, | |
94 OMX_COLOR_Format16bitARGB1555, | |
95 OMX_COLOR_Format16bitRGB565, | |
96 OMX_COLOR_Format16bitBGR565, | |
97 OMX_COLOR_Format18bitRGB666, | |
98 OMX_COLOR_Format18bitARGB1665, | |
99 OMX_COLOR_Format19bitARGB1666, | |
100 OMX_COLOR_Format24bitRGB888, | |
101 OMX_COLOR_Format24bitBGR888, | |
102 OMX_COLOR_Format24bitARGB1887, | |
103 OMX_COLOR_Format25bitARGB1888, | |
104 OMX_COLOR_Format32bitBGRA8888, | |
105 OMX_COLOR_Format32bitARGB8888, | |
106 OMX_COLOR_FormatYUV411Planar, | |
107 OMX_COLOR_FormatYUV411PackedPlanar, | |
108 OMX_COLOR_FormatYUV420Planar, | |
109 OMX_COLOR_FormatYUV420PackedPlanar, | |
110 OMX_COLOR_FormatYUV420SemiPlanar, | |
111 OMX_COLOR_FormatYUV422Planar, | |
112 OMX_COLOR_FormatYUV422PackedPlanar, | |
113 OMX_COLOR_FormatYUV422SemiPlanar, | |
114 OMX_COLOR_FormatYCbYCr, | |
115 OMX_COLOR_FormatYCrYCb, | |
116 OMX_COLOR_FormatCbYCrY, | |
117 OMX_COLOR_FormatCrYCbY, | |
118 OMX_COLOR_FormatYUV444Interleaved, | |
119 OMX_COLOR_FormatRawBayer8bit, | |
120 OMX_COLOR_FormatRawBayer10bit, | |
121 OMX_COLOR_FormatRawBayer8bitcompressed, | |
122 OMX_COLOR_FormatL2, | |
123 OMX_COLOR_FormatL4, | |
124 OMX_COLOR_FormatL8, | |
125 OMX_COLOR_FormatL16, | |
126 OMX_COLOR_FormatL24, | |
127 OMX_COLOR_FormatL32, | |
128 OMX_COLOR_FormatYUV420PackedSemiPlanar, | |
129 OMX_COLOR_FormatYUV422PackedSemiPlanar, | |
130 OMX_COLOR_Format18BitBGR666, | |
131 OMX_COLOR_Format24BitARGB6666, | |
132 OMX_COLOR_Format24BitABGR6666, | |
133 OMX_COLOR_FormatKhronosExtensions = 0x6F000000, /**< Reserved region for int
roducing Khronos Standard Extensions */ | |
134 OMX_COLOR_FormatVendorStartUnused = 0x7F000000, /**< Reserved region for int
roducing Vendor Extensions */ | |
135 OMX_COLOR_FormatMax = 0x7FFFFFFF | |
136 } OMX_COLOR_FORMATTYPE; | |
137 | |
138 | |
139 /** | |
140 * Defines the matrix for conversion from RGB to YUV or vice versa. | |
141 * iColorMatrix should be initialized with the fixed point values | |
142 * used in converting between formats. | |
143 */ | |
144 typedef struct OMX_CONFIG_COLORCONVERSIONTYPE { | |
145 OMX_U32 nSize; /**< Size of the structure in bytes */ | |
146 OMX_VERSIONTYPE nVersion; /**< OMX specification version info */ | |
147 OMX_U32 nPortIndex; /**< Port that this struct applies to */ | |
148 OMX_S32 xColorMatrix[3][3]; /**< Stored in signed Q16 format */ | |
149 OMX_S32 xColorOffset[4]; /**< Stored in signed Q16 format */ | |
150 }OMX_CONFIG_COLORCONVERSIONTYPE; | |
151 | |
152 | |
153 /** | |
154 * Structure defining percent to scale each frame dimension. For example: | |
155 * To make the width 50% larger, use fWidth = 1.5 and to make the width | |
156 * 1/2 the original size, use fWidth = 0.5 | |
157 */ | |
158 typedef struct OMX_CONFIG_SCALEFACTORTYPE { | |
159 OMX_U32 nSize; /**< Size of the structure in bytes */ | |
160 OMX_VERSIONTYPE nVersion; /**< OMX specification version info */ | |
161 OMX_U32 nPortIndex; /**< Port that this struct applies to */ | |
162 OMX_S32 xWidth; /**< Fixed point value stored as Q16 */ | |
163 OMX_S32 xHeight; /**< Fixed point value stored as Q16 */ | |
164 }OMX_CONFIG_SCALEFACTORTYPE; | |
165 | |
166 | |
167 /** | |
168 * Enumeration of possible image filter types | |
169 */ | |
170 typedef enum OMX_IMAGEFILTERTYPE { | |
171 OMX_ImageFilterNone, | |
172 OMX_ImageFilterNoise, | |
173 OMX_ImageFilterEmboss, | |
174 OMX_ImageFilterNegative, | |
175 OMX_ImageFilterSketch, | |
176 OMX_ImageFilterOilPaint, | |
177 OMX_ImageFilterHatch, | |
178 OMX_ImageFilterGpen, | |
179 OMX_ImageFilterAntialias, | |
180 OMX_ImageFilterDeRing, | |
181 OMX_ImageFilterSolarize, | |
182 OMX_ImageFilterKhronosExtensions = 0x6F000000, /**< Reserved region for intr
oducing Khronos Standard Extensions */ | |
183 OMX_ImageFilterVendorStartUnused = 0x7F000000, /**< Reserved region for intr
oducing Vendor Extensions */ | |
184 OMX_ImageFilterMax = 0x7FFFFFFF | |
185 } OMX_IMAGEFILTERTYPE; | |
186 | |
187 | |
188 /** | |
189 * Image filter configuration | |
190 * | |
191 * STRUCT MEMBERS: | |
192 * nSize : Size of the structure in bytes | |
193 * nVersion : OMX specification version information | |
194 * nPortIndex : Port that this structure applies to | |
195 * eImageFilter : Image filter type enumeration | |
196 */ | |
197 typedef struct OMX_CONFIG_IMAGEFILTERTYPE { | |
198 OMX_U32 nSize; | |
199 OMX_VERSIONTYPE nVersion; | |
200 OMX_U32 nPortIndex; | |
201 OMX_IMAGEFILTERTYPE eImageFilter; | |
202 } OMX_CONFIG_IMAGEFILTERTYPE; | |
203 | |
204 | |
205 /** | |
206 * Customized U and V for color enhancement | |
207 * | |
208 * STRUCT MEMBERS: | |
209 * nSize : Size of the structure in bytes | |
210 * nVersion : OMX specification version information | |
211 * nPortIndex : Port that this structure applies to | |
212 * bColorEnhancement : Enable/disable color enhancement | |
213 * nCustomizedU : Practical values: 16-240, range: 0-255, value set for | |
214 * U component | |
215 * nCustomizedV : Practical values: 16-240, range: 0-255, value set for | |
216 * V component | |
217 */ | |
218 typedef struct OMX_CONFIG_COLORENHANCEMENTTYPE { | |
219 OMX_U32 nSize; | |
220 OMX_VERSIONTYPE nVersion; | |
221 OMX_U32 nPortIndex; | |
222 OMX_BOOL bColorEnhancement; | |
223 OMX_U8 nCustomizedU; | |
224 OMX_U8 nCustomizedV; | |
225 } OMX_CONFIG_COLORENHANCEMENTTYPE; | |
226 | |
227 | |
228 /** | |
229 * Define color key and color key mask | |
230 * | |
231 * STRUCT MEMBERS: | |
232 * nSize : Size of the structure in bytes | |
233 * nVersion : OMX specification version information | |
234 * nPortIndex : Port that this structure applies to | |
235 * nARGBColor : 32bit Alpha, Red, Green, Blue Color | |
236 * nARGBMask : 32bit Mask for Alpha, Red, Green, Blue channels | |
237 */ | |
238 typedef struct OMX_CONFIG_COLORKEYTYPE { | |
239 OMX_U32 nSize; | |
240 OMX_VERSIONTYPE nVersion; | |
241 OMX_U32 nPortIndex; | |
242 OMX_U32 nARGBColor; | |
243 OMX_U32 nARGBMask; | |
244 } OMX_CONFIG_COLORKEYTYPE; | |
245 | |
246 | |
247 /** | |
248 * List of color blend types for pre/post processing | |
249 * | |
250 * ENUMS: | |
251 * None : No color blending present | |
252 * AlphaConstant : Function is (alpha_constant * src) + | |
253 * (1 - alpha_constant) * dst) | |
254 * AlphaPerPixel : Function is (alpha * src) + (1 - alpha) * dst) | |
255 * Alternate : Function is alternating pixels from src and dst | |
256 * And : Function is (src & dst) | |
257 * Or : Function is (src | dst) | |
258 * Invert : Function is ~src | |
259 */ | |
260 typedef enum OMX_COLORBLENDTYPE { | |
261 OMX_ColorBlendNone, | |
262 OMX_ColorBlendAlphaConstant, | |
263 OMX_ColorBlendAlphaPerPixel, | |
264 OMX_ColorBlendAlternate, | |
265 OMX_ColorBlendAnd, | |
266 OMX_ColorBlendOr, | |
267 OMX_ColorBlendInvert, | |
268 OMX_ColorBlendKhronosExtensions = 0x6F000000, /**< Reserved region for intro
ducing Khronos Standard Extensions */ | |
269 OMX_ColorBlendVendorStartUnused = 0x7F000000, /**< Reserved region for intro
ducing Vendor Extensions */ | |
270 OMX_ColorBlendMax = 0x7FFFFFFF | |
271 } OMX_COLORBLENDTYPE; | |
272 | |
273 | |
274 /** | |
275 * Color blend configuration | |
276 * | |
277 * STRUCT MEMBERS: | |
278 * nSize : Size of the structure in bytes | |
279 * nVersion : OMX specification version information | |
280 * nPortIndex : Port that this structure applies to | |
281 * nRGBAlphaConstant : Constant global alpha values when global alpha is used | |
282 * eColorBlend : Color blend type enumeration | |
283 */ | |
284 typedef struct OMX_CONFIG_COLORBLENDTYPE { | |
285 OMX_U32 nSize; | |
286 OMX_VERSIONTYPE nVersion; | |
287 OMX_U32 nPortIndex; | |
288 OMX_U32 nRGBAlphaConstant; | |
289 OMX_COLORBLENDTYPE eColorBlend; | |
290 } OMX_CONFIG_COLORBLENDTYPE; | |
291 | |
292 | |
293 /** | |
294 * Hold frame dimension | |
295 * | |
296 * STRUCT MEMBERS: | |
297 * nSize : Size of the structure in bytes | |
298 * nVersion : OMX specification version information | |
299 * nPortIndex : Port that this structure applies to | |
300 * nWidth : Frame width in pixels | |
301 * nHeight : Frame height in pixels | |
302 */ | |
303 typedef struct OMX_FRAMESIZETYPE { | |
304 OMX_U32 nSize; | |
305 OMX_VERSIONTYPE nVersion; | |
306 OMX_U32 nPortIndex; | |
307 OMX_U32 nWidth; | |
308 OMX_U32 nHeight; | |
309 } OMX_FRAMESIZETYPE; | |
310 | |
311 | |
312 /** | |
313 * Rotation configuration | |
314 * | |
315 * STRUCT MEMBERS: | |
316 * nSize : Size of the structure in bytes | |
317 * nVersion : OMX specification version information | |
318 * nPortIndex : Port that this structure applies to | |
319 * nRotation : +/- integer rotation value | |
320 */ | |
321 typedef struct OMX_CONFIG_ROTATIONTYPE { | |
322 OMX_U32 nSize; | |
323 OMX_VERSIONTYPE nVersion; | |
324 OMX_U32 nPortIndex; | |
325 OMX_S32 nRotation; | |
326 } OMX_CONFIG_ROTATIONTYPE; | |
327 | |
328 | |
329 /** | |
330 * Possible mirroring directions for pre/post processing | |
331 * | |
332 * ENUMS: | |
333 * None : No mirroring | |
334 * Vertical : Vertical mirroring, flip on X axis | |
335 * Horizontal : Horizontal mirroring, flip on Y axis | |
336 * Both : Both vertical and horizontal mirroring | |
337 */ | |
338 typedef enum OMX_MIRRORTYPE { | |
339 OMX_MirrorNone = 0, | |
340 OMX_MirrorVertical, | |
341 OMX_MirrorHorizontal, | |
342 OMX_MirrorBoth, | |
343 OMX_MirrorKhronosExtensions = 0x6F000000, /**< Reserved region for introduci
ng Khronos Standard Extensions */ | |
344 OMX_MirrorVendorStartUnused = 0x7F000000, /**< Reserved region for introduci
ng Vendor Extensions */ | |
345 OMX_MirrorMax = 0x7FFFFFFF | |
346 } OMX_MIRRORTYPE; | |
347 | |
348 | |
349 /** | |
350 * Mirroring configuration | |
351 * | |
352 * STRUCT MEMBERS: | |
353 * nSize : Size of the structure in bytes | |
354 * nVersion : OMX specification version information | |
355 * nPortIndex : Port that this structure applies to | |
356 * eMirror : Mirror type enumeration | |
357 */ | |
358 typedef struct OMX_CONFIG_MIRRORTYPE { | |
359 OMX_U32 nSize; | |
360 OMX_VERSIONTYPE nVersion; | |
361 OMX_U32 nPortIndex; | |
362 OMX_MIRRORTYPE eMirror; | |
363 } OMX_CONFIG_MIRRORTYPE; | |
364 | |
365 | |
366 /** | |
367 * Position information only | |
368 * | |
369 * STRUCT MEMBERS: | |
370 * nSize : Size of the structure in bytes | |
371 * nVersion : OMX specification version information | |
372 * nPortIndex : Port that this structure applies to | |
373 * nX : X coordinate for the point | |
374 * nY : Y coordinate for the point | |
375 */ | |
376 typedef struct OMX_CONFIG_POINTTYPE { | |
377 OMX_U32 nSize; | |
378 OMX_VERSIONTYPE nVersion; | |
379 OMX_U32 nPortIndex; | |
380 OMX_S32 nX; | |
381 OMX_S32 nY; | |
382 } OMX_CONFIG_POINTTYPE; | |
383 | |
384 | |
385 /** | |
386 * Frame size plus position | |
387 * | |
388 * STRUCT MEMBERS: | |
389 * nSize : Size of the structure in bytes | |
390 * nVersion : OMX specification version information | |
391 * nPortIndex : Port that this structure applies to | |
392 * nLeft : X Coordinate of the top left corner of the rectangle | |
393 * nTop : Y Coordinate of the top left corner of the rectangle | |
394 * nWidth : Width of the rectangle | |
395 * nHeight : Height of the rectangle | |
396 */ | |
397 typedef struct OMX_CONFIG_RECTTYPE { | |
398 OMX_U32 nSize; | |
399 OMX_VERSIONTYPE nVersion; | |
400 OMX_U32 nPortIndex; | |
401 OMX_S32 nLeft; | |
402 OMX_S32 nTop; | |
403 OMX_U32 nWidth; | |
404 OMX_U32 nHeight; | |
405 } OMX_CONFIG_RECTTYPE; | |
406 | |
407 | |
408 /** | |
409 * Deblocking state; it is required to be set up before starting the codec | |
410 * | |
411 * STRUCT MEMBERS: | |
412 * nSize : Size of the structure in bytes | |
413 * nVersion : OMX specification version information | |
414 * nPortIndex : Port that this structure applies to | |
415 * bDeblocking : Enable/disable deblocking mode | |
416 */ | |
417 typedef struct OMX_PARAM_DEBLOCKINGTYPE { | |
418 OMX_U32 nSize; | |
419 OMX_VERSIONTYPE nVersion; | |
420 OMX_U32 nPortIndex; | |
421 OMX_BOOL bDeblocking; | |
422 } OMX_PARAM_DEBLOCKINGTYPE; | |
423 | |
424 | |
425 /** | |
426 * Stabilization state | |
427 * | |
428 * STRUCT MEMBERS: | |
429 * nSize : Size of the structure in bytes | |
430 * nVersion : OMX specification version information | |
431 * nPortIndex : Port that this structure applies to | |
432 * bStab : Enable/disable frame stabilization state | |
433 */ | |
434 typedef struct OMX_CONFIG_FRAMESTABTYPE { | |
435 OMX_U32 nSize; | |
436 OMX_VERSIONTYPE nVersion; | |
437 OMX_U32 nPortIndex; | |
438 OMX_BOOL bStab; | |
439 } OMX_CONFIG_FRAMESTABTYPE; | |
440 | |
441 | |
442 /** | |
443 * White Balance control type | |
444 * | |
445 * STRUCT MEMBERS: | |
446 * SunLight : Referenced in JSR-234 | |
447 * Flash : Optimal for device's integrated flash | |
448 */ | |
449 typedef enum OMX_WHITEBALCONTROLTYPE { | |
450 OMX_WhiteBalControlOff = 0, | |
451 OMX_WhiteBalControlAuto, | |
452 OMX_WhiteBalControlSunLight, | |
453 OMX_WhiteBalControlCloudy, | |
454 OMX_WhiteBalControlShade, | |
455 OMX_WhiteBalControlTungsten, | |
456 OMX_WhiteBalControlFluorescent, | |
457 OMX_WhiteBalControlIncandescent, | |
458 OMX_WhiteBalControlFlash, | |
459 OMX_WhiteBalControlHorizon, | |
460 OMX_WhiteBalControlKhronosExtensions = 0x6F000000, /**< Reserved region for
introducing Khronos Standard Extensions */ | |
461 OMX_WhiteBalControlVendorStartUnused = 0x7F000000, /**< Reserved region for
introducing Vendor Extensions */ | |
462 OMX_WhiteBalControlMax = 0x7FFFFFFF | |
463 } OMX_WHITEBALCONTROLTYPE; | |
464 | |
465 | |
466 /** | |
467 * White Balance control configuration | |
468 * | |
469 * STRUCT MEMBERS: | |
470 * nSize : Size of the structure in bytes | |
471 * nVersion : OMX specification version information | |
472 * nPortIndex : Port that this structure applies to | |
473 * eWhiteBalControl : White balance enumeration | |
474 */ | |
475 typedef struct OMX_CONFIG_WHITEBALCONTROLTYPE { | |
476 OMX_U32 nSize; | |
477 OMX_VERSIONTYPE nVersion; | |
478 OMX_U32 nPortIndex; | |
479 OMX_WHITEBALCONTROLTYPE eWhiteBalControl; | |
480 } OMX_CONFIG_WHITEBALCONTROLTYPE; | |
481 | |
482 | |
483 /** | |
484 * Exposure control type | |
485 */ | |
486 typedef enum OMX_EXPOSURECONTROLTYPE { | |
487 OMX_ExposureControlOff = 0, | |
488 OMX_ExposureControlAuto, | |
489 OMX_ExposureControlNight, | |
490 OMX_ExposureControlBackLight, | |
491 OMX_ExposureControlSpotLight, | |
492 OMX_ExposureControlSports, | |
493 OMX_ExposureControlSnow, | |
494 OMX_ExposureControlBeach, | |
495 OMX_ExposureControlLargeAperture, | |
496 OMX_ExposureControlSmallApperture, | |
497 OMX_ExposureControlKhronosExtensions = 0x6F000000, /**< Reserved region for
introducing Khronos Standard Extensions */ | |
498 OMX_ExposureControlVendorStartUnused = 0x7F000000, /**< Reserved region for
introducing Vendor Extensions */ | |
499 OMX_ExposureControlMax = 0x7FFFFFFF | |
500 } OMX_EXPOSURECONTROLTYPE; | |
501 | |
502 | |
503 /** | |
504 * White Balance control configuration | |
505 * | |
506 * STRUCT MEMBERS: | |
507 * nSize : Size of the structure in bytes | |
508 * nVersion : OMX specification version information | |
509 * nPortIndex : Port that this structure applies to | |
510 * eExposureControl : Exposure control enumeration | |
511 */ | |
512 typedef struct OMX_CONFIG_EXPOSURECONTROLTYPE { | |
513 OMX_U32 nSize; | |
514 OMX_VERSIONTYPE nVersion; | |
515 OMX_U32 nPortIndex; | |
516 OMX_EXPOSURECONTROLTYPE eExposureControl; | |
517 } OMX_CONFIG_EXPOSURECONTROLTYPE; | |
518 | |
519 | |
520 /** | |
521 * Defines sensor supported mode. | |
522 * | |
523 * STRUCT MEMBERS: | |
524 * nSize : Size of the structure in bytes | |
525 * nVersion : OMX specification version information | |
526 * nPortIndex : Port that this structure applies to | |
527 * nFrameRate : Single shot mode is indicated by a 0 | |
528 * bOneShot : Enable for single shot, disable for streaming | |
529 * sFrameSize : Framesize | |
530 */ | |
531 typedef struct OMX_PARAM_SENSORMODETYPE { | |
532 OMX_U32 nSize; | |
533 OMX_VERSIONTYPE nVersion; | |
534 OMX_U32 nPortIndex; | |
535 OMX_U32 nFrameRate; | |
536 OMX_BOOL bOneShot; | |
537 OMX_FRAMESIZETYPE sFrameSize; | |
538 } OMX_PARAM_SENSORMODETYPE; | |
539 | |
540 | |
541 /** | |
542 * Defines contrast level | |
543 * | |
544 * STRUCT MEMBERS: | |
545 * nSize : Size of the structure in bytes | |
546 * nVersion : OMX specification version information | |
547 * nPortIndex : Port that this structure applies to | |
548 * nContrast : Values allowed for contrast -100 to 100, zero means no change | |
549 */ | |
550 typedef struct OMX_CONFIG_CONTRASTTYPE { | |
551 OMX_U32 nSize; | |
552 OMX_VERSIONTYPE nVersion; | |
553 OMX_U32 nPortIndex; | |
554 OMX_S32 nContrast; | |
555 } OMX_CONFIG_CONTRASTTYPE; | |
556 | |
557 | |
558 /** | |
559 * Defines brightness level | |
560 * | |
561 * STRUCT MEMBERS: | |
562 * nSize : Size of the structure in bytes | |
563 * nVersion : OMX specification version information | |
564 * nPortIndex : Port that this structure applies to | |
565 * nBrightness : 0-100% | |
566 */ | |
567 typedef struct OMX_CONFIG_BRIGHTNESSTYPE { | |
568 OMX_U32 nSize; | |
569 OMX_VERSIONTYPE nVersion; | |
570 OMX_U32 nPortIndex; | |
571 OMX_U32 nBrightness; | |
572 } OMX_CONFIG_BRIGHTNESSTYPE; | |
573 | |
574 | |
575 /** | |
576 * Defines backlight level configuration for a video sink, e.g. LCD panel | |
577 * | |
578 * STRUCT MEMBERS: | |
579 * nSize : Size of the structure in bytes | |
580 * nVersion : OMX specification version information | |
581 * nPortIndex : Port that this structure applies to | |
582 * nBacklight : Values allowed for backlight 0-100% | |
583 * nTimeout : Number of milliseconds before backlight automatically turns | |
584 * off. A value of 0x0 disables backight timeout | |
585 */ | |
586 typedef struct OMX_CONFIG_BACKLIGHTTYPE { | |
587 OMX_U32 nSize; | |
588 OMX_VERSIONTYPE nVersion; | |
589 OMX_U32 nPortIndex; | |
590 OMX_U32 nBacklight; | |
591 OMX_U32 nTimeout; | |
592 } OMX_CONFIG_BACKLIGHTTYPE; | |
593 | |
594 | |
595 /** | |
596 * Defines setting for Gamma | |
597 * | |
598 * STRUCT MEMBERS: | |
599 * nSize : Size of the structure in bytes | |
600 * nVersion : OMX specification version information | |
601 * nPortIndex : Port that this structure applies to | |
602 * nGamma : Values allowed for gamma -100 to 100, zero means no change | |
603 */ | |
604 typedef struct OMX_CONFIG_GAMMATYPE { | |
605 OMX_U32 nSize; | |
606 OMX_VERSIONTYPE nVersion; | |
607 OMX_U32 nPortIndex; | |
608 OMX_S32 nGamma; | |
609 } OMX_CONFIG_GAMMATYPE; | |
610 | |
611 | |
612 /** | |
613 * Define for setting saturation | |
614 * | |
615 * STRUCT MEMBERS: | |
616 * nSize : Size of the structure in bytes | |
617 * nVersion : OMX specification version information | |
618 * nPortIndex : Port that this structure applies to | |
619 * nSaturation : Values allowed for saturation -100 to 100, zero means | |
620 * no change | |
621 */ | |
622 typedef struct OMX_CONFIG_SATURATIONTYPE { | |
623 OMX_U32 nSize; | |
624 OMX_VERSIONTYPE nVersion; | |
625 OMX_U32 nPortIndex; | |
626 OMX_S32 nSaturation; | |
627 } OMX_CONFIG_SATURATIONTYPE; | |
628 | |
629 | |
630 /** | |
631 * Define for setting Lightness | |
632 * | |
633 * STRUCT MEMBERS: | |
634 * nSize : Size of the structure in bytes | |
635 * nVersion : OMX specification version information | |
636 * nPortIndex : Port that this structure applies to | |
637 * nLightness : Values allowed for lightness -100 to 100, zero means no | |
638 * change | |
639 */ | |
640 typedef struct OMX_CONFIG_LIGHTNESSTYPE { | |
641 OMX_U32 nSize; | |
642 OMX_VERSIONTYPE nVersion; | |
643 OMX_U32 nPortIndex; | |
644 OMX_S32 nLightness; | |
645 } OMX_CONFIG_LIGHTNESSTYPE; | |
646 | |
647 | |
648 /** | |
649 * Plane blend configuration | |
650 * | |
651 * STRUCT MEMBERS: | |
652 * nSize : Size of the structure in bytes | |
653 * nVersion : OMX specification version information | |
654 * nPortIndex : Index of input port associated with the plane. | |
655 * nDepth : Depth of the plane in relation to the screen. Higher | |
656 * numbered depths are "behind" lower number depths. | |
657 * This number defaults to the Port Index number. | |
658 * nAlpha : Transparency blending component for the entire plane. | |
659 * See blending modes for more detail. | |
660 */ | |
661 typedef struct OMX_CONFIG_PLANEBLENDTYPE { | |
662 OMX_U32 nSize; | |
663 OMX_VERSIONTYPE nVersion; | |
664 OMX_U32 nPortIndex; | |
665 OMX_U32 nDepth; | |
666 OMX_U32 nAlpha; | |
667 } OMX_CONFIG_PLANEBLENDTYPE; | |
668 | |
669 | |
670 /** | |
671 * Define interlace type | |
672 * | |
673 * STRUCT MEMBERS: | |
674 * nSize : Size of the structure in bytes | |
675 * nVersion : OMX specification version information | |
676 * nPortIndex : Port that this structure applies to | |
677 * bEnable : Enable control variable for this functionality | |
678 * (see below) | |
679 * nInterleavePortIndex : Index of input or output port associated with | |
680 * the interleaved plane. | |
681 * pPlanarPortIndexes[4] : Index of input or output planar ports. | |
682 */ | |
683 typedef struct OMX_PARAM_INTERLEAVETYPE { | |
684 OMX_U32 nSize; | |
685 OMX_VERSIONTYPE nVersion; | |
686 OMX_U32 nPortIndex; | |
687 OMX_BOOL bEnable; | |
688 OMX_U32 nInterleavePortIndex; | |
689 } OMX_PARAM_INTERLEAVETYPE; | |
690 | |
691 | |
692 /** | |
693 * Defines the picture effect used for an input picture | |
694 */ | |
695 typedef enum OMX_TRANSITIONEFFECTTYPE { | |
696 OMX_EffectNone, | |
697 OMX_EffectFadeFromBlack, | |
698 OMX_EffectFadeToBlack, | |
699 OMX_EffectUnspecifiedThroughConstantColor, | |
700 OMX_EffectDissolve, | |
701 OMX_EffectWipe, | |
702 OMX_EffectUnspecifiedMixOfTwoScenes, | |
703 OMX_EffectKhronosExtensions = 0x6F000000, /**< Reserved region for introduci
ng Khronos Standard Extensions */ | |
704 OMX_EffectVendorStartUnused = 0x7F000000, /**< Reserved region for introduci
ng Vendor Extensions */ | |
705 OMX_EffectMax = 0x7FFFFFFF | |
706 } OMX_TRANSITIONEFFECTTYPE; | |
707 | |
708 | |
709 /** | |
710 * Structure used to configure current transition effect | |
711 * | |
712 * STRUCT MEMBERS: | |
713 * nSize : Size of the structure in bytes | |
714 * nVersion : OMX specification version information | |
715 * nPortIndex : Port that this structure applies to | |
716 * eEffect : Effect to enable | |
717 */ | |
718 typedef struct OMX_CONFIG_TRANSITIONEFFECTTYPE { | |
719 OMX_U32 nSize; | |
720 OMX_VERSIONTYPE nVersion; | |
721 OMX_U32 nPortIndex; | |
722 OMX_TRANSITIONEFFECTTYPE eEffect; | |
723 } OMX_CONFIG_TRANSITIONEFFECTTYPE; | |
724 | |
725 | |
726 /** | |
727 * Defines possible data unit types for encoded video data. The data unit | |
728 * types are used both for encoded video input for playback as well as | |
729 * encoded video output from recording. | |
730 */ | |
731 typedef enum OMX_DATAUNITTYPE { | |
732 OMX_DataUnitCodedPicture, | |
733 OMX_DataUnitVideoSegment, | |
734 OMX_DataUnitSeveralSegments, | |
735 OMX_DataUnitArbitraryStreamSection, | |
736 OMX_DataUnitKhronosExtensions = 0x6F000000, /**< Reserved region for introdu
cing Khronos Standard Extensions */ | |
737 OMX_DataUnitVendorStartUnused = 0x7F000000, /**< Reserved region for introdu
cing Vendor Extensions */ | |
738 OMX_DataUnitMax = 0x7FFFFFFF | |
739 } OMX_DATAUNITTYPE; | |
740 | |
741 | |
742 /** | |
743 * Defines possible encapsulation types for coded video data unit. The | |
744 * encapsulation information is used both for encoded video input for | |
745 * playback as well as encoded video output from recording. | |
746 */ | |
747 typedef enum OMX_DATAUNITENCAPSULATIONTYPE { | |
748 OMX_DataEncapsulationElementaryStream, | |
749 OMX_DataEncapsulationGenericPayload, | |
750 OMX_DataEncapsulationRtpPayload, | |
751 OMX_DataEncapsulationKhronosExtensions = 0x6F000000, /**< Reserved region fo
r introducing Khronos Standard Extensions */ | |
752 OMX_DataEncapsulationVendorStartUnused = 0x7F000000, /**< Reserved region fo
r introducing Vendor Extensions */ | |
753 OMX_DataEncapsulationMax = 0x7FFFFFFF | |
754 } OMX_DATAUNITENCAPSULATIONTYPE; | |
755 | |
756 | |
757 /** | |
758 * Structure used to configure the type of being decoded/encoded | |
759 */ | |
760 typedef struct OMX_PARAM_DATAUNITTYPE { | |
761 OMX_U32 nSize; /**< Size of the structure in bytes */ | |
762 OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ | |
763 OMX_U32 nPortIndex; /**< Port that this structure applies to */ | |
764 OMX_DATAUNITTYPE eUnitType; | |
765 OMX_DATAUNITENCAPSULATIONTYPE eEncapsulationType; | |
766 } OMX_PARAM_DATAUNITTYPE; | |
767 | |
768 | |
769 /** | |
770 * Defines dither types | |
771 */ | |
772 typedef enum OMX_DITHERTYPE { | |
773 OMX_DitherNone, | |
774 OMX_DitherOrdered, | |
775 OMX_DitherErrorDiffusion, | |
776 OMX_DitherOther, | |
777 OMX_DitherKhronosExtensions = 0x6F000000, /**< Reserved region for introduci
ng Khronos Standard Extensions */ | |
778 OMX_DitherVendorStartUnused = 0x7F000000, /**< Reserved region for introduci
ng Vendor Extensions */ | |
779 OMX_DitherMax = 0x7FFFFFFF | |
780 } OMX_DITHERTYPE; | |
781 | |
782 | |
783 /** | |
784 * Structure used to configure current type of dithering | |
785 */ | |
786 typedef struct OMX_CONFIG_DITHERTYPE { | |
787 OMX_U32 nSize; /**< Size of the structure in bytes */ | |
788 OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ | |
789 OMX_U32 nPortIndex; /**< Port that this structure applies to */ | |
790 OMX_DITHERTYPE eDither; /**< Type of dithering to use */ | |
791 } OMX_CONFIG_DITHERTYPE; | |
792 | |
793 typedef struct OMX_CONFIG_CAPTUREMODETYPE { | |
794 OMX_U32 nSize; | |
795 OMX_VERSIONTYPE nVersion; | |
796 OMX_U32 nPortIndex; /**< Port that this structure applies to */ | |
797 OMX_BOOL bContinuous; /**< If true then ignore frame rate and emit capture
| |
798 * data as fast as possible (otherwise obey port's
frame rate). */ | |
799 OMX_BOOL bFrameLimited; /**< If true then terminate capture after the port e
mits the | |
800 * specified number of frames (otherwise the port
does not | |
801 * terminate the capture until instructed to do so
by the client). | |
802 * Even if set, the client may manually terminate
the capture prior | |
803 * to reaching the limit. */ | |
804 OMX_U32 nFrameLimit; /**< Limit on number of frames emitted during a ca
pture (only | |
805 * valid if bFrameLimited is set). */ | |
806 } OMX_CONFIG_CAPTUREMODETYPE; | |
807 | |
808 typedef enum OMX_METERINGTYPE { | |
809 | |
810 OMX_MeteringModeAverage, /**< Center-weighted average metering. */ | |
811 OMX_MeteringModeSpot, /**< Spot (partial) metering. */ | |
812 OMX_MeteringModeMatrix, /**< Matrix or evaluative metering. */ | |
813 | |
814 OMX_MeteringKhronosExtensions = 0x6F000000, /**< Reserved region for introdu
cing Khronos Standard Extensions */ | |
815 OMX_MeteringVendorStartUnused = 0x7F000000, /**< Reserved region for introdu
cing Vendor Extensions */ | |
816 OMX_EVModeMax = 0x7fffffff | |
817 } OMX_METERINGTYPE; | |
818 | |
819 typedef struct OMX_CONFIG_EXPOSUREVALUETYPE { | |
820 OMX_U32 nSize; | |
821 OMX_VERSIONTYPE nVersion; | |
822 OMX_U32 nPortIndex; | |
823 OMX_METERINGTYPE eMetering; | |
824 OMX_S32 xEVCompensation; /**< Fixed point value stored as Q16 */ | |
825 OMX_U32 nApertureFNumber; /**< e.g. nApertureFNumber = 2 implies "f/2" -
Q16 format */ | |
826 OMX_BOOL bAutoAperture; /**< Whether aperture number is defined
automatically */ | |
827 OMX_U32 nShutterSpeedMsec; /**< Shutterspeed in milliseconds */ | |
828 OMX_BOOL bAutoShutterSpeed; /**< Whether shutter speed is defined automatica
lly */ | |
829 OMX_U32 nSensitivity; /**< e.g. nSensitivity = 100 implies "ISO 100"
*/ | |
830 OMX_BOOL bAutoSensitivity; /**< Whether sensitivity is defined automaticall
y */ | |
831 } OMX_CONFIG_EXPOSUREVALUETYPE; | |
832 | |
833 /** | |
834 * Focus region configuration | |
835 * | |
836 * STRUCT MEMBERS: | |
837 * nSize : Size of the structure in bytes | |
838 * nVersion : OMX specification version information | |
839 * nPortIndex : Port that this structure applies to | |
840 * bCenter : Use center region as focus region of interest | |
841 * bLeft : Use left region as focus region of interest | |
842 * bRight : Use right region as focus region of interest | |
843 * bTop : Use top region as focus region of interest | |
844 * bBottom : Use bottom region as focus region of interest | |
845 * bTopLeft : Use top left region as focus region of interest | |
846 * bTopRight : Use top right region as focus region of interest | |
847 * bBottomLeft : Use bottom left region as focus region of interest | |
848 * bBottomRight : Use bottom right region as focus region of interest | |
849 */ | |
850 typedef struct OMX_CONFIG_FOCUSREGIONTYPE { | |
851 OMX_U32 nSize; | |
852 OMX_VERSIONTYPE nVersion; | |
853 OMX_U32 nPortIndex; | |
854 OMX_BOOL bCenter; | |
855 OMX_BOOL bLeft; | |
856 OMX_BOOL bRight; | |
857 OMX_BOOL bTop; | |
858 OMX_BOOL bBottom; | |
859 OMX_BOOL bTopLeft; | |
860 OMX_BOOL bTopRight; | |
861 OMX_BOOL bBottomLeft; | |
862 OMX_BOOL bBottomRight; | |
863 } OMX_CONFIG_FOCUSREGIONTYPE; | |
864 | |
865 /** | |
866 * Focus Status type | |
867 */ | |
868 typedef enum OMX_FOCUSSTATUSTYPE { | |
869 OMX_FocusStatusOff = 0, | |
870 OMX_FocusStatusRequest, | |
871 OMX_FocusStatusReached, | |
872 OMX_FocusStatusUnableToReach, | |
873 OMX_FocusStatusLost, | |
874 OMX_FocusStatusKhronosExtensions = 0x6F000000, /**< Reserved region for intr
oducing Khronos Standard Extensions */ | |
875 OMX_FocusStatusVendorStartUnused = 0x7F000000, /**< Reserved region for intr
oducing Vendor Extensions */ | |
876 OMX_FocusStatusMax = 0x7FFFFFFF | |
877 } OMX_FOCUSSTATUSTYPE; | |
878 | |
879 /** | |
880 * Focus status configuration | |
881 * | |
882 * STRUCT MEMBERS: | |
883 * nSize : Size of the structure in bytes | |
884 * nVersion : OMX specification version information | |
885 * nPortIndex : Port that this structure applies to | |
886 * eFocusStatus : Specifies the focus status | |
887 * bCenterStatus : Use center region as focus region of interest | |
888 * bLeftStatus : Use left region as focus region of interest | |
889 * bRightStatus : Use right region as focus region of interest | |
890 * bTopStatus : Use top region as focus region of interest | |
891 * bBottomStatus : Use bottom region as focus region of interest | |
892 * bTopLeftStatus : Use top left region as focus region of interest | |
893 * bTopRightStatus : Use top right region as focus region of interest | |
894 * bBottomLeftStatus : Use bottom left region as focus region of interest | |
895 * bBottomRightStatus : Use bottom right region as focus region of interest | |
896 */ | |
897 typedef struct OMX_PARAM_FOCUSSTATUSTYPE { | |
898 OMX_U32 nSize; | |
899 OMX_VERSIONTYPE nVersion; | |
900 OMX_U32 nPortIndex; | |
901 OMX_FOCUSSTATUSTYPE eFocusStatus; | |
902 OMX_BOOL bCenterStatus; | |
903 OMX_BOOL bLeftStatus; | |
904 OMX_BOOL bRightStatus; | |
905 OMX_BOOL bTopStatus; | |
906 OMX_BOOL bBottomStatus; | |
907 OMX_BOOL bTopLeftStatus; | |
908 OMX_BOOL bTopRightStatus; | |
909 OMX_BOOL bBottomLeftStatus; | |
910 OMX_BOOL bBottomRightStatus; | |
911 } OMX_PARAM_FOCUSSTATUSTYPE; | |
912 | |
913 /** @} */ | |
914 | |
915 #ifdef __cplusplus | |
916 } | |
917 #endif /* __cplusplus */ | |
918 | |
919 #endif | |
920 /* File EOF */ | |
OLD | NEW |