OMX_TI_IVCommon.h revision c322989ae6ff6769490828de1b5eda12b749cce9
1/*
2 * Copyright (c) 2010, Texas Instruments Incorporated
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * *  Redistributions of source code must retain the above copyright
10 *    notice, this list of conditions and the following disclaimer.
11 *
12 * *  Redistributions in binary form must reproduce the above copyright
13 *    notice, this list of conditions and the following disclaimer in the
14 *    documentation and/or other materials provided with the distribution.
15 *
16 * *  Neither the name of Texas Instruments Incorporated nor the names of
17 *    its contributors may be used to endorse or promote products derived
18 *    from this software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32
33/* -------------------------------------------------------------------------- *
34 *
35 * @file:OMX_TI_IVCommon.h
36 * This header defines the structures specific to the config indices of msp_VPPM.
37 *
38 * @path ..\OMAPSW_SysDev\multimedia\omx\khronos1_1\omx_core\inc
39 *
40 * -------------------------------------------------------------------------- */
41
42/* ======================================================================== *!
43 *! Revision History
44 *! ==================================================================== */
45
46#ifndef OMX_TI_IVCommon_H
47#define OMX_TI_IVCommon_H
48
49#ifdef __cplusplus
50extern "C" {
51#endif /* __cplusplus */
52
53#include <OMX_IVCommon.h>
54#include <OMX_Image.h>
55
56
57#define MAX_URI_LENGTH      (OMX_MAX_STRINGNAME_SIZE)
58
59/*======================================================================= */
60/* Enumerated values for operation mode for compressed image
61 *
62 * ENUMS:
63 * Chunk         : Chunk based operation
64 * NonChunk    : Non-chunk based operation
65 */
66 /* ======================================================================= */
67typedef enum OMX_JPEG_COMPRESSEDMODETYPE {
68    OMX_JPEG_ModeChunk = 0,
69    OMX_JPEG_ModeNonChunk
70}OMX_JPEG_COMPRESSEDMODETYPE ;
71
72
73/*======================================================================= */
74/* Enumerated values for operation mode for uncompressed image
75 *
76 * ENUMS:
77 * Frame   :  Frame based operation
78 * Slice   : Slice based operation
79 * Stitch  : For stitching between image frames
80 * Burst   :  For stitching between image frames
81 */
82 /* ======================================================================= */
83typedef enum OMX_JPEG_UNCOMPRESSEDMODETYPE {
84    OMX_JPEG_UncompressedModeFrame = 0,
85    OMX_JPEG_UncompressedModeSlice,
86    OMX_JPEG_UncompressedModeStitch,
87    OMX_JPEG_UncompressedModeBurst
88}OMX_JPEG_UNCOMPRESSEDMODETYPE;
89
90
91
92/*======================================================================= */
93/* Configuration structure for compressed image
94 *
95 * STRUCT MEMBERS:
96 *  nSize                 : Size of the structure in bytes
97 *  nVersion              : OMX specification version information
98 *  nPortIndex            : Port that this structure applies to
99 *  eCompressedImageMode  : Operating mode enumeration for compressed image
100 */
101 /*======================================================================= */
102typedef struct OMX_JPEG_PARAM_COMPRESSEDMODETYPE{
103    OMX_U32 nSize;
104    OMX_VERSIONTYPE nVersion;
105    OMX_U32 nPortIndex;
106    OMX_JPEG_COMPRESSEDMODETYPE eCompressedImageMode;
107}OMX_JPEG_PARAM_COMPRESSEDMODETYPE;
108
109
110
111/*======================================================================= */
112/* Uncompressed image Operating mode configuration structure
113 *
114 * STRUCT MEMBERS:
115 * nSize                     : Size of the structure in bytes
116 * nVersion                  : OMX specification version information
117 * nPortIndex                : Port that this structure applies to
118 * nBurstLength              : No of frames to be dumped in burst mode
119 * eUncompressedImageMode    : uncompressed image mode information
120 * eSourceType               : Image encode souce info
121 * tRotationInfo             : Rotation related information
122 */
123 /*======================================================================= */
124typedef struct OMX_JPEG_PARAM_UNCOMPRESSEDMODETYPE{
125    OMX_U32 nSize;
126    OMX_VERSIONTYPE nVersion;
127    OMX_U32 nPortIndex;
128    OMX_U32 nBurstLength;
129    OMX_JPEG_UNCOMPRESSEDMODETYPE eUncompressedImageMode;
130}OMX_JPEG_PARAM_UNCOMPRESSEDMODETYPE;
131
132
133/*======================================================================= */
134/* Subregion Decode Parameter configuration structure
135 *
136 * STRUCT MEMBERS:
137 * nSize                     : Size of the structure in bytes
138 * nVersion                  : OMX specification version information
139 * nXOrg                     : Sectional decoding X origin
140 * nYOrg                     : Sectional decoding Y origin
141 * nXLength                  : Sectional decoding X length
142 * nYLength                  : Sectional decoding Y length
143 */
144 /*======================================================================= */
145typedef struct OMX_IMAGE_PARAM_DECODE_SUBREGION{
146    OMX_U32 nSize;
147    OMX_VERSIONTYPE nVersion;
148    OMX_U32 nXOrg;
149    OMX_U32 nYOrg;
150    OMX_U32 nXLength;
151    OMX_U32 nYLength;
152}OMX_IMAGE_PARAM_DECODE_SUBREGION;
153
154
155/**
156 * sensor select  types
157 */
158typedef enum OMX_SENSORSELECT{
159        OMX_PrimarySensor = 0,
160        OMX_SecondarySensor,
161        OMX_TI_StereoSensor,
162        OMX_SensorTypeMax = 0x7fffffff
163}OMX_SENSORSELECT;
164
165/**
166 *
167 * Sensor Select
168 */
169typedef  struct OMX_CONFIG_SENSORSELECTTYPE {
170OMX_U32  nSize; /**< Size of the structure in bytes */
171OMX_VERSIONTYPE nVersion; /**< OMX specification version info */
172OMX_U32 nPortIndex; /**< Port that this struct applies to */
173OMX_SENSORSELECT eSensor; /**< sensor select */
174} OMX_CONFIG_SENSORSELECTTYPE;
175
176/**
177 * Flicker cancellation types
178 */
179typedef enum OMX_COMMONFLICKERCANCELTYPE{
180        OMX_FlickerCancelOff = 0,
181        OMX_FlickerCancelAuto,
182        OMX_FlickerCancel50,
183        OMX_FlickerCancel60,
184        OMX_FlickerCancel100,
185        OMX_FlickerCancel120,
186        OMX_FlickerCancelMax = 0x7fffffff
187}OMX_COMMONFLICKERCANCELTYPE;
188
189typedef struct OMX_CONFIG_FLICKERCANCELTYPE {
190   OMX_U32 nSize;
191   OMX_VERSIONTYPE nVersion;
192   OMX_U32 nPortIndex;
193   OMX_COMMONFLICKERCANCELTYPE eFlickerCancel;
194} OMX_CONFIG_FLICKERCANCELTYPE;
195
196
197/**
198 * Sensor caleberation types
199 */
200typedef enum OMX_SENSORCALTYPE{
201        OMX_SensorCalFull = 0,
202        OMX_SensorCalQuick,
203        OMX_SensorCalMax = 0x7fffffff
204}OMX_SENSORCALTYPE;
205
206typedef struct OMX_CONFIG_SENSORCALTYPE {
207   OMX_U32 nSize;
208   OMX_VERSIONTYPE nVersion;
209   OMX_U32 nPortIndex;
210   OMX_SENSORCALTYPE eSensorCal;
211} OMX_CONFIG_SENSORCALTYPE;
212
213/**
214 * Scene mode types
215 */
216typedef enum OMX_SCENEMODETYPE{
217
218        OMX_Manual = 0,
219        OMX_Closeup,
220        OMX_Portrait,
221        OMX_Landscape,
222        OMX_Underwater,
223        OMX_Sport,
224        OMX_SnowBeach,
225        OMX_Mood,
226        OMX_NightPortrait,
227        OMX_NightIndoor,
228        OMX_Fireworks,
229        OMX_Document, /**< for still image */
230        OMX_Barcode, /**< for still image */
231        OMX_SuperNight, /**< for video */
232        OMX_Cine, /**< for video */
233        OMX_OldFilm, /**< for video */
234        OMX_TI_Action,
235        OMX_TI_Beach,
236        OMX_TI_Candlelight,
237        OMX_TI_Night,
238        OMX_TI_Party,
239        OMX_TI_Portrait,
240        OMX_TI_Snow,
241        OMX_TI_Steadyphoto,
242        OMX_TI_Sunset,
243        OMX_TI_Theatre,
244        OMX_SceneModeMax = 0x7fffffff
245}OMX_SCENEMODETYPE;
246
247typedef struct OMX_CONFIG_SCENEMODETYPE {
248   OMX_U32 nSize;
249   OMX_VERSIONTYPE nVersion;
250   OMX_U32 nPortIndex;
251   OMX_SCENEMODETYPE eSceneMode;
252} OMX_CONFIG_SCENEMODETYPE;
253
254 /**
255 * Port specific capture trigger
256 * useful for the usecases with multiple capture ports.
257 *
258 * STRUCT MEMBERS:
259 *  nSize      : Size of the structure in bytes
260 *  nVersion   : OMX specification version information
261 *  nPortIndex : Port that this structure applies to
262 *  bExtCapturing : Start Captre at the specified port. Can be queried to know the status of a specific port.
263 */
264typedef struct OMX_CONFIG_EXTCAPTURING {
265    OMX_U32 nSize;
266    OMX_VERSIONTYPE nVersion;
267    OMX_U32 nPortIndex;
268    OMX_BOOL bExtCapturing;
269} OMX_CONFIG_EXTCAPTURING;
270
271
272 /**
273 * Digital Zoom Speed
274 *
275 * STRUCT MEMBERS:
276 *  nSize      : Size of the structure in bytes
277 *  nVersion   : OMX specification version information
278 *  nPortIndex : Port that this structure applies to
279 *  nDigitalZoomSpeed      :  Optical zoom speed level. Special values:
280 *      0 - stop current movement
281 *      values from 1 to 254 are mapped proportionally to supported zoom speeds inside optical zoom driver.
282 *      So 1 is slowest available optical zoom speed and 254 is fastest available optical zoom speed
283 *      255 - default optical zoom speed value
284 */
285typedef struct OMX_CONFIG_DIGITALZOOMSPEEDTYPE {
286   OMX_U32 nSize;
287   OMX_VERSIONTYPE nVersion;
288   OMX_U32 nPortIndex;
289   OMX_U8 nDigitalZoomSpeed;
290} OMX_CONFIG_DIGITALZOOMSPEEDTYPE;
291
292
293 /**
294 * Digital Zoom Target
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 *  nDigitalZoomTarget      :  Default and minimum is 0. Maximum is determined by the current supported range
301 */
302
303typedef struct OMX_CONFIG_DIGITALZOOMTARGETTYPE {
304   OMX_U32 nSize;
305   OMX_VERSIONTYPE nVersion;
306   OMX_U32 nPortIndex;
307   OMX_U32 nDigitalZoomTarget;
308} OMX_CONFIG_DIGITALZOOMTARGETTYPE;
309
310
311/**
312* Scale quality enums
313*/
314typedef enum OMX_SCALEQUALITY{
315        OMX_DefaultScaling = 0, /** <default scaling if nothing is specified > */
316        OMX_BetterScaling,   /** <better scaling> */
317        OMX_BestScaling,  /** <best  scaling> */
318        OMX_AutoScalingQuality,  /** <auto scaling quality> */
319        OMX_FastScaling,   /** <fast scaling, prioritizes speed> */
320        OMX_ScaleQualityMax = 0x7fffffff
321}OMX_SCALEQUALITY;
322
323/**
324* Scaling Quality Mode
325*/
326typedef enum OMX_SCALEQUALITYMODE{
327        OMX_SingleFrameScalingMode = 0, /** <default > */
328        OMX_MultiFrameScalingMode,   /** <better scaling> */
329        OMX_AutoScalingMode,  /** <best  scaling> */
330        OMX_ScaleModeMax = 0x7fffffff
331}OMX_SCALEQUALITYMODE;
332
333 /**
334 * Rescale quality control type
335 *
336 * STRUCT MEMBERS:
337 *  nSize      : Size of the structure in bytes
338 *  nVersion   : OMX specification version information
339 *  eScaleQuality : controls the quality level.
340 *  eScaleQualityMode      :  controls the scaling algo types
341 */
342typedef struct OMX_CONFIG_SCALEQUALITYTYPE {
343    OMX_U32 nSize;
344    OMX_VERSIONTYPE nVersion;
345    OMX_U32 nPortIndex;
346    OMX_SCALEQUALITY eScaleQuality;
347    OMX_SCALEQUALITYMODE eScaleQualityMode;
348} OMX_CONFIG_SCALEQUALITYTYPE;
349
350/**
351* Smooth Zoom mode enum
352* Starts or stops the Smooth Zoom.  Selecting INCREASE will cause an increasing digital zoom factor (increased cropping),
353* with a shrinking viewable area and crop height percentage.  Selecting DECREASE will cause a decreasing digital zoom (decreased cropping),
354* with a growing viewable area and crop height percentage.  The CaptureCropHeight will continue to update based on the SmoothZoomRate until
355* the SmoothZoomMin or SmoothZoomMax zoom step is reached, the framework minimum zoom step is reached, the SmoothZoomRate becomes 0,
356* or the SmoothZoomMode is set to OFF.
357* NOTE: The message payload includes all parts of the message that is NOT part of the message header as listed for the CAM_SEND_DATA message.
358*/
359typedef enum OMX_SMOOTHZOOMMODE{
360    OMX_Off=0, /**< default OFF */
361    OMX_Increase,
362    OMX_Decrease
363}OMX_SMOOTHZOOMMODE;
364
365
366 /**
367 * Rescale quality control type
368 *
369 * STRUCT MEMBERS:
370 *  nSize      : Size of the structure in bytes
371 *  nVersion   : OMX specification version information
372 *  eSmoothZoomMode : controls the smooth zoom feature.
373 *  nSmoothZoomRate      :  Values from 0 to 65535 which represents percentage to increase per second, where 65535 = 100%, and 0 = 0%.
374 *  nSmoothZoomQuantize:
375 *  nSmoothZoomThresh
376 *  nSmoothZoomMin
377 *  nSmoothZoomMax
378 */
379typedef struct OMX_CONFIG_SMOOTHZOOMTYPE {
380    OMX_U32 nSize;
381    OMX_VERSIONTYPE nVersion;
382    OMX_U32 nPortIndex;
383    OMX_SMOOTHZOOMMODE eSmoothZoomMode;
384    OMX_U32 nSmoothZoomRate;
385    OMX_U32 nSmoothZoomQuantize;
386    OMX_U32 nSmoothZoomThresh;
387    OMX_U32 nSmoothZoomMin;
388    OMX_U32 nSmoothZoomMax;
389} OMX_CONFIG_SMOOTHZOOMTYPE;
390
391/**
392 * Enumeration of possible Extended image filter types for OMX_CONFIG_IMAGEFILTERTYPE
393 */
394typedef enum OMX_EXTIMAGEFILTERTYPE {
395    OMX_ImageFilterSepia = 0x7F000001,
396    OMX_ImageFilterGrayScale,
397    OMX_ImageFilterNatural,
398    OMX_ImageFilterVivid,
399    OMX_ImageFilterColourSwap,
400    OMX_ImageFilterOutOfFocus,
401    OMX_ImageFilterWaterColour,
402    OMX_ImageFilterPastel,
403    OMX_ImageFilterFilm,
404    OMX_TI_ImageFilterBlackWhite,
405    OMX_TI_ImageFilterWhiteBoard,
406    OMX_TI_ImageFilterBlackBoard,
407    OMX_TI_ImageFilterAqua,
408    OMX_TI_ImageFilterPosterize
409} OMX_EXTIMAGEFILTERTYPE;
410
411
412/**
413 * Image filter configuration extended
414 *
415 * STRUCT MEMBERS:
416 *  nSize        : Size of the structure in bytes
417 *  nVersion     : OMX specification version information
418 *  nPortIndex   : Port that this structure applies to
419 *  bBlemish : Enable/Disable Blemish correction
420 */
421typedef struct OMX_CONFIG_BLEMISHTYPE {
422    OMX_U32 nSize;
423    OMX_VERSIONTYPE nVersion;
424    OMX_U32 nPortIndex;
425    OMX_BOOL bBlemish;
426} OMX_CONFIG_BLEMISHTYPE;
427
428/**
429 * Enumeration of Bracket types
430 * OMX_BracketExposureRelativeInEV:
431 *      Exposure value is changed relative to the value set by automatic exposure.
432 *      nBracketStartValue and nBracketStep are in Q16. Increment is additive.
433 * OMX_BracketExposureAbsoluteMs:
434 *      Exposure value is changed in absolute value in ms.
435 *      nBracketStartValue and nBracketStep are in Q16. Increment is multiplicative.
436 * OMX_BracketFocusRelative:
437 *      Focus is adjusted relative to the focus set by auto focus.
438 *      The value is S32 integer, and is the same as adjusting nFocusSteps of OMX_IMAGE_CONFIG_FOCUSCONTROLTYPE relatively.
439 *      Increment is additive.
440 * OMX_BracketFocusAbsolute:
441 *      Focus position is adjusted absolutely. It is the same as setting nFocusSteps of
442 *      OMX_IMAGE_CONFIG_FOCUSCONTROLTYPE relatively for each captures.
443 *      The value should be interpreted as U32 value.  Increment is additive.
444 * OMX_BracketFlashPower:
445 *      Power of flash is adjusted relative to the automatic level. Increment is multiplicative.
446 * OMX_BracketAperture:
447 *      Aperture number relative to the automatic setting. Data in Q16 format. Increment is multiplicative.
448 * OMX_BracketTemporal:
449 *      To suppport temporal bracketing.
450 */
451typedef enum OMX_BRACKETMODETYPE {
452    OMX_BracketExposureRelativeInEV = 0,
453    OMX_BracketExposureAbsoluteMs,
454    OMX_BracketFocusRelative,
455    OMX_BracketFocusAbsolute,
456    OMX_BracketFlashPower,
457    OMX_BracketAperture,
458    OMX_BracketTemporal,
459    OMX_BrackerTypeKhronosExtensions = 0x6f000000,
460    OMX_BrackerTypeVendorStartUnused = 0x7f000000,
461    OMX_BracketTypeMax = 0x7FFFFFFF
462} OMX_BRACKETMODETYPE;
463
464typedef struct OMX_CONFIG_BRACKETINGTYPE {
465    OMX_U32 nSize;
466    OMX_VERSIONTYPE nVersion;
467    OMX_U32 nPortIndex;
468    OMX_BRACKETMODETYPE eBracketMode;
469    OMX_U32 nNbrBracketingValues;
470    OMX_S32 nBracketValues[10]; /**< 10 can be assumed */
471} OMX_CONFIG_BRACKETINGTYPE;
472
473
474/**
475 * Capture mode types
476 * Note: this list could get extended modified based on the type of interenal use-case pipelines implemented within the camera component.
477 *
478 *       OMX_CaptureImageHighSpeedBurst = 0,
479 *       OMX_CaptureImageHighSpeedTemporalBracketing,
480 *       OMX_CaptureImageProfileBase(Base):
481 *       	Base one almost same as Highspeed one.
482 *       OMX_CaptureImageProfileLowLight1(LL1):
483 *       	Includes NSF2 in addition to Base processing
484 *       OMX_CaptureImageProfileLowLight2(LL2):
485 *       	Includes NSF2 and LBCE in addition to Base processing.
486 *       OMX_CaptureImageProfileOpticalCorr1(OC1):
487 *       	Includes LDC in addition to Base processing.
488 *       OMX_CaptureImageProfileOpticalCorr2(OC2):
489 *       	Includes LDC and CAC in addition to Base processing.
490 *       OMX_CaptureImageProfileExtended1(Ext1):
491 *       	Includes NSF2, LBCE, LDC, and CAC in addition to Base
492 *       OMX_CaptureStereoImageCapture:
493 *       	Stereo image capture use-case.
494 *       OMX_CaptureImageMemoryInput:
495 *       	need to take sensor input from INPUT port.
496 *       OMX_CaptureVideo:
497 *       OMX_CaptureHighSpeedVideo:
498 *       OMX_CaptureVideoMemoryInput:
499 *
500 */
501typedef enum OMX_CAMOPERATINGMODETYPE {
502        OMX_CaptureImageHighSpeedBurst = 0,
503        OMX_CaptureImageHighSpeedTemporalBracketing,
504        OMX_CaptureImageProfileBase,
505        OMX_CaptureImageProfileLowLight1,
506        OMX_CaptureImageProfileLowLight2,
507        OMX_CaptureImageProfileOpticalCorr1,
508        OMX_CaptureImageProfileOpticalCorr2,
509        OMX_CaptureImageProfileExtended1,
510	OMX_CaptureStereoImageCapture,
511        OMX_CaptureImageMemoryInput,
512        OMX_CaptureVideo,
513        OMX_CaptureHighSpeedVideo,
514        OMX_CaptureVideoMemoryInput,
515        OMX_TI_CaptureDummy,
516        OMX_TI_CaptureGestureRecognition,
517        OMX_TI_CaptureImageProfileZeroShutterLag,
518        OMX_CamOperatingModeMax = 0x7fffffff
519} OMX_CAMOPERATINGMODETYPE;
520/**
521 * Capture mode setting: applicable to multi shot capture also including bracketing.
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 *  eCamOperatingMode : specifies the camera operating mode.
528 */
529typedef struct OMX_CONFIG_CAMOPERATINGMODETYPE {
530   OMX_U32 nSize;
531   OMX_VERSIONTYPE nVersion;
532   OMX_CAMOPERATINGMODETYPE eCamOperatingMode;
533} OMX_CONFIG_CAMOPERATINGMODETYPE;
534
535
536/**
537 * Capture mode setting: applicable to multi shot capture also including bracketing.
538 *
539 * STRUCT MEMBERS:
540 *  nSize        : Size of the structure in bytes
541 *  nVersion     : OMX specification version information
542 *  nPortIndex   : Port that this structure applies to
543 *  nFrameRate   : when bContinuous is FALSE, need to define the frame rate of the muti-shot scenario. Since this would be applicable to IMAGE domain port, there is no port specific frame rate.
544 *  nFrameBefore :
545 * 	is specifying how many frames before the capture trigger shall be used.
546 * 	It is implementation dependent how many is supported. This shall only be supported for images and not for video frames.
547 * bPrepareCapture :
548 *	should be set to true when nFrameBefore is greater than zero and before capturing of before-frames should start.
549 *	The component is not allowed to deliver buffers until capturing starts. This shall only be supported for images and not for video frames.
550 * bEnableBracketing :
551 *	should be enabled when bracketing is used. In bracketing mode, one parameter can be changed per each capture.
552 * tBracketConfigType :
553 *	specifies bracket mode to use. Valid only when bEnableBracketing is set.
554 */
555typedef struct OMX_CONFIG_EXTCAPTUREMODETYPE {
556    OMX_U32 nSize;
557    OMX_VERSIONTYPE nVersion;
558    OMX_U32 nPortIndex;
559    OMX_U32 nFrameRate;
560    OMX_U32 nFrameBefore;
561    OMX_BOOL bPrepareCapture;
562    OMX_BOOL bEnableBracketing;
563    OMX_CONFIG_BRACKETINGTYPE tBracketConfigType;
564} OMX_CONFIG_EXTCAPTUREMODETYPE;
565
566/**
567 * For Extended Focus region Type -
568 */
569typedef struct OMX_CONFIG_EXTFOCUSREGIONTYPE {
570    OMX_U32 nSize;
571    OMX_VERSIONTYPE nVersion;
572    OMX_U32 nPortIndex;
573    OMX_U32 nRefPortIndex;
574    OMX_S32 nLeft;
575    OMX_S32 nTop;
576    OMX_U32 nWidth;
577    OMX_U32 nHeight;
578} OMX_CONFIG_EXTFOCUSREGIONTYPE;
579
580/**
581 * Digital Flash Control
582 * STRUCT MEMBERS:
583 *  nSize        : Size of the structure in bytes
584 *  nVersion     : OMX specification version information
585 *  nPortIndex   : Port that this structure applies to
586 *  bDigitalFlash : Digital flash type Enable/Disable -
587 * Specifies whether the digital flash algorithm is enabled or disabled. This overrides the contrast and brightness settings.
588 */
589typedef struct OMX_CONFIG_DIGITALFLASHTYPE {
590    OMX_U32 nSize;
591    OMX_VERSIONTYPE nVersion;
592    OMX_U32 nPortIndex;
593    OMX_BOOL bDigitalFlash;
594} OMX_CONFIG_DIGITALFLASHTYPE;
595
596
597
598/**
599 * Privacy Indicator Enable/Disable
600 * STRUCT MEMBERS:
601 *  nSize        : Size of the structure in bytes
602 *  nVersion     : OMX specification version information
603 *  nPortIndex   : Port that this structure applies to
604 *  bPrivacyIndicator :
605 *        Specifies whether the flash should be used to indicate image or video capture. When flash is not used for exposure,
606 *        flash will be activated after exposure to indicate image capture.
607 *        If video light is not used, the flash can be blinking or constant at low intensity to indicate capture but not affect exposure.
608 *        Specifies whether the digital flash algorithm is enabled or disabled. This overrides the contrast and brightness settings.
609 */
610typedef struct OMX_CONFIG_PRIVACYINDICATOR {
611    OMX_U32 nSize;
612    OMX_VERSIONTYPE nVersion;
613    OMX_U32 nPortIndex;
614    OMX_BOOL bPrivacyIndicator;
615} OMX_CONFIG_PRIVACYINDICATOR;
616
617
618/**
619 * Privacy Indicator Enable/Disable
620 * STRUCT MEMBERS:
621 *  nSize        : Size of the structure in bytes
622 *  nVersion     : OMX specification version information
623 *  nPortIndex   : Port that this structure applies to
624 *  bTorchMode :
625 *        Enable/Disable
626 *      nIntensityLevel : relative intensity from 0 - 100
627 *      nDuration : duration in msec
628 */
629typedef struct OMX_CONFIG_TORCHMODETYPE {
630    OMX_U32 nSize;
631    OMX_VERSIONTYPE nVersion;
632    OMX_U32 nPortIndex;
633    OMX_BOOL bTorchMode;
634    OMX_U32 nIntensityLevel;
635    OMX_U32 nDuration;
636} OMX_CONFIG_TORCHMODETYPE;
637
638
639
640/**
641 * Privacy Indicator Enable/Disable
642 * DISABLE - Fire the xenon flash in the usual manner
643 * ENABLE - Reduce the light intensity of the main flash (ex 1EV)
644 *
645 * STRUCT MEMBERS:
646 *  nSize        : Size of the structure in bytes
647 *  nVersion     : OMX specification version information
648 *  nPortIndex   : Port that this structure applies to
649 *  bSlowSync :
650 *        Enable - OMX_TRUE/Disable - OMX_FALSE
651 */
652typedef struct OMX_CONFIG_SLOWSYNCTYPE {
653    OMX_U32 nSize;
654    OMX_VERSIONTYPE nVersion;
655    OMX_U32 nPortIndex;
656    OMX_BOOL bSlowSync;
657} OMX_CONFIG_SLOWSYNCTYPE;
658
659
660/**
661 * Focus control extended enums. use this along with OMX_IMAGE_CONFIG_FOCUSCONTROLTYPE
662 */
663typedef enum OMX_IMAGE_EXTFOCUSCONTROLTYPE {
664    OMX_IMAGE_FocusControlAutoMacro = 0x7F000001, /**< Reserved region for introducing Vendor Extensions */
665    OMX_IMAGE_FocusControlAutoInfinity,
666    OMX_IMAGE_FocusControlHyperfocal,
667    OMX_IMAGE_FocusControlPortrait, /**< from Xena */
668    OMX_IMAGE_FocusControlExtended, /**< from Xena */
669    OMX_IMAGE_FocusControlContinousNormal, /**< from Xena */
670    OMX_IMAGE_FocusControlContinousExtended /**< from Xena */
671} OMX_IMAGE_EXTFOCUSCONTROLTYPE;
672
673
674
675/**
676 * Specifies whether the LED can be used to assist in autofocus, due to low lighting conditions.
677 * ENABLE means use as determined by the auto exposure algorithm.
678 *
679 * STRUCT MEMBERS:
680 *  nSize        : Size of the structure in bytes
681 *  nVersion     : OMX specification version information
682 *  nPortIndex   : Port that this structure applies to
683 *  bFocusAssist :
684 *        Enable - OMX_TRUE/Disable - OMX_FALSE
685 */
686typedef struct OMX_CONFIG_FOCUSASSISTTYPE {
687    OMX_U32 nSize;
688    OMX_VERSIONTYPE nVersion;
689    OMX_U32 nPortIndex;
690    OMX_BOOL bFocusAssist;
691} OMX_CONFIG_FOCUSASSISTTYPE;
692
693
694
695/**
696 *for locking the focus
697 *
698 * STRUCT MEMBERS:
699 *  nSize        : Size of the structure in bytes
700 *  nVersion     : OMX specification version information
701 *  nPortIndex   : Port that this structure applies to
702 *  bFocusLock :
703 *        Enable - OMX_TRUE/Disable - OMX_FALSE
704 */
705typedef struct OMX_CONFIG_FOCUSLOCKTYPE {
706    OMX_U32 nSize;
707    OMX_VERSIONTYPE nVersion;
708    OMX_U32 nPortIndex;
709    OMX_BOOL bFocusLock;
710} OMX_CONFIG_FOCUSLOCKTYPE;
711
712
713/**
714 *for locking the White balance
715 *
716 * STRUCT MEMBERS:
717 *  nSize        : Size of the structure in bytes
718 *  nVersion     : OMX specification version information
719 *  nPortIndex   : Port that this structure applies to
720 *  bWhiteBalanceLock :
721 *        Enable - OMX_TRUE/Disable - OMX_FALSE
722 */
723typedef struct OMX_CONFIG_WHITEBALANCELOCKTYPE {
724    OMX_U32 nSize;
725    OMX_VERSIONTYPE nVersion;
726    OMX_U32 nPortIndex;
727    OMX_BOOL bWhiteBalanceLock;
728} OMX_CONFIG_WHITEBALANCELOCKTYPE;
729
730/**
731 *for locking the Exposure
732 *
733 * STRUCT MEMBERS:
734 *  nSize        : Size of the structure in bytes
735 *  nVersion     : OMX specification version information
736 *  nPortIndex   : Port that this structure applies to
737 *  bExposureLock :
738 *        Enable - OMX_TRUE/Disable - OMX_FALSE
739 */
740typedef struct OMX_CONFIG_EXPOSURELOCKTYPE {
741    OMX_U32 nSize;
742    OMX_VERSIONTYPE nVersion;
743    OMX_U32 nPortIndex;
744    OMX_BOOL bExposureLock;
745} OMX_CONFIG_EXPOSURELOCKTYPE;
746
747/**
748 *for locking the Exposure
749 *  Simultaneously lock focus, white balance and exposure (and relevant other settings).
750 *
751 * STRUCT MEMBERS:
752 *  nSize        : Size of the structure in bytes
753 *  nVersion     : OMX specification version information
754 *  nPortIndex   : Port that this structure applies to
755 *  bAllLock :
756 *        Enable - OMX_TRUE/Disable - OMX_FALSE
757 */
758typedef struct OMX_CONFIG_ALLLOCKTYPE {
759    OMX_U32 nSize;
760    OMX_VERSIONTYPE nVersion;
761    OMX_U32 nPortIndex;
762    OMX_BOOL bAllLock;
763} OMX_CONFIG_ALLLOCKTYPE;
764
765/**
766 *for locking
767 *  Simultaneously lock focus, white balance and exposure (and relevant other settings).
768 *
769 * STRUCT MEMBERS:
770 *  nSize        : Size of the structure in bytes
771 *  nVersion     : OMX specification version information
772 *  nPortIndex   : Port that this structure applies to
773 *  bLock :
774 *        Enable - OMX_TRUE/Disable - OMX_FALSE
775 *  bAtCapture:
776 *
777 */
778typedef struct OMX_IMAGE_CONFIG_LOCKTYPE {
779    OMX_U32 nSize;
780    OMX_VERSIONTYPE nVersion;
781    OMX_U32 nPortIndex;
782    OMX_BOOL bLock;
783    OMX_BOOL bAtCapture;
784} OMX_IMAGE_CONFIG_LOCKTYPE;
785
786/**
787 * processig level types enum
788 */
789typedef enum OMX_PROCESSINGLEVEL{
790        OMX_Min = 0,
791        OMX_Low,
792        OMX_Medium,
793        OMX_High,
794        OMX_Max,
795        OMX_ProcessingLevelMax = 0x7fffffff
796}OMX_PROCESSINGLEVEL;
797
798/**
799 *processing level type
800 *  Simultaneously lock focus, white balance and exposure (and relevant other settings).
801 *
802 * STRUCT MEMBERS:
803 *  nSize        : Size of the structure in bytes
804 *  nVersion     : OMX specification version information
805 *  nPortIndex   : Port that this structure applies to
806 *  nLevel :
807 *               nLevel hinting processing amount. Range of values is -100 to 100.
808 *               0 causes no change to the image.  Increased values cause increased processing to occur, with 100 applying maximum processing.
809 *               Negative values have the opposite effect of positive values.
810 *  bAuto:
811 *		sets if the processing should be applied according to input data.
812 		It is allowed to combine the hint level with the auto setting,
813 *		i.e. to give a bias to the automatic setting. When set to false, the processing should not take input data into account.
814 */
815
816typedef struct OMX_IMAGE_CONFIG_PROCESSINGLEVELTYPE {
817OMX_U32 nSize;
818OMX_VERSIONTYPE nVersion;
819OMX_U32 nPortIndex;
820OMX_S32 nLevel;
821OMX_BOOL bAuto;
822} OMX_IMAGE_CONFIG_PROCESSINGLEVELTYPE;
823
824
825/**
826 * White Balance control type extended enums - to be used along with the structure @OMX_CONFIG_WHITEBALCONTROLTYPE
827 *
828 *
829 *
830 */
831typedef enum OMX_EXTWHITEBALCONTROLTYPE {
832    OMX_WhiteBalControlFacePriorityMode = OMX_WhiteBalControlVendorStartUnused + 1, /**<  */
833    OMX_TI_WhiteBalControlSunset,
834    OMX_TI_WhiteBalControlShade,
835    OMX_TI_WhiteBalControlTwilight,
836    OMX_TI_WhiteBalControlWarmFluorescent
837} OMX_EXTWHITEBALCONTROLTYPE;
838
839/**
840 *white balance gain type
841 *  xWhiteBalanceGain and xWhiteBalanceOffset represents gain and offset for R, Gr, Gb, B channels respectively in Q16 format. \
842 *  For example, new red pixel value = xWhiteBalanceGain[1]* the current pixel value + xWhiteBalanceOffset[1].
843 *  All values assume that maximum value is 255. If internal implementation uses higher dynamic range, this value should be adjusted internally.
844 *  nWhiteThreshhold  represents thresholds for "white" area measurments in Q16 format.
845 *
846 * STRUCT MEMBERS:
847 *  nSize        : Size of the structure in bytes
848 *  nVersion     : OMX specification version information
849 *  nPortIndex   : Port that this structure applies to
850 *
851 */
852typedef struct OMX_CONFIG_WHITEBALGAINTYPE {
853    OMX_U32 nSize;
854    OMX_VERSIONTYPE nVersion;
855    OMX_U32 nPortIndex;
856    OMX_S32 xWhiteBalanceGain[4];
857    OMX_S32 xWhiteBalanceOffset[4];
858    OMX_S32 nWhiteThreshhold[4];
859} OMX_CONFIG_WHITEBALGAINTYPE;
860
861/**
862 *  This structure represents linear color conversion from one space to another.  For example, to conversion from one RGB color into another RGB color space can be represented as
863 *  R' =  xColorMatrix[1][1]*R + xColorMatrix[1][2]*G + xColorMatrix[1][3]*B + xColorOffset[1]
864 *  G' = xColorMatrix[2][1]*R + xColorMatrix[2][2]*G + xColorMatrix[2][3]*B + xColorOffset[2]
865 *  B' = xColorMatrix[3][1]*R + xColorMatrix[3][2]*G + xColorMatrix[3][3]*B + xColorOffset[3]
866 *  Both xColorMatrix and xColorOffset are represented as Q16 value.
867 *  bFullColorRange represents represents whether valid range of color is 0 to 255 (when set to TRUE) or 16 to 235 (for FALSE).
868 *  Again all values assume that maximum value is 255. If internal implementation uses higher dynamic range, this value should be adjusted internally.
869 *
870 *
871 * STRUCT MEMBERS:
872 *  nSize        : Size of the structure in bytes
873 *  nVersion     : OMX specification version information
874 *  nPortIndex   : Port that this structure applies to
875 *
876 */
877typedef struct OMX_CONFIG_EXT_COLORCONVERSIONTYPE {
878    OMX_U32 nSize;
879    OMX_VERSIONTYPE nVersion;
880    OMX_U32 nPortIndex;
881    OMX_S32 xColorMatrix[3][3];
882    OMX_S32 xColorOffset[3];
883    OMX_BOOL bFullColorRange;
884}OMX_CONFIG_EXT_COLORCONVERSIONTYPE;
885
886
887/**
888 * xGamma represents lool-up table for gamma correction in Q16 format.
889 * All values assume that maximum value is 255. If internal implementation uses higher dynamic range, this value should be adjusted internally.
890 *
891 *
892 *
893 * STRUCT MEMBERS:
894 *  nSize        : Size of the structure in bytes
895 *  nVersion     : OMX specification version information
896 *  nPortIndex   : Port that this structure applies to
897 *
898 */
899typedef struct OMX_CONFIG_GAMMATABLETYPE {
900    OMX_U32 nSize;
901    OMX_VERSIONTYPE nVersion;
902    OMX_U32 nPortIndex;
903    OMX_U32 xGamma[3][256];
904}OMX_CONFIG_GAMMATABLETYPE;
905
906
907
908/**
909 * processig types
910 */
911typedef enum OMX_PROCESSINGTYPE{
912        OMX_BloomingReduction = 0,
913        OMX_Denoise,
914        OMX_Sharpening,
915        OMX_Deblurring,
916        OMX_Demosaicing,
917        OMX_ContrastEnhancement,
918        OMX_ProcessingTypeMax = 0x7fffffff
919}OMX_PROCESSINGTYPE;
920
921
922typedef  struct OMX_CONFIGPROCESSINGORDERTYPE {
923OMX_U32  nSize; /**< Size of the structure in bytes */
924OMX_VERSIONTYPE nVersion; /**< OMX specification version info */
925OMX_U32 nPortIndex; /**< Port that this struct applies to */
926OMX_U32 nIndex;
927OMX_PROCESSINGTYPE eProc;
928} OMX_CONFIGPROCESSINGORDERTYPE;
929
930/**
931 * HIST TYPE
932 */
933typedef enum OMX_HISTTYPE{
934        OMX_HistControlLuminance = 0, /**< Luminance histogram is calculated (Y)*/
935        OMX_HistControlColorComponents, /**< A histogram per color component (R, G, B) is calculated*/
936        OMX_HistControlChrominanceComponents /**< A histogram per chrominance component (Cb, Cr) is calculated.*/
937}OMX_HISTTYPE;
938
939/**
940 * Histogram Setting
941 *  nPortIndex is an output port. The port index decides on which port the extra data structur is sent on.
942 *  bFrameLimited is a Boolean used to indicate if measurement shall be terminated after the specified number of
943 *  frames if true frame limited measurement is enabled; otherwise the port does not terminate measurement until
944 *  instructed to do so by the client.
945 *  nFrameLimit is the limit on number of frames measured, this parameter is only valid if bFrameLimited is enabled.
946 *  bMeasure is a Boolean that should be set to true when measurement shall begin, otherwise set to false. Query will give status information on if measurement is ongoing or not.
947 *  nBins specifies the number of histogram bins. When queried with set to zero, the respons gives the maximum number of bins allowed.
948 *  nLeft is the leftmost coordinate of the measurement area rectangle.
949 *  nTop is the topmost coordinate of the measurement area rectangle.
950 *  nWidth is the width of the measurement area rectangle in pixels.
951 *  nHeight is the height of the measurement area rectangle in pixels.
952 *  eHistType is an enumeration specifying the histogram type
953 *
954 *
955 */
956
957typedef struct OMX_CONFIG_HISTOGRAMTYPE {
958    OMX_U32 nSize;
959    OMX_VERSIONTYPE nVersion;
960    OMX_U32 nPortIndex;
961    OMX_BOOL bFrameLimited;
962    OMX_U32 nFrameLimit;
963    OMX_BOOL bMeasure;
964    OMX_U32 nBins;
965    OMX_S32 nLeft;
966    OMX_S32 nTop;
967    OMX_U32 nWidth;
968    OMX_U32 nHeight;
969    OMX_HISTTYPE eHistType;
970} OMX_CONFIG_HISTOGRAMTYPE;
971
972/**
973 * Enums for HIST component type.
974 */
975typedef enum OMX_HISTCOMPONENTTYPE{
976        OMX_HISTCOMP_Y = 0, /**<    Luminance histogram (Y) */
977        OMX_HISTCOMP_YLOG,  /**< Logarithmic luminance histogram (Y)*/
978        OMX_HISTCOMP_R, /**< Red histogram component (R)*/
979        OMX_HISTCOMP_G, /**< Green histogram component (G)*/
980        OMX_HISTCOMP_B, /**< Blue histogram component (B)*/
981        OMX_HISTCOMP_Cb,    /**< Chroma blue histogram component (Cb)*/
982        OMX_HISTCOMP_Cr /**< Chroma red histogram component (Cr) */
983}OMX_HISTCOMPONENTTYPE;
984
985 /**
986 * The OMX_TI_CAMERAVIEWTYPE enumeration is used to identify the
987 * particular camera view that the rest of the data in the structure is
988 * associated with.
989 */
990typedef enum OMX_TI_CAMERAVIEWTYPE
991{
992    OMX_2D,     /**< Camera view in 2D sensor configuration */
993    OMX_Left,   /**< Left camera view in stereo sensor configuration */
994    OMX_Right,  /**< Right camera view in stereo sensor configuration */
995    OMX_TI_CAMERAVIEWTYPE_32BIT_PATCH = 0x7FFFFFFF
996} OMX_TI_CAMERAVIEWTYPE;
997/**
998 *  nSize is the size of the structure including the length of data field containing
999 *  the histogram data.
1000 *  nBins is the number of bins in the histogram.
1001 *  eComponentType specifies the type of the histogram bins according to enum.
1002 *  It can be selected to generate multiple component types, then the extradata struct
1003 *  is repeated for each component type.
1004 *  data[1] first byte of the histogram data
1005 */
1006typedef struct OMX_HISTOGRAMTYPE {
1007    OMX_U32 nSize;
1008    OMX_VERSIONTYPE nVersion;
1009    OMX_U32 nPortIndex;
1010    OMX_TI_CAMERAVIEWTYPE eCameraView;
1011    OMX_U32 nBins;
1012    OMX_HISTCOMPONENTTYPE eComponentType;
1013    OMX_U8  data[1];
1014} OMX_HISTOGRAMTYPE;
1015
1016#define OMX_OTHER_EXTRADATATYPE_SIZE ( (OMX_U32)(((OMX_OTHER_EXTRADATATYPE*)0x0)->data) ) /**< Size of OMX_OTHER_EXTRADATATYPE**/
1017/**
1018 * The extra data having ancillary data is described with the following structure.
1019 * This data contains single flags and values
1020 * (not arrays) that have general usage for camera applications.
1021 */
1022typedef  struct OMX_TI_ANCILLARYDATATYPE {
1023    OMX_U32             nSize;
1024    OMX_VERSIONTYPE     nVersion;
1025    OMX_U32             nPortIndex;
1026    OMX_TI_CAMERAVIEWTYPE       eCameraView;
1027    OMX_U32             nAncillaryDataVersion;
1028    OMX_U32             nFrameNumber;
1029    OMX_U32             nShotNumber;
1030    OMX_U16             nInputImageHeight;
1031    OMX_U16             nInputImageWidth;
1032    OMX_U16             nOutputImageHeight;
1033    OMX_U16             nOutputImageWidth;
1034    OMX_U16             nDigitalZoomFactor;
1035    OMX_S16             nCropCenterColumn;
1036    OMX_S16             nCropCenterRow;
1037    OMX_U16             nOpticalZoomValue;
1038    OMX_U8              nFlashConfiguration;
1039    OMX_U8              nFlashUsage;
1040    OMX_U32             nFlashStatus;
1041    OMX_U8              nAFStatus;
1042    OMX_U8              nAWBStatus;
1043    OMX_U8              nAEStatus;
1044    OMX_U32             nExposureTime;
1045    OMX_U16             nEVCompensation;
1046    OMX_U8              nDigitalGainValue;
1047    OMX_U8              nAnalogGainValue;
1048    OMX_U16             nCurrentISO;
1049    OMX_U16             nReferenceISO;
1050    OMX_U8              nApertureValue;
1051    OMX_U8              nPixelRange;
1052    OMX_U16             nPixelAspectRatio;
1053    OMX_U8              nCameraShake;
1054    OMX_U16             nFocalDistance;
1055    OMX_U64             nParameterChangeFlags;
1056    OMX_U8              nNumFacesDetected;
1057    OMX_U8              nConvergenceMode;
1058    OMX_U8              nConvergenceStatus;
1059    OMX_U8              nDCCStatus;
1060} OMX_TI_ANCILLARYDATATYPE;
1061
1062typedef struct OMX_TI_WHITEBALANCERESULTTYPE {
1063    OMX_U32             nSize;          /**< Size */
1064    OMX_VERSIONTYPE     nVersion;       /**< Version */
1065    OMX_U32             nPortIndex;     /**< Port Index */
1066    OMX_TI_CAMERAVIEWTYPE eCameraView;
1067    OMX_U16             nColorTemperature;      /**< White Balance Color Temperature in Kelvins */
1068    OMX_U16             nGainR;         /**< Bayer applied R color channel gain in (U13Q9) */
1069    OMX_U16             nGainGR;        /**< Bayer applied Gr color channel gain in (U13Q9) */
1070    OMX_U16             nGainGB;        /**< Bayer applied Gb color channel gain in (U13Q9) */
1071    OMX_U16             nGainB;         /**< Bayer applied B color channel gain in (U13Q9) */
1072    OMX_S16             nOffsetR;       /**< Bayer applied R color channel offset */
1073    OMX_S16             nOffsetGR;      /**< Bayer applied Gr color channel offset */
1074    OMX_S16             nOffsetGB;      /**< Bayer applied Gb color channel offset */
1075    OMX_S16             nOffsetB;       /**< Bayer applied B color channel offset */
1076} OMX_TI_WHITEBALANCERESULTTYPE;
1077
1078/**
1079 * Unsaturated Regions data
1080 * The extra data having unsaturated regions data is
1081 * described with the following structure..
1082 */
1083typedef struct OMX_TI_UNSATURATEDREGIONSTYPE {
1084    OMX_U32             nSize;          /**< Size */
1085    OMX_VERSIONTYPE     nVersion;       /**< Version */
1086    OMX_U32             nPortIndex;     /**< Port Index */
1087    OMX_U16             nPaxelsX;       /**< The number of paxels in the horizontal direction */
1088    OMX_U16             nPaxelsY;       /**< The number of paxels in the vertical direction */
1089    OMX_U16             data[1];        /**< the first value of an array of values that represent */
1090} OMX_TI_UNSATURATEDREGIONSTYPE;
1091
1092/**
1093 * OMX_BARCODETYPE
1094 */
1095typedef enum OMX_BARCODETYPE{
1096        OMX_BARCODE1D = 0,      /**< 1D barcode */
1097        OMX_BARCODE2D,          /**< 2D barcode */
1098}OMX_BARCODETYPE;
1099/**
1100 * Brcode detection data
1101 *	nLeft is the leftmost coordinate of the detected area rectangle.
1102 *	nTop is the topmost coordinate of the detected area rectangle.
1103 *	nWidth is the width of the detected area rectangle in pixels.
1104 *	nHeight is the height of the detected area rectangle in pixels.
1105 *	nOrientation is the orientation of the axis of the detected object. This refers to the angle between the vertical axis of barcode and the horizontal axis.
1106 *	eBarcodetype is an enumeration specifying the barcode type, as listed in the given table.
1107 */
1108typedef struct OMX_BARCODEDETECTIONTYPE {
1109	OMX_U32 nSize;
1110	OMX_VERSIONTYPE nVersion;
1111	OMX_U32 nPortIndex;
1112	OMX_TI_CAMERAVIEWTYPE eCameraView;
1113	OMX_S32 nLeft;
1114	OMX_S32 nTop;
1115	OMX_U32 nWidth;
1116	OMX_U32 nHeight;
1117	OMX_S32 nOrientation;
1118	OMX_BARCODETYPE eBarcodetype;
1119 } OMX_BARCODEDETECTIONTYPE;
1120
1121/**
1122 * Front object detection data
1123 *	nLeft is the leftmost coordinate of the detected area rectangle.
1124 *	nTop is the topmost coordinate of the detected area rectangle.
1125 *	nWidth is the width of the detected area rectangle in pixels.
1126 *	nHeight is the height of the detected area rectangle in pixels.
1127 */
1128typedef struct OMX_FRONTOBJDETECTIONTYPE {
1129    OMX_U32 nSize;
1130    OMX_VERSIONTYPE nVersion;
1131    OMX_U32 nPortIndex;
1132    OMX_TI_CAMERAVIEWTYPE eCameraView;
1133    OMX_S32 nLeft;
1134    OMX_S32 nTop;
1135    OMX_U32 nWidth;
1136    OMX_U32 nHeight;
1137} OMX_FRONTOBJDETECTIONTYPE;
1138
1139/**
1140 * Distance estimation data
1141 * nDistance is the estimated distance to the object in millimeters.
1142 * nLargestDiscrepancy is the estimated largest discrepancy of the distance to the object in millimeters. When equal to MAX_INT the discrepancy is unknown.
1143 */
1144typedef struct OMX_DISTANCEESTIMATIONTYPE {
1145    OMX_U32 nSize;
1146    OMX_VERSIONTYPE nVersion;
1147    OMX_U32 nPortIndex;
1148    OMX_TI_CAMERAVIEWTYPE eCameraView;
1149    OMX_U32 nDistance;
1150    OMX_U32 nLargestDiscrepancy;
1151} OMX_DISTANCEESTIMATIONTYPE;
1152
1153/**
1154 * Distance estimation data
1155 * nDistance is the estimated distance to the object in millimeters.
1156 * nLargestDiscrepancy is the estimated largest discrepancy of the distance to the object in millimeters. When equal to MAX_INT the discrepancy is unknown.
1157 */
1158
1159typedef struct OMX_MOTIONESTIMATIONTYPE {
1160    OMX_U32 nSize;
1161    OMX_VERSIONTYPE nVersion;
1162    OMX_U32 nPortIndex;
1163    OMX_TI_CAMERAVIEWTYPE eCameraView;
1164    OMX_S32 nPanX;
1165    OMX_S32 nPanY;
1166} OMX_MOTIONESTIMATIONTYPE;
1167
1168
1169/**
1170 * Focus region data
1171 *	nRefPortIndex is the port the image frame size is defined on. This image frame size is used as reference for the focus region rectangle.
1172 *	nLeft is the leftmost coordinate of the focus region rectangle.
1173 *	nTop is the topmost coordinate of the focus region rectangle.
1174 *	nWidth is the width of the focus region rectangle in pixels.
1175 *	nHeight is the height of the focus region rectangle in pixels.
1176 *
1177 */
1178typedef struct OMX_FOCUSREGIONTYPE {
1179    OMX_U32 nSize;
1180    OMX_VERSIONTYPE nVersion;
1181    OMX_U32 nPortIndex;
1182    OMX_TI_CAMERAVIEWTYPE eCameraView;
1183    OMX_U32 nRefPortIndex;
1184    OMX_S32 nLeft;
1185    OMX_S32 nTop;
1186    OMX_U32 nWidth;
1187    OMX_U32 nHeight;
1188} OMX_FOCUSREGIONTYPE;
1189
1190/**
1191 * OMX_ISOSETTINGTYPE: specifies its auto or manual setting
1192 *
1193 */
1194typedef enum OMX_ISOSETTINGTYPE{
1195        OMX_Auto = 0, /**<	*/
1196        OMX_IsoManual	/**< */
1197}OMX_ISOSETTINGTYPE;
1198
1199/**
1200 *  nSize is the size of the structure including the length of data field containing
1201 *  the histogram data.
1202 *  eISOMode:
1203 *  	specifies the ISO seetting mode - auto/manual
1204 *  nISOSetting:
1205 *  	for manual mode client can specify the ISO setting.
1206 */
1207
1208typedef struct OMX_CONFIG_ISOSETTINGTYPE{
1209	OMX_U32 nSize;
1210	OMX_VERSIONTYPE nVersion;
1211	OMX_U32 nPortIndex;
1212	OMX_ISOSETTINGTYPE eISOMode;
1213	OMX_U32 nISOSetting;
1214}OMX_CONFIG_ISOSETTINGTYPE;
1215
1216/**
1217 * custom RAW format
1218 */
1219typedef struct OMX_CONFIG_RAWFORMATTYPE {
1220    OMX_U32 nSize;
1221    OMX_VERSIONTYPE nVersion;
1222    OMX_U32 nPortIndex;
1223    OMX_VERSIONTYPE nFormatVersion;
1224    OMX_STRING cVendorName;
1225} OMX_CONFIG_RAWFORMATTYPE;
1226
1227/**
1228 * Sensor type
1229 */
1230typedef struct OMX_CONFIG_SENSORTYPE {
1231    OMX_U32 nSize;
1232    OMX_VERSIONTYPE nVersion;
1233    OMX_U32 nPortIndex;
1234    OMX_VERSIONTYPE nSensorVersion;
1235    OMX_STRING cModelName;
1236} OMX_CONFIG_SENSORTYPE;
1237
1238/**
1239 * Sensor custom data type
1240 */
1241typedef struct OMX_CONFIG_SENSORCUSTOMDATATYPE {
1242    OMX_U32 nSize;
1243    OMX_VERSIONTYPE nVersion;
1244    OMX_U32 nPortIndex;
1245    OMX_U32 nDataLength;
1246    OMX_U8 xSensorData[1];
1247} OMX_CONFIG_SENSORCUSTOMDATATYPE;
1248
1249/**
1250 * OMX_OBJDETECTQUALITY
1251 *
1252 */
1253typedef enum OMX_OBJDETECTQUALITY{
1254        OMX_FastDetection = 0, /**< A detection that prioritizes speed*/
1255        OMX_Default,    /**< The default detection, should be used when no control of the detection quality is given.*/
1256        OMX_BetterDetection,    /**< A detection that levels correct detection with speed*/
1257        OMX_BestDtection,   /**< A detection that prioritizes correct detection*/
1258        OMX_AUTODETECTION   /**< Automatically decide which object detection quality is best.*/
1259}OMX_OBJDETECTQUALITY;
1260
1261/**
1262 * OBJECT DETECTION Type
1263 *      nPortIndex: is an output port. The port index decides on which port the extra data structur of detected object is sent on.
1264 *      bEnable : this controls ON/OFF for this object detection algirithm.
1265 *      bFrameLimited: is a Boolean used to indicate if detection shall be terminated after the specified number of frames if
1266 *          true frame limited detection is enabled; otherwise the port does not terminate detection until instructed to do so by the client.
1267 *      nFrameLimit: is the limit on number of frames detection is executed for, this parameter is only valid if bFrameLimited is enabled.
1268 *      nMaxNbrObjects: specifies the maximum number of objects that should be found in each frame. It is implementation dependent which objects are found.
1269 *      nLeft: is the leftmost coordinate of the detection area rectangle.
1270 *      nTop: is the topmost coordinate of the detection area rectangle.
1271 *      nWidth: is the width of the detection area rectangle in pixels.
1272 *      nHeight: is the height of the detection area rectangle in pixels.
1273 *      eObjDetectQuality: is an enumeration specifying the quality desired by the detection.
1274 *      nPriority: represents priority of each object when there are multiple objects detected.
1275 */
1276
1277typedef struct OMX_CONFIG_OBJDETECTIONTYPE {
1278    OMX_U32 nSize;
1279    OMX_VERSIONTYPE nVersion;
1280    OMX_U32 nPortIndex;
1281    OMX_BOOL bEnable;
1282    OMX_BOOL bFrameLimited;
1283    OMX_U32 nFrameLimit;
1284    OMX_U32 nMaxNbrObjects;
1285    OMX_S32 nLeft;
1286    OMX_S32 nTop;
1287    OMX_U32 nWidth;
1288    OMX_U32 nHeight;
1289    OMX_OBJDETECTQUALITY eObjDetectQuality;
1290    OMX_U32 nPriority;
1291    OMX_U32 nDeviceOrientation;
1292 } OMX_CONFIG_OBJDETECTIONTYPE;
1293
1294
1295/**
1296 * OMX_OBJDETECTQUALITY
1297 *
1298 */
1299typedef enum OMX_DISTTYPE{
1300        OMX_DistanceControlFocus = 0, /**< focus objects distance type*/
1301        OMX_DISTANCECONTROL_RECT	/**< Evaluated distance to the object found in the rectangelar area indicated as input region.  */
1302}OMX_DISTTYPE;
1303
1304
1305/**
1306 * Distance mesurement
1307 *	bStarted is a Boolean. The IL client sets it to true to start the measurement .
1308 *		the IL client sets to false to stop the measurement. The IL client can query it to check if the measurement is ongoing.
1309 *	nLeft : is the leftmost coordinate of the rectangle.
1310 *	nTop : is the topmost coordinate of the rectangle.
1311 *	nWidth:  is the width of the rectangle in pixels.
1312 *	nHeight:  is the height of the rectangle in pixels.
1313 *	eDistType:  is an enumeration specifying the distance measurement type, as shown in
1314 */
1315typedef struct OMX_CONFIG_DISTANCETYPE {
1316    OMX_U32 nSize;
1317    OMX_VERSIONTYPE nVersion;
1318    OMX_U32 nPortIndex;
1319    OMX_BOOL bStarted;
1320    OMX_S32 nLeft;
1321    OMX_S32 nTop;
1322    OMX_U32 nWidth;
1323    OMX_U32 nHeight;
1324    OMX_DISTTYPE eDistType;
1325} OMX_CONFIG_DISTANCETYPE;
1326
1327
1328/**
1329 * face detect data - face attribute
1330 *  nARGBEyeColor: is the indicates a 32-bit eye color of the person, where bits 0-7 are blue,
1331 *      bits 15-8 are green, bits 24-16 are red, and bits 31-24 are for alpha.
1332 *  nARGBSkinColor: is the indicates a 32-bit skin color of the person, where bits 0-7 are blue,
1333 *      bits 15-8 are green, bits 24-16 are red, and bits 31-24 are for alpha.
1334 *  nARGBHairColor: is the indicates a 32-bit hair color of the person, where bits 0-7 are blue,
1335 *      bits 15-8 are green, bits 24-16 are red, and bits 31-24 are for alpha.
1336 *  nSmileScore: a smile detection score between 0 and 100, where 0 means not detecting,
1337 *      1 means least certain and 100 means most certain a smile is detected.
1338 *  nBlinkScore: a eye-blink detection score between 0 and 100, where 0 means not detecting,
1339 *      1 means least certain and 100 means most certain an eye-blink is detected.
1340 *  xIdentity: represents the identity of the face. With identity equal to zero this is not supported.
1341 *      This can be used by a face recognition application. The component shall not reuse an identity value unless the same face.
1342 *      Can be used to track detected faces when it moves between frames. Specific usage of this field is implementation dependent.
1343 *      It can be some kind of ID.
1344 *
1345 */
1346typedef struct OMX_FACEATTRIBUTE {
1347        OMX_U32 nARGBEyeColor;
1348    OMX_U32 nARGBSkinColor;
1349    OMX_U32 nARGBHairColor;
1350    OMX_U32 nSmileScore;
1351    OMX_U32 nBlinkScore;
1352    OMX_U32 xIdentity[4];
1353} OMX_FACEATTRIBUTE;
1354
1355/**
1356 * xGamma represents lool-up table for gamma correction in Q16 format.
1357 * All values assume that maximum value is 255. If internal implementation uses higher dynamic range, this value should be adjusted internally.
1358 *
1359 *
1360 *
1361 * STRUCT MEMBERS:
1362 *  nScore: is a detection score between 0 and 100, where 0 means unknown score, 1 means least certain and 100 means most certain the detection is correct.
1363 *  nLeft: is the leftmost coordinate of the detected area rectangle.
1364 *  nTop: is the topmost coordinate of the detected area rectangle.
1365 *  nWidth: is the width of the detected area rectangle in pixels.
1366 *  nHeight: is the height of the detected area rectangle in pixels.
1367 *  nOrientationRoll/Yaw/Pitch is the orientation of the axis of the detected object. Here roll angle is defined as the angle between the vertical axis of face and the horizontal axis. All angles can have the value of -180 to 180 degree in Q16 format. Some face detection algorithm may not be able to fill in the angles, this is denoted by the use of MAX_INT value.
1368 *  nPriority represents priority of each object when there are multiple objects detected.
1369 *  nFaceAttr describe the attributes of the detected face object with the following structure:
1370 *
1371 *
1372 */
1373typedef struct OMX_TI_FACERESULT {
1374    OMX_U32 nSize;
1375    OMX_VERSIONTYPE nVersion;
1376    OMX_U32 nPortIndex;
1377    OMX_TI_CAMERAVIEWTYPE eCameraView;
1378    OMX_U32 nScore;
1379    OMX_S32 nLeft;
1380    OMX_S32 nTop;
1381OMX_U32 nWidth;
1382OMX_U32 nHeight;
1383OMX_S32 nOrientationRoll;
1384OMX_S32 nOrientationYaw;
1385OMX_S32 nOrientationPitch;
1386OMX_U32 nPriority;
1387OMX_FACEATTRIBUTE nFaceAttr;
1388} OMX_TI_FACERESULT;
1389
1390
1391/**
1392 * Face detection data
1393 * The extra data having face detection data is described with the following structure.
1394 * The parser should only assume that the first tFacePosition[ulFaceCount] of the 35 elements
1395 * of the array should contain valid data.
1396 */
1397typedef struct OMX_FACEDETECTIONTYPE {
1398    OMX_U32 nSize;
1399    OMX_VERSIONTYPE nVersion;
1400    OMX_U32 nPortIndex;
1401    OMX_TI_CAMERAVIEWTYPE    eCameraView;
1402    OMX_U16 ulFaceCount;
1403    OMX_TI_FACERESULT tFacePosition[35];// 35 is max faces supported by FDIF
1404} OMX_FACEDETECTIONTYPE;
1405
1406/**
1407 * MTIS Vendor Specific Motion estimation
1408 * The extra data having MTIS motion estimation data is
1409 * described with the following structure.
1410 */
1411typedef struct OMX_TI_MTISTYPE {
1412    OMX_U32 nSize;
1413    OMX_VERSIONTYPE nVersion;
1414    OMX_U32 nPortIndex;
1415    OMX_TI_CAMERAVIEWTYPE eCameraView;
1416    OMX_S32 nMaxMVh;            /**< The maximum MV for horizontal direction */
1417    OMX_S32 nMaxMVv;            /**< The maximum MV for vertical direction */
1418    OMX_U16 nMVRelY[9];         /**< The mask for MV reliability */
1419    OMX_U16 nMVRelX[9];         /**< The mask for MV reliability */
1420    OMX_S32 nMVh[9];            /**< The MVs for horizontal direction */
1421    OMX_S32 nMVv[9];            /**< The MVs for vertical direction */
1422} OMX_TI_MTISTYPE;
1423
1424/**
1425 * The OMX_EXTRADATATYPE enumeration is used to define the
1426 * possible extra data payload types.
1427 */
1428typedef enum OMX_EXT_EXTRADATATYPE
1429{
1430   OMX_ExifAttributes = 0x7F000001, /**< Reserved region for introducing Vendor Extensions */
1431   OMX_AncillaryData,                   /**< 0x7F000002 ancillary data */
1432   OMX_WhiteBalance,                    /**< 0x7F000003 white balance resultant data */
1433   OMX_UnsaturatedRegions,              /**< 0x7F000004 unsaturated regions data */
1434   OMX_FaceDetection, /**< face detect data */
1435   OMX_BarcodeDetection, /**< bar-code detct data */
1436   OMX_FrontObjectDetection, /**< Front object detection data */
1437   OMX_MotionEstimation, /**< motion Estimation data */
1438   OMX_TI_MTISType,                     /**< 0x7F000009 MTIS motion Estimation data */
1439   OMX_DistanceEstimation, /**< disctance estimation */
1440   OMX_Histogram, /**< histogram */
1441   OMX_FocusRegion, /**< focus region data */
1442   OMX_ExtraDataPanAndScan,             /**< 0x7F00000D pan and scan data */
1443   OMX_RawFormat, /**< custom RAW data format */
1444   OMX_SensorType, /**< vendor & model of the sensor being used */
1445   OMX_SensorCustomDataLength, /**< vendor specific custom data length */
1446   OMX_SensorCustomData, /**< vendor specific data */
1447   OMX_TI_FrameLayout,                  /**< 0x7F000012 vendor specific data */
1448   OMX_TI_SEIinfo2004Frame1,    /**< 0x7F000013 Used for 2004 SEI message to be provided by video decoders */
1449   OMX_TI_SEIinfo2004Frame2,    /**< 0x7F000014 Used for 2004 SEI message to be provided by video decoders */
1450   OMX_TI_SEIinfo2010Frame1,    /**< 0x7F000015 Used for 2010 SEI message to be provided by video decoders */
1451   OMX_TI_SEIinfo2010Frame2,    /**< 0x7F000016 Used for 2010 SEI message to be provided by video decoders */
1452   OMX_TI_RangeMappingInfo,     /**< 0x7F000017 Used for Range mapping info provided by Video Decoders */
1453   OMX_TI_RescalingInfo,        /**< 0x7F000018 Used for width/height rescaling info provided by Video Decoders */
1454   OMX_TI_WhiteBalanceOverWrite,        /**< 0x7F000019 Used for manual AWB settings */
1455   OMX_TI_ExtraData_Count,
1456   OMX_TI_ExtraData_Max = OMX_TI_ExtraData_Count - 1,
1457} OMX_EXT_EXTRADATATYPE;
1458
1459
1460/**
1461 * Enable Extra-data on a specific port.
1462 *
1463 *
1464 *
1465 * STRUCT MEMBERS:
1466 *  nSize        : Size of the structure in bytes
1467 *  nVersion     : OMX specification version information
1468 *  nPortIndex   : Port on which this extra data to be assosiated
1469 *  eExtraDataType :  Extra data type
1470 *  bEnable      : Eneble/Disable this extra-data through port.
1471 *
1472 */
1473typedef struct OMX_CONFIG_EXTRADATATYPE {
1474    OMX_U32 nSize;
1475    OMX_VERSIONTYPE nVersion;
1476    OMX_U32 nPortIndex;
1477    OMX_EXT_EXTRADATATYPE eExtraDataType;
1478    OMX_TI_CAMERAVIEWTYPE eCameraView;
1479    OMX_BOOL bEnable;
1480} OMX_CONFIG_EXTRADATATYPE;
1481
1482/**
1483 * JPEG header type
1484 * */
1485
1486typedef enum OMX_JPEGHEADERTYPE{
1487	OMX_NoHeader = 0,
1488	OMX_JFIF,
1489	OMX_EXIF
1490}OMX_JPEGHEADERTYPE;
1491/**
1492 * Re-start marker configuration
1493 *
1494 *
1495 *
1496 * STRUCT MEMBERS:
1497 *  nSize        : Size of the structure in bytes
1498 *  nVersion     : OMX specification version information
1499 *  nPortIndex   : Port on which this extra data to be assosiated
1500 *  eJpegHeaderType : JPEG header type EXIF, JFIF, or No heeader.
1501 */
1502
1503typedef struct OMX_CONFIG_JPEGHEEADERTYPE{
1504	OMX_U32 nSize;
1505	OMX_VERSIONTYPE nVersion;
1506	OMX_U32 nPortIndex;
1507	OMX_JPEGHEADERTYPE eJpegHeaderType;
1508}OMX_CONFIG_JPEGHEEADERTYPE;
1509
1510/**
1511 * Re-start marker configuration
1512 *
1513 *
1514 *
1515 * STRUCT MEMBERS:
1516 *  nSize        : Size of the structure in bytes
1517 *  nVersion     : OMX specification version information
1518 *  nPortIndex   : Port on which this extra data to be assosiated
1519 *  nRstInterval :  interval at which RST markers are to be inserted.
1520 *  bEnable      : Eneble/Disable this RST marker insertion feature.
1521 *
1522 */
1523
1524typedef struct OMX_CONFIG_RSTMARKER{
1525	OMX_U32 nSize;
1526	OMX_VERSIONTYPE nVersion;
1527	OMX_U32 nPortIndex;
1528	OMX_U32 nRstInterval;
1529	OMX_BOOL nEnable;
1530}OMX_CONFIG_RSTMARKER;
1531
1532/**
1533 * Enable Extra-data on a specific port.
1534 *
1535 *
1536 *
1537 * STRUCT MEMBERS:
1538 *  nSize        : Size of the structure in bytes
1539 *  nVersion     : OMX specification version information
1540 *  nPortIndex   : Port that this structure applies to
1541 * nMaxSize : max size
1542 *
1543 *
1544 */
1545typedef struct OMX_IMAGE_JPEGMAXSIZE {
1546    OMX_U32 nSize;
1547    OMX_VERSIONTYPE nVersion;
1548    OMX_U32 nPortIndex;
1549    OMX_U32 nMaxSize;
1550} OMX_IMAGE_JPEGMAXSIZE;
1551
1552
1553typedef enum OMX_IMAGESTAMPOPERATION{
1554    OMX_NewImageStamp = 0,
1555    OMX_Continuation
1556}OMX_IMAGESTAMPOPERATION;
1557
1558
1559/**
1560 * Enable Extra-data on a specific port.
1561 *
1562 *
1563 *
1564 * STRUCT MEMBERS:
1565 *  nSize        : Size of the structure in bytes
1566 *  nVersion     : OMX specification version information
1567 *  nPortIndex   : Port that this structure applies to
1568 * nMaxSize : max size
1569 *
1570 *
1571 */
1572typedef struct OMX_PARAM_IMAGESTAMPOVERLAYTYPE {
1573    OMX_U32 nSize;
1574    OMX_VERSIONTYPE nVersion;
1575    OMX_U32 nPortIndex;
1576    OMX_IMAGESTAMPOPERATION nOp;
1577    OMX_U32 nLeft;
1578    OMX_U32 nTop;
1579    OMX_U32 nHeight;
1580    OMX_U32 nWidth;
1581    OMX_COLOR_FORMATTYPE eFormat;
1582    OMX_U8 * pBitMap;
1583} OMX_PARAM_IMAGESTAMPOVERLAYTYPE;
1584
1585
1586/**
1587 * Enable Extra-data on a specific port.
1588 *
1589 *
1590 *
1591 * STRUCT MEMBERS:
1592 *  nSize        : Size of the structure in bytes
1593 *  nVersion     : OMX specification version information
1594 *  nPortIndex   : Port that this structure applies to
1595 * nMaxSize : max size
1596 *
1597 *
1598 */
1599typedef struct OMX_PARAM_THUMBNAILTYPE {
1600    OMX_U32 nSize;
1601    OMX_VERSIONTYPE nVersion;
1602    OMX_U32 nPortIndex;
1603    OMX_U32 nHeight;
1604    OMX_U32 nWidth;
1605    OMX_IMAGE_CODINGTYPE eCompressionFormat;
1606    OMX_COLOR_FORMATTYPE eColorFormat;
1607    OMX_U32 nQuality;
1608    OMX_U32 nMaxSize;
1609} OMX_PARAM_THUMBNAILTYPE;
1610
1611/**
1612 * Red-Eye Removal Enum
1613 */
1614typedef enum OMX_REDEYEREMOVALTYPE{
1615    OMX_RedEyeRemovalOff    = 0, /** No red eye removal*/
1616    OMX_RedEyeRemovalOn, /**    Red eye removal on*/
1617    OMX_RedEyeRemovalAuto,  /** Red eye removal will be done automatically when detected*/
1618    OMX_RedEyeRemovalKhronosExtensions = 0x6F000000,    /** Reserved region for introducing Khronos Standard Extensions*/
1619    OMX_RedEyeRemovalVendorStartUnused = 0x7F000000,    /** Reserved region for introducing Vendor Extensions*/
1620    OMX_RedEyeRemovalMax = 0x7FFFFFFF
1621}OMX_REDEYEREMOVALTYPE;
1622
1623/**
1624 * Enable Extra-data on a specific port.
1625 *
1626 *
1627 *
1628 * STRUCT MEMBERS:
1629 *  nSize        : Size of the structure in bytes
1630 *  nVersion     : OMX specification version information
1631 *  nPortIndex   : Port that this structure applies to
1632 *  nLeft: is the leftmost coordinate of the detection area rectangle (such as face region).
1633 *  nTop: is the topmost coordinate of the detection area rectangle (such as face region).
1634 *  nWidth: is the width of the detection area rectangle  in pixels.
1635 *  nHeight: is the height of the detection area rectangle in pixels.
1636 *  nARGBEyeColor indicates a 32-bit eye color to replace the red-eye, where bits 0-7 are blue, bits 15-8 are green, bits 24-16 are red, and bits 31-24 are for alpha. When all zero indicates automatic choice.
1637
1638 *
1639 */
1640typedef struct OMX_CONFIG_REDEYEREMOVALTYPE {
1641   OMX_U32 nSize;
1642   OMX_VERSIONTYPE nVersion;
1643   OMX_U32 nPortIndex;
1644   OMX_S32 nLeft;
1645   OMX_S32 nTop;
1646   OMX_U32 nWidth;
1647   OMX_U32 nHeight;
1648   OMX_U32 nARGBEyeColor;
1649   OMX_REDEYEREMOVALTYPE eMode;
1650} OMX_CONFIG_REDEYEREMOVALTYPE;
1651
1652
1653
1654
1655
1656
1657/**
1658 * Video capture YUV Range Enum
1659 */
1660typedef enum OMX_VIDEOYUVRANGETYPE{
1661    OMX_ITURBT601 = 0,
1662    OMX_Full8Bit,
1663    OMX_VideoYUVRangeKhronosExtensions = 0x6F000000,    /** Reserved region for introducing Khronos Standard Extensions*/
1664    OMX_VideoYUVRangeVendorStartUnused = 0x7F000000,    /** Reserved region for introducing Vendor Extensions*/
1665    OMX_VideoYUVRangeMax = 0x7FFFFFFF
1666}OMX_VIDEOYUVRANGETYPE;
1667
1668/**
1669 * Enable Extra-data on a specific port.
1670 *
1671 *
1672 *
1673 * STRUCT MEMBERS:
1674 *  nSize        : Size of the structure in bytes
1675 *  nVersion     : OMX specification version information
1676 *  nPortIndex   : Port that this structure applies to
1677 *
1678 */
1679typedef struct OMX_PARAM_VIDEOYUVRANGETYPE {
1680   OMX_U32 nSize;
1681   OMX_VERSIONTYPE nVersion;
1682   OMX_U32 nPortIndex;
1683   OMX_VIDEOYUVRANGETYPE eYUVRange;
1684} OMX_PARAM_VIDEOYUVRANGETYPE;
1685
1686/**
1687 * Video noise filter mode range enum
1688 */
1689typedef enum OMX_VIDEONOISEFILTERMODETYPE{
1690    OMX_VideoNoiseFilterModeOff = 0,
1691    OMX_VideoNoiseFilterModeOn,
1692    OMX_VideoNoiseFilterModeAuto,
1693    OMX_VideoNoiseFilterModeExtensions = 0x6F000000,    /** Reserved region for introducing Khronos Standard Extensions */
1694    OMX_VideoNoiseFilterModeStartUnused = 0x7F000000,   /** Reserved region for introducing Vendor Extensions */
1695    OMX_VideoNoiseFilterModeMax = 0x7FFFFFFF
1696} OMX_VIDEONOISEFILTERMODETYPE;
1697
1698/**
1699 * Enable video noise filter.
1700 *
1701 * STRUCT MEMBERS:
1702 *  nSize       : Size of the structure in bytes
1703 *  nVersion    : OMX specification version information
1704 *  nPortIndex  : Port that this structure applies to
1705 *  eMode       : Video noise filter mode (on/off/auto)
1706 */
1707typedef struct OMX_PARAM_VIDEONOISEFILTERTYPE {
1708    OMX_U32 nSize;
1709    OMX_VERSIONTYPE nVersion;
1710    OMX_U32 nPortIndex;
1711    OMX_VIDEONOISEFILTERMODETYPE eMode;
1712} OMX_PARAM_VIDEONOISEFILTERTYPE;
1713
1714
1715/**
1716 * High ISO Noise filter mode range enum
1717 */
1718typedef enum OMX_ISONOISEFILTERMODETYPE{
1719    OMX_ISONoiseFilterModeOff = 0,
1720    OMX_ISONoiseFilterModeOn,
1721    OMX_ISONoiseFilterModeAuto,
1722    OMX_ISONoiseFilterModeExtensions = 0x6F000000,    /** Reserved region for introducing Khronos Standard Extensions */
1723    OMX_ISONoiseFilterModeStartUnused = 0x7F000000,   /** Reserved region for introducing Vendor Extensions */
1724    OMX_ISONoiseFilterModeMax = 0x7FFFFFFF
1725} OMX_ISONOISEFILTERMODETYPE;
1726
1727/**
1728 * Enable ISO noise filter.
1729 *
1730 * STRUCT MEMBERS:
1731 *  nSize       : Size of the structure in bytes
1732 *  nVersion    : OMX specification version information
1733 *  nPortIndex  : Port that this structure applies to
1734 *  eMode       : ISO noise filter (NSF2 is used) mode (on/off/auto)
1735 */
1736typedef struct OMX_PARAM_ISONOISEFILTERTYPE {
1737    OMX_U32 nSize;
1738    OMX_VERSIONTYPE nVersion;
1739    OMX_U32 nPortIndex;
1740    OMX_ISONOISEFILTERMODETYPE eMode;
1741} OMX_PARAM_ISONOISEFILTERTYPE;
1742
1743/**
1744 * Structure used to to call OMX_GetParams() for each
1745 * increment of "Index" starting with "0"
1746 *
1747 * STRUCT MEMBERS:
1748 * nSize            : Size of the structure in bytes
1749 * nVersion         : OMX specification version information
1750 * nIndex           : Index of the sDCCURI 0..MAX_URI_LENGTH
1751 * sDCCURI          : Look-up table containing strings. Ends with '\0'
1752 */
1753typedef struct OMX_TI_PARAM_DCCURIINFO {
1754    OMX_U32 nSize;
1755    OMX_VERSIONTYPE nVersion;
1756    OMX_U32 nIndex;
1757    OMX_S8 sDCCURI[MAX_URI_LENGTH];
1758} OMX_TI_PARAM_DCCURIINFO;
1759
1760/**
1761 * Structure used to configure DCC buffer
1762 *
1763 * STRUCT MEMBERS:
1764 * nSize            : Size of the structure in bytes
1765 * nVersion         : OMX specification version information
1766 * nDCCURIBuffSize  : Size of the pDCCURIBuff in bytes
1767 * pDCCURIBuff      : Pointer to a buffer
1768 */
1769typedef struct OMX_TI_PARAM_DCCURIBUFFER {
1770    OMX_U32 nSize;
1771    OMX_VERSIONTYPE nVersion;
1772    OMX_U32 nDCCURIBuffSize;
1773    OMX_U8 *pDCCURIBuff;
1774} OMX_TI_PARAM_DCCURIBUFFER;
1775
1776/**
1777 * Manual White Balance color temperature
1778 * STRUCT MEMBERS:
1779 *  nSize        : Size of the structure in bytes
1780 *  nVersion     : OMX specification version information
1781 *  nPortIndex   : Port that this structure applies to
1782 *  nColorTemperature : Color Temperature in K
1783 */
1784typedef struct OMX_TI_CONFIG_WHITEBALANCECOLORTEMPTYPE {
1785    OMX_U32 nSize;
1786    OMX_VERSIONTYPE nVersion;
1787    OMX_U32 nPortIndex;
1788    OMX_U32 nColorTemperature;
1789} OMX_TI_CONFIG_WHITEBALANCECOLORTEMPTYPE;
1790
1791/**
1792 * Focus spot weighting range enum
1793 */
1794typedef enum OMX_TI_CONFIG_FOCUSSPOTMODETYPE {
1795    OMX_FocusSpotDefault = 0,                           /** Makes CommonFocusRegion to be used. */
1796    OMX_FocusSpotSinglecenter,
1797    OMX_FocusSpotMultiNormal,
1798    OMX_FocusSpotMultiAverage,
1799    OMX_FocusSpotMultiCenter,
1800    OMX_FocusSpotExtensions = 0x6F000000,               /** Reserved region for introducing Khronos Standard Extensions */
1801    OMX_FocusSpotModeStartUnused = 0x7F000000,          /** Reserved region for introducing Vendor Extensions */
1802    OMX_FocusSpotModeMax = 0x7FFFFFFF
1803} OMX_TI_CONFIG_FOCUSSPOTMODETYPE;
1804
1805/**
1806 * Focus Spot Weighting configuration.
1807 *
1808 * STRUCT MEMBERS:
1809 *  nSize       : Size of the structure in bytes
1810 *  nVersion    : OMX specification version information
1811 *  nPortIndex  : Port that this structure applies to
1812 *  eMode       : Spot Weighting mode
1813 */
1814typedef struct OMX_TI_CONFIG_FOCUSSPOTWEIGHTINGTYPE {
1815    OMX_U32 nSize;
1816    OMX_VERSIONTYPE nVersion;
1817    OMX_U32 nPortIndex;
1818    OMX_TI_CONFIG_FOCUSSPOTMODETYPE eMode;
1819} OMX_TI_CONFIG_FOCUSSPOTWEIGHTINGTYPE;
1820
1821/**
1822 * Enumeration of possible Exposure control types for OMX_EXPOSURECONTROLTYPE
1823 */
1824typedef enum OMX_TI_EXTEXPOSURECONTROLTYPE {
1825    OMX_TI_ExposureControlVeryLong = OMX_ExposureControlVendorStartUnused + 1
1826} OMX_TI_EXTEXPOSURECONTROLTYPE;
1827
1828/**
1829 * Variable frame rate configuration.
1830 *
1831 * STRUCT MEMBERS:
1832 *  nSize         : Size of the structure in bytes
1833 *  nVersion      : OMX specification version information
1834 *  nPortIndex    : Port that this structure applies to
1835 *  xMinFramerate : Minimum variable frame rate value
1836 */
1837typedef struct OMX_TI_PARAM_VARFRAMERATETYPE {
1838	OMX_U32 nSize;
1839	OMX_VERSIONTYPE nVersion;
1840	OMX_U32 nPortIndex;
1841	OMX_U32 xMinFramerate;
1842} OMX_TI_PARAM_VARFRAMERATETYPE;
1843
1844/**
1845 * Exposure config for right frame
1846 */
1847typedef struct OMX_TI_CONFIG_EXPOSUREVALUERIGHTTYPE {
1848	OMX_U32 nSize;
1849	OMX_VERSIONTYPE nVersion;
1850	OMX_U32 nPortIndex;
1851	OMX_U32 nApertureFNumber;  /**< e.g. nApertureFNumber = 2 implies "f/2" - Q16 format */
1852	OMX_U32 nShutterSpeedMsec; /**< Shutterspeed in milliseconds */
1853	OMX_U32 nSensitivity;      /**< e.g. nSensitivity = 100 implies "ISO 100" */
1854} OMX_TI_CONFIG_EXPOSUREVALUERIGHTTYPE;
1855
1856/**
1857 * Auto Convergence mode enum
1858 */
1859typedef enum OMX_TI_AUTOCONVERGENCEMODETYPE {
1860	OMX_TI_AutoConvergenceModeDisable,
1861	OMX_TI_AutoConvergenceModeFrame,
1862	OMX_TI_AutoConvergenceModeCenter,
1863	OMX_TI_AutoConvergenceModeFocusFaceTouch,
1864	OMX_TI_AutoConvergenceModeManual,
1865	OMX_TI_AutoConvergenceExtensions = 0x6F000000,    /** Reserved region for introducing Khronos Standard Extensions */
1866	OMX_TI_AutoConvergenceStartUnused = 0x7F000000,   /** Reserved region for introducing Vendor Extensions */
1867	OMX_TI_AutoConvergenceModeMax = 0x7FFFFFFF
1868} OMX_TI_AUTOCONVERGENCEMODETYPE;
1869
1870/**
1871 * Variable farame rate configuration.
1872 *
1873 * STRUCT MEMBERS:
1874 *  nSize             : Size of the structure in bytes
1875 *  nVersion          : OMX specification version information
1876 *  nPortIndex        : Port that this structure applies to
1877 *  eACMode           : Auto convergence mode
1878 *  nManualConverence : Manual Converence value
1879 *  nACProcWinStartX  : Start X AC Window
1880 *  nACProcWinStartY  : Start Y AC Window
1881 *  nACProcWinWidth   : Width of AC Window
1882 *  nACProcWinHeight  : Height of AC Window
1883 *  bACStatus         : output status from AL alg
1884 */
1885typedef struct OMX_TI_CONFIG_CONVERGENCETYPE {
1886	OMX_U32 nSize;
1887	OMX_VERSIONTYPE nVersion;
1888	OMX_U32 nPortIndex;
1889	OMX_TI_AUTOCONVERGENCEMODETYPE eACMode;
1890	OMX_S32 nManualConverence;
1891	OMX_U32 nACProcWinStartX;
1892	OMX_U32 nACProcWinStartY;
1893	OMX_U32 nACProcWinWidth;
1894	OMX_U32 nACProcWinHeight;
1895	OMX_BOOL bACStatus;
1896} OMX_TI_CONFIG_CONVERGENCETYPE;
1897
1898/**
1899 * Camera specific version.
1900 *
1901 * STRUCT MEMBERS:
1902 *  nBranch        : Branch
1903 *  nCommitID      : Commit ID
1904 *  nBuildDateTime : Build date and time
1905 *  nExtraInfo     : rederved for future use
1906 */
1907typedef struct OMX_TI_CAMERASPECVERSIONTYPE {
1908	OMX_U8 nBranch[64];
1909	OMX_U8 nCommitID[64];
1910	OMX_U8 nBuildDateTime[64];
1911	OMX_U8 nExtraInfo[64];
1912} OMX_TI_CAMERASPECVERSIONTYPE;
1913
1914/**
1915 * Stereo frame layout enum
1916 */
1917typedef enum OMX_TI_STEREOFRAMELAYOUTTYPE {
1918	OMX_TI_StereoFrameLayout2D,
1919	OMX_TI_StereoFrameLayoutTopBottom,
1920	OMX_TI_StereoFrameLayoutLeftRight,
1921	OMX_TI_StereoFrameLayoutMax = 0x7FFFFFFF
1922} OMX_TI_STEREOFRAMELAYOUTTYPE;
1923
1924/**
1925 * Camera frame layout type.
1926 *
1927 * STRUCT MEMBERS:
1928 *  eFrameLayout    : frame layout
1929 *  nSubsampleRatio : subsample ratio
1930 */
1931typedef struct OMX_TI_FRAMELAYOUTTYPE {
1932	OMX_U32 nSize;
1933	OMX_VERSIONTYPE nVersion;
1934	OMX_U32 nPortIndex;
1935	OMX_TI_STEREOFRAMELAYOUTTYPE eFrameLayout;
1936	OMX_U32 nSubsampleRatio; /**  Subsampling ratio, Q15.7 */
1937} OMX_TI_FRAMELAYOUTTYPE;
1938
1939/**
1940 * The OMX_TI_COLOR_FORMATTYPE enumeration is used to define the
1941 * extended color format types.
1942 */
1943typedef enum OMX_TI_COLOR_FORMATTYPE {
1944	OMX_TI_COLOR_FormatYUV420PackedSemiPlanarInterlaced =
1945	    (OMX_COLOR_FORMATTYPE) OMX_COLOR_FormatVendorStartUnused + 1,
1946	OMX_TI_COLOR_FormatRawBayer10bitStereo =
1947	    OMX_COLOR_FormatVendorStartUnused + 2, /**< 10 bit raw for stereo */
1948        OMX_TI_COLOR_FormatYUV420PackedSemiPlanar =
1949            (OMX_COLOR_FORMATTYPE) OMX_COLOR_FormatVendorStartUnused  + 0x100 /* 0x100 is used since it is the corresponding HAL pixel fromat */
1950} OMX_TI_COLOR_FORMATTYPE;
1951
1952/**
1953 * The OMX_TI_EXIFTAGSTATUS enumeration is used to define the
1954 * tag status types.
1955 */
1956typedef enum OMX_TI_EXIFTAGSTATUS {
1957	OMX_TI_TagReadOnly,     /**< implies this tag is generated within omx-camera >*/
1958	OMX_TI_TagReadWrite,    /**< implies this tag can be overwritten by client >*/
1959	OMX_TI_TagUpdated,      /**< client has to use this to indicate the specific tag is overwritten >*/
1960	OMX_TI_ExifStatus_Max = 0x7fffffff
1961} OMX_TI_EXIFTAGSTATUS;
1962
1963typedef struct OMX_TI_CONFIG_EXIF_TAGS {
1964	OMX_U32                 nSize;
1965	OMX_VERSIONTYPE         nVersion;
1966	OMX_U32                 nPortIndex;
1967	OMX_TI_EXIFTAGSTATUS    eStatusImageWidth;
1968	OMX_U32                 ulImageWidth;
1969	OMX_TI_EXIFTAGSTATUS    eStatusImageHeight;
1970	OMX_U32                 ulImageHeight;
1971	OMX_TI_EXIFTAGSTATUS    eStatusBitsPerSample;
1972	OMX_U16                 usBitsPerSample[3];
1973	OMX_TI_EXIFTAGSTATUS    eStatusCompression;
1974	OMX_U16                 usCompression;
1975	OMX_TI_EXIFTAGSTATUS    eStatusPhotometricInterpretation;
1976	OMX_U16                 usPhotometricInterpretation;
1977	OMX_TI_EXIFTAGSTATUS    eStatusOrientation;
1978	OMX_U16                 usOrientation;
1979	OMX_TI_EXIFTAGSTATUS    eStatusSamplesPerPixel;
1980	OMX_U16                 usSamplesPerPixel;
1981	OMX_TI_EXIFTAGSTATUS    eStatusPlanarConfiguration;
1982	OMX_U16                 usPlanarConfiguration;
1983	OMX_TI_EXIFTAGSTATUS    eStatusYCbCrSubSampling;
1984	OMX_U16                 usYCbCrSubSampling[2];
1985	OMX_TI_EXIFTAGSTATUS    eStatusYCbCrPositioning;
1986	OMX_U16                 usYCbCrPositioning;
1987	OMX_TI_EXIFTAGSTATUS    eStatusXResolution;
1988	OMX_U32                 ulXResolution[2];
1989	OMX_TI_EXIFTAGSTATUS    eStatusYResolution;
1990	OMX_U32                 ulYResolution[2];
1991	OMX_TI_EXIFTAGSTATUS    eStatusResolutionUnit;
1992	OMX_U16                 usResolutionUnit;
1993
1994	OMX_TI_EXIFTAGSTATUS    eStatusRowsPerStrip;
1995	OMX_U32                 ulRowsPerStrip;
1996	OMX_TI_EXIFTAGSTATUS    eStatusDataSize;
1997	OMX_U32                 ulDataSize;
1998
1999	OMX_TI_EXIFTAGSTATUS    eStatusTransferFunction;
2000	OMX_U16                 usTransferFunction[3*256];
2001	OMX_TI_EXIFTAGSTATUS    eStatusWhitePoint;
2002	OMX_U32                 ulWhitePoint[4]; //2x2
2003	OMX_TI_EXIFTAGSTATUS    eStatusPrimaryChromaticities;
2004	OMX_U32                 ulPrimaryChromaticities[12]; //2x6
2005	OMX_TI_EXIFTAGSTATUS    eStatusYCbCrCoefficients;
2006	OMX_U32                 ulYCbCrCoefficients[6]; //2x3
2007	OMX_TI_EXIFTAGSTATUS    eStatusReferenceBlackWhite;
2008	OMX_U32                 ulReferenceBlackWhite[12]; //2x6
2009	OMX_TI_EXIFTAGSTATUS    eStatusDateTime;
2010	OMX_S8*                 pDateTimeBuff;
2011	OMX_U32                 ulDateTimeBuffSizeBytes;
2012	OMX_TI_EXIFTAGSTATUS    eStatusImageDescription;
2013	OMX_S8*                 pImageDescriptionBuff;
2014	OMX_U32                 ulImageDescriptionBuffSizeBytes;
2015	OMX_TI_EXIFTAGSTATUS    eStatusMake;
2016	OMX_S8*                 pMakeBuff;
2017	OMX_U32                 ulMakeBuffSizeBytes;
2018	OMX_TI_EXIFTAGSTATUS    eStatusModel;
2019	OMX_S8*                 pModelBuff;
2020	OMX_U32                 ulModelBuffSizeBytes;
2021	OMX_TI_EXIFTAGSTATUS    eStatusSoftware;
2022	OMX_S8*                 pSoftwareBuff;
2023	OMX_U32                 ulSoftwareBuffSizeBytes;
2024	OMX_TI_EXIFTAGSTATUS    eStatusArtist;
2025	OMX_S8*                 pArtistBuff;
2026	OMX_U32                 ulArtistBuffSizeBytes;
2027	OMX_TI_EXIFTAGSTATUS    eStatusCopyright;
2028	OMX_S8*                 pCopyrightBuff;
2029	OMX_U32                 ulCopyrightBuffSizeBytes;
2030
2031	OMX_TI_EXIFTAGSTATUS    eStatusExifVersion;
2032	OMX_S8                  cExifVersion[4];
2033	OMX_TI_EXIFTAGSTATUS    eStatusFlashpixVersion;
2034	OMX_S8                  cFlashpixVersion[4];
2035	OMX_TI_EXIFTAGSTATUS    eStatusColorSpace;
2036	OMX_U16                 usColorSpace;
2037	OMX_TI_EXIFTAGSTATUS    eStatusComponentsConfiguration;
2038	OMX_S8                  cComponentsConfiguration[4];
2039	OMX_TI_EXIFTAGSTATUS    eStatusCompressedBitsPerPixel;
2040	OMX_U32                 ulCompressedBitsPerPixel[2];
2041	OMX_TI_EXIFTAGSTATUS    eStatusPixelXDimension;
2042	OMX_U32                 ulPixelXDimension;
2043	OMX_TI_EXIFTAGSTATUS    eStatusPixelYDimension;
2044	OMX_U32                 ulPixelYDimension;
2045	OMX_TI_EXIFTAGSTATUS    eStatusMakerNote;
2046	OMX_S8*                 pMakerNoteBuff;
2047	OMX_U32                 ulMakerNoteBuffSizeBytes;
2048	OMX_TI_EXIFTAGSTATUS    eStatusUserComment;
2049	OMX_S8*                 pUserCommentBuff;
2050	OMX_U32                 ulUserCommentBuffSizeBytes;
2051	OMX_TI_EXIFTAGSTATUS    eStatusRelatedSoundFile;
2052	OMX_S8                  cRelatedSoundFile[13];
2053	OMX_TI_EXIFTAGSTATUS    eStatusDateTimeOriginal;
2054	OMX_S8*                 pDateTimeOriginalBuff;
2055	OMX_U32                 ulDateTimeOriginalBuffSizeBytes;
2056	OMX_TI_EXIFTAGSTATUS    eStatusDateTimeDigitized;
2057	OMX_S8*                 pDateTimeDigitizedBuff;
2058	OMX_U32                 ulDateTimeDigitizedBuffSizeBytes;
2059	OMX_TI_EXIFTAGSTATUS    eStatusSubSecTime;
2060	OMX_S8*                 pSubSecTimeBuff;
2061	OMX_U32                 ulSubSecTimeBuffSizeBytes;
2062	OMX_TI_EXIFTAGSTATUS    eStatusSubSecTimeOriginal;
2063	OMX_S8*                 pSubSecTimeOriginalBuff;
2064	OMX_U32                 ulSubSecTimeOriginalBuffSizeBytes;
2065	OMX_TI_EXIFTAGSTATUS    eStatusSubSecTimeDigitized;
2066	OMX_S8*                 pSubSecTimeDigitizedBuff;
2067	OMX_U32                 ulSubSecTimeDigitizedBuffSizeBytes;
2068
2069	OMX_TI_EXIFTAGSTATUS    eStatusExposureTime;
2070	OMX_U32                 ulExposureTime[2];
2071	OMX_TI_EXIFTAGSTATUS    eStatusFNumber;
2072	OMX_U32                 ulFNumber[2];
2073	OMX_TI_EXIFTAGSTATUS    eStatusExposureProgram;
2074	OMX_U16                 usExposureProgram;
2075	OMX_TI_EXIFTAGSTATUS    eStatusSpectralSensitivity;
2076	OMX_S8*                 pSpectralSensitivityBuff;
2077	OMX_U32                 ulSpectralSensitivityBuffSizeBytes;
2078	OMX_TI_EXIFTAGSTATUS    eStatusISOCount;
2079	OMX_U16                 usISOCount;
2080	OMX_TI_EXIFTAGSTATUS    eStatusISOSpeedRatings;
2081	OMX_U16*                pISOSpeedRatings;
2082	OMX_TI_EXIFTAGSTATUS    eStatusOECF;
2083	OMX_S8*                 pOECFBuff;
2084	OMX_U32                 ulOECFBuffSizeBytes;
2085	OMX_TI_EXIFTAGSTATUS    eStatusShutterSpeedValue;
2086	OMX_S32                 slShutterSpeedValue[2];
2087	OMX_TI_EXIFTAGSTATUS    eStatusApertureValue;
2088	OMX_U32                 ulApertureValue[2];
2089	OMX_TI_EXIFTAGSTATUS    eStatusBrightnessValue;
2090	OMX_S32                 slBrightnessValue[2];
2091	OMX_TI_EXIFTAGSTATUS    eStatusExposureBiasValue;
2092	OMX_S32                 slExposureBiasValue[2];
2093	OMX_TI_EXIFTAGSTATUS    eStatusMaxApertureValue;
2094	OMX_U32                 ulMaxApertureValue[2];
2095	OMX_TI_EXIFTAGSTATUS    eStatusSubjectDistance;
2096	OMX_U32                 ulSubjectDistance[2];
2097	OMX_TI_EXIFTAGSTATUS    eStatusMeteringMode;
2098	OMX_U16                 usMeteringMode;
2099	OMX_TI_EXIFTAGSTATUS    eStatusLightSource;
2100	OMX_U16                 usLightSource;
2101	OMX_TI_EXIFTAGSTATUS    eStatusFlash;
2102	OMX_U16                 usFlash;
2103	OMX_TI_EXIFTAGSTATUS    eStatusFocalLength;
2104	OMX_U32                 ulFocalLength[2];
2105	OMX_TI_EXIFTAGSTATUS    eStatusSubjectArea;
2106	OMX_U16                 usSubjectArea[4];
2107	OMX_TI_EXIFTAGSTATUS    eStatusFlashEnergy;
2108	OMX_U32                 ulFlashEnergy[2];
2109	OMX_TI_EXIFTAGSTATUS    eStatusSpatialFrequencyResponse;
2110	OMX_S8*                 pSpatialFrequencyResponseBuff;
2111	OMX_U32                 ulSpatialFrequencyResponseBuffSizeBytes;
2112	OMX_TI_EXIFTAGSTATUS    eStatusFocalPlaneXResolution;
2113	OMX_U32                 ulFocalPlaneXResolution[2];
2114	OMX_TI_EXIFTAGSTATUS    eStatusFocalPlaneYResolution;
2115	OMX_U32                 ulFocalPlaneYResolution[2];
2116	OMX_TI_EXIFTAGSTATUS    eStatusFocalPlaneResolutionUnit;
2117	OMX_U16                 usFocalPlaneResolutionUnit;
2118	OMX_TI_EXIFTAGSTATUS    eStatusSubjectLocation;
2119	OMX_U16                 usSubjectLocation[2];
2120	OMX_TI_EXIFTAGSTATUS    eStatusExposureIndex;
2121	OMX_U32                 ulExposureIndex[2];
2122	OMX_TI_EXIFTAGSTATUS    eStatusSensingMethod;
2123	OMX_U16                 usSensingMethod;
2124	OMX_TI_EXIFTAGSTATUS    eStatusFileSource;
2125	OMX_S8                  cFileSource;
2126	OMX_TI_EXIFTAGSTATUS    eStatusSceneType;
2127	OMX_S8                  cSceneType;
2128	OMX_TI_EXIFTAGSTATUS    eStatusCFAPattern;
2129	OMX_S8*                 pCFAPatternBuff;
2130	OMX_U32                 ulCFAPatternBuffSizeBytes;
2131	OMX_TI_EXIFTAGSTATUS    eStatusCustomRendered;
2132	OMX_U16                 usCustomRendered;
2133	OMX_TI_EXIFTAGSTATUS    eStatusExposureMode;
2134	OMX_U16                 usExposureMode;
2135	OMX_TI_EXIFTAGSTATUS    eStatusWhiteBalance;
2136	OMX_U16                 usWhiteBalance;
2137	OMX_TI_EXIFTAGSTATUS    eStatusDigitalZoomRatio;
2138	OMX_U32                 ulDigitalZoomRatio[2];
2139	OMX_TI_EXIFTAGSTATUS    eStatusFocalLengthIn35mmFilm;
2140	OMX_U16                 usFocalLengthIn35mmFilm;
2141	OMX_TI_EXIFTAGSTATUS    eStatusSceneCaptureType;
2142	OMX_U16                 usSceneCaptureType;
2143	OMX_TI_EXIFTAGSTATUS    eStatusGainControl;
2144	OMX_U16                 usGainControl;
2145	OMX_TI_EXIFTAGSTATUS    eStatusContrast;
2146	OMX_U16                 usContrast;
2147	OMX_TI_EXIFTAGSTATUS    eStatusSaturation;
2148	OMX_U16                 usSaturation;
2149	OMX_TI_EXIFTAGSTATUS    eStatusSharpness;
2150	OMX_U16                 usSharpness;
2151	OMX_TI_EXIFTAGSTATUS    eStatusDeviceSettingDescription;
2152	OMX_S8*                 pDeviceSettingDescriptionBuff;
2153	OMX_U32                 ulDeviceSettingDescriptionBuffSizeBytes;
2154	OMX_TI_EXIFTAGSTATUS    eStatusSubjectDistanceRange;
2155	OMX_U16                 usSubjectDistanceRange;
2156
2157	OMX_TI_EXIFTAGSTATUS    eStatusImageUniqueID;
2158	OMX_S8                  cImageUniqueID[33];
2159	OMX_U8*                 pPrivateNextIFDPointer;    //Should not be used by the application
2160	OMX_U8*                 pPrivateThumbnailSize;     //Should not be used by the application
2161	OMX_U8*                 pPrivateTiffHeaderPointer; //Should not be used by the application
2162
2163	OMX_TI_EXIFTAGSTATUS    eStatusGpsVersionId;
2164	OMX_U8                  ucGpsVersionId[4];
2165	OMX_TI_EXIFTAGSTATUS    eStatusGpslatitudeRef;
2166	OMX_S8                  cGpslatitudeRef[2];
2167	OMX_TI_EXIFTAGSTATUS    eStatusGpsLatitude;
2168	OMX_U32                 ulGpsLatitude[6];
2169	OMX_TI_EXIFTAGSTATUS    eStatusGpsLongitudeRef;
2170	OMX_S8                  cGpsLongitudeRef[2];
2171	OMX_TI_EXIFTAGSTATUS    eStatusGpsLongitude;
2172	OMX_U32                 ulGpsLongitude[6];
2173	OMX_TI_EXIFTAGSTATUS    eStatusGpsAltitudeRef;
2174	OMX_U8                  ucGpsAltitudeRef;
2175	OMX_TI_EXIFTAGSTATUS    eStatusGpsAltitude;
2176	OMX_U32                 ulGpsAltitude[2];
2177	OMX_TI_EXIFTAGSTATUS    eStatusGpsTimeStamp;
2178	OMX_U32                 ulGpsTimeStamp[6];
2179	OMX_TI_EXIFTAGSTATUS    eStatusGpsSatellites;
2180	OMX_S8*                 pGpsSatellitesBuff;
2181	OMX_U32                 ulGpsSatellitesBuffSizeBytes;
2182	OMX_TI_EXIFTAGSTATUS    eStatusGpsStatus;
2183	OMX_S8                  cGpsStatus[2];
2184	OMX_TI_EXIFTAGSTATUS    eStatusGpsMeasureMode;
2185	OMX_S8                  cGpsMeasureMode[2];
2186	OMX_TI_EXIFTAGSTATUS    eStatusGpsDop;
2187	OMX_U32                 ulGpsDop[2];
2188	OMX_TI_EXIFTAGSTATUS    eStatusGpsSpeedRef;
2189	OMX_S8                  cGpsSpeedRef[2];
2190	OMX_TI_EXIFTAGSTATUS    eStatusGpsSpeed;
2191	OMX_U32                 ulGpsSpeed[2];
2192	OMX_TI_EXIFTAGSTATUS    eStatusGpsTrackRef;
2193	OMX_S8                  cGpsTrackRef[2];
2194	OMX_TI_EXIFTAGSTATUS    eStatusGpsTrack;
2195	OMX_U32                 ulGpsTrack[2];
2196	OMX_TI_EXIFTAGSTATUS    eStatusGpsImgDirectionRef;
2197	OMX_S8                  cGpsImgDirectionRef[2];
2198	OMX_TI_EXIFTAGSTATUS    eStatusGpsImgDirection;
2199	OMX_U32                 ulGpsImgDirection[2];
2200	OMX_TI_EXIFTAGSTATUS    eStatusGpsMapDatum;
2201	OMX_S8*                 pGpsMapDatumBuff;
2202	OMX_U32                 ulGpsMapDatumBuffSizeBytes;
2203	OMX_TI_EXIFTAGSTATUS    eStatusGpsDestLatitudeRef;
2204	OMX_S8                  cGpsDestLatitudeRef[2];
2205	OMX_TI_EXIFTAGSTATUS    eStatusGpsDestLatitude;
2206	OMX_U32                 ulGpsDestLatitude[6];
2207	OMX_TI_EXIFTAGSTATUS    eStatusGpsDestLongitudeRef;
2208	OMX_S8                  cGpsDestLongitudeRef[2];
2209	OMX_TI_EXIFTAGSTATUS    eStatusGpsDestLongitude;
2210	OMX_U32                 ulGpsDestLongitude[6];
2211	OMX_TI_EXIFTAGSTATUS    eStatusGpsDestBearingRef;
2212	OMX_S8                  cGpsDestBearingRef[2];
2213	OMX_TI_EXIFTAGSTATUS    eStatusGpsDestBearing;
2214	OMX_U32                 ulGpsDestBearing[2];
2215	OMX_TI_EXIFTAGSTATUS    eStatusGpsDestDistanceRef;
2216	OMX_S8                  cGpsDestDistanceRef[2];
2217	OMX_TI_EXIFTAGSTATUS    eStatusGpsDestDistance;
2218	OMX_U32                 ulGpsDestDistance[2];
2219	OMX_TI_EXIFTAGSTATUS    eStatusGpsProcessingMethod;
2220	OMX_S8*                 pGpsProcessingMethodBuff;
2221	OMX_U32                 ulGpsProcessingMethodBuffSizeBytes;
2222	OMX_TI_EXIFTAGSTATUS    eStatusGpsAreaInformation;
2223	OMX_S8*                 pGpsAreaInformationBuff;
2224	OMX_U32                 ulGpsAreaInformationBuffSizeBytes;
2225	OMX_TI_EXIFTAGSTATUS    eStatusGpsDateStamp;
2226	OMX_S8                  cGpsDateStamp[11];
2227	OMX_TI_EXIFTAGSTATUS    eStatusGpsDifferential;
2228	OMX_U16                 usGpsDifferential;
2229} OMX_TI_CONFIG_EXIF_TAGS;
2230
2231/**
2232 * Structure used to configure current OMX_TI_SENMOUNT_TYPE
2233 *
2234 * @param nSenId
2235 * @param nRotation
2236 */
2237typedef struct OMX_TI_SENMOUNT_TYPE {
2238    OMX_U32             nSenId;
2239    OMX_U32             nRotation;
2240}OMX_TI_SENMOUNT_TYPE;
2241
2242/**
2243 * Structure used to configure current OMX_TI_VARFPSTYPE
2244 *
2245 * @param nVarFPSMin    Number of the smallest FPS supported.
2246 * @param nVarFPSMax    Number of the biggest FPS supported.
2247 */
2248typedef struct OMX_TI_VARFPSTYPE {
2249    OMX_U32                 nVarFPSMin;
2250    OMX_U32                 nVarFPSMax;
2251} OMX_TI_VARFPSTYPE;
2252
2253/**
2254 * Structure used to configure current OMX_TI_CONFIG_SHAREDBUFFER
2255 *
2256 * STRUCT MEMBERS:
2257 * nSize            : Size of the structure in bytes
2258 * nVersion         : OMX specification version information
2259 * nPortIndex       : Port that this structure applies to
2260 * nSharedBuffSize  : Size of the pSharedBuff in bytes
2261 * pSharedBuff      : Pointer to a buffer
2262 */
2263typedef struct OMX_TI_CONFIG_SHAREDBUFFER {
2264	OMX_U32 nSize;
2265	OMX_VERSIONTYPE nVersion;
2266	OMX_U32 nPortIndex;
2267	OMX_U32 nSharedBuffSize;
2268	OMX_U8* pSharedBuff;
2269} OMX_TI_CONFIG_SHAREDBUFFER;
2270
2271/**
2272 * Structure used to configure current OMX_TI_CAPRESTYPE
2273 *
2274 * STRUCT MEMBERS:
2275 * nSize            : Size of the structure in bytes
2276 * nVersion         : OMX specification version information
2277 * nPortIndex       : Port that this structure applies to
2278 * nWidthMin        : Number of the smallest width supported
2279 * nHeightMin       : Number of the smallest height supported
2280 * nWidthMax        : Number of the biggest width supported
2281 * nHeightMax       : Number of the biggest height supported
2282 */
2283typedef struct OMX_TI_CAPRESTYPE {
2284	OMX_U32         nSize;
2285	OMX_VERSIONTYPE nVersion;
2286	OMX_U32         nPortIndex;
2287	OMX_U32         nWidthMin;  // smallest width supported
2288	OMX_U32         nHeightMin; // smallest height supported
2289	OMX_U32         nWidthMax;  // biggest width supported
2290	OMX_U32         nHeightMax; // biggest height supported
2291} OMX_TI_CAPRESTYPE;
2292
2293/**
2294 * Structure used to configure current OMX_TI_CAPTYPE
2295 *
2296 * STRUCT MEMBERS:
2297 * nSize                                : Size of the structure in bytes
2298 * nVersion                             : OMX specification version information
2299 * nPortIndex                           : Port that this structure applies to
2300 * ulPreviewFormatCount                 : Number of the supported preview pixelformat count
2301 * ePreviewFormats                      : Array containing the supported preview pixelformat count
2302 * ulImageFormatCount                   : Number of the supported image pixelformat count
2303 * eImageFormats                        : Array containing the supported image pixelformat count
2304 * tPreviewResRange                     : Supported preview resolution range
2305 * tImageResRange                       : Supported image resolution range
2306 * tThumbResRange                       : Supported thumbnail resolution range
2307 * ulWhiteBalanceCount                  : Supported whitebalance mode count
2308 * eWhiteBalanceModes                   : Array containing the whitebalance modes
2309 * ulColorEffectCount                   : Supported effects count
2310 * eColorEffects                        : Array containing the supported effects
2311 * xMaxWidthZoom                        : Fixed point value stored as Q16 representing the maximum value for the Zoom allowed on Width
2312 * xMaxHeightZoom                       : Fixed point value stored as Q16 representing the maximum value for the Zoom allowed on Height
2313 * ulFlickerCount                       : Number of the supported anti-flicker modes
2314 * eFlicker                             : Array containing the supported anti-flicker modes
2315 * ulExposureModeCount                  : Number of the supported exposure modes
2316 * eExposureModes                       : Array containing the supported exposure modes
2317 * bLensDistortionCorrectionSupported   : Flag for Lens Distortion Correction Algorithm support
2318 * bISONoiseFilterSupported             : Flag for Noise Filter Algorithm support
2319 * xEVCompensationMin                   : Fixed point value stored as Q16 representing the EVCompensation minumum allowed value
2320 * xEVCompensationMax                   : Fixed point value stored as Q16 representing the EVCompensation maximum allowed value
2321 * nSensitivityMax                      : nSensitivityMax = 100 implies maximum supported equal to "ISO 100"
2322 * ulFocusModeCount                     : Number of the supported focus modes
2323 * eFocusModes                          : Array containing the supported focus modes
2324 * ulSceneCount                         : Number of the supported scenes
2325 * eSceneModes                          : Array containing the supported scenes
2326 * ulFlashCount                         : Number of the supported flash modes
2327 * eFlashModes                          : Array containing the supported flash modes
2328 * xFramerateMin                        : Fixed point value stored as Q16 representing the minimum framerate allowed
2329 * xFramerateMax                        : Fixed point value stored as Q16 representing the maximum framerate allowed
2330 * bContrastSupported                   : Flag showing if the contrast is supported
2331 * bSaturationSupported                 : Flag showing if the saturation is supported
2332 * bBrightnessSupported                 : Flag showing if the brightness is supported
2333 * bProcessingLevelSupported            : Flag showing if the processing level is supported
2334 * bQFactorSupported                    : Flag showing if the QFactor is supported
2335 * ulPrvVarFPSModesCount                : Number of preview FPS modes
2336 * tPrvVarFPSModes                      : Preview FPS modes
2337 * ulCapVarFPSModesCount                : Number of capture FPS modes
2338 * tCapVarFPSModes                      : Capture FPS modes
2339 * tSenMounting                         : Sensor mount information
2340 */
2341typedef struct OMX_TI_CAPTYPE {
2342	OMX_U32                 nSize;
2343	OMX_VERSIONTYPE         nVersion;
2344	OMX_U32                 nPortIndex;
2345	OMX_U16                 ulPreviewFormatCount;   // supported preview pixelformat count
2346	OMX_COLOR_FORMATTYPE    ePreviewFormats[100];
2347	OMX_U16                 ulImageFormatCount;     // supported image pixelformat count
2348	OMX_COLOR_FORMATTYPE    eImageFormats[100];
2349	OMX_TI_CAPRESTYPE       tPreviewResRange;       // supported preview resolution range
2350	OMX_TI_CAPRESTYPE       tImageResRange;         // supported image resolution range
2351	OMX_TI_CAPRESTYPE       tThumbResRange;         // supported thumbnail resolution range
2352	OMX_U16                 ulWhiteBalanceCount;    // supported whitebalance mode count
2353	OMX_WHITEBALCONTROLTYPE eWhiteBalanceModes[100];
2354	OMX_U16                 ulColorEffectCount;     // supported effects count
2355	OMX_IMAGEFILTERTYPE     eColorEffects[100];
2356	OMX_S32                 xMaxWidthZoom;          // Fixed point value stored as Q16
2357	OMX_S32                 xMaxHeightZoom;         // Fixed point value stored as Q16
2358	OMX_U16                 ulFlickerCount;         // supported anti-flicker mode count
2359	OMX_COMMONFLICKERCANCELTYPE     eFlicker[100];
2360	OMX_U16                 ulExposureModeCount;    // supported exposure mode count
2361	OMX_EXPOSURECONTROLTYPE eExposureModes[100];
2362	OMX_BOOL                bLensDistortionCorrectionSupported;
2363	OMX_BOOL                bISONoiseFilterSupported;
2364	OMX_S32                 xEVCompensationMin;     // Fixed point value stored as Q16
2365	OMX_S32                 xEVCompensationMax;     // Fixed point value stored as Q16
2366	OMX_U32                 nSensitivityMax;        // nSensitivityMax = 100 implies maximum supported equal to "ISO 100"
2367	OMX_U16                 ulFocusModeCount;       // supported focus mode count
2368	OMX_IMAGE_FOCUSCONTROLTYPE      eFocusModes[100];
2369	OMX_U16                 ulSceneCount;           // supported scene count
2370	OMX_SCENEMODETYPE       eSceneModes[100];
2371	OMX_U16                 ulFlashCount;           // supported flash modes count
2372	OMX_IMAGE_FLASHCONTROLTYPE      eFlashModes[100];
2373	OMX_U32                 xFramerateMin;          // Fixed point value stored as Q16
2374	OMX_U32                 xFramerateMax;          // Fixed point value stored as Q16
2375	OMX_BOOL                bContrastSupported;
2376	OMX_BOOL                bSaturationSupported;
2377	OMX_BOOL                bBrightnessSupported;
2378	OMX_BOOL                bProcessingLevelSupported;
2379	OMX_BOOL                bQFactorSupported;
2380	OMX_U16                 ulPrvVarFPSModesCount;  // supported variable FPS preview modes count
2381	OMX_TI_VARFPSTYPE       tPrvVarFPSModes[10];
2382	OMX_U16                 ulCapVarFPSModesCount;  // supported variable FPS capture modes count
2383	OMX_TI_VARFPSTYPE       tCapVarFPSModes[10];
2384	OMX_TI_SENMOUNT_TYPE    tSenMounting;
2385} OMX_TI_CAPTYPE;
2386
2387/**
2388 * Defines 3A Face priority mode.
2389 *
2390 * STRUCT MEMBERS:
2391 *  nSize               : Size of the structure in bytes
2392 *  nVersion            : OMX specification version information
2393 *  nPortIndex          : Port that this structure applies to
2394 *  bAwbFaceEnable      : Enable Face priority for Auto White Balance
2395 *  bAeFaceEnable       : Enable Face priority for Auto Exposure
2396 *  bAfFaceEnable       : Enable Face priority for Auto Focus
2397 */
2398typedef struct OMX_TI_CONFIG_3A_FACE_PRIORITY {
2399	OMX_U32 nSize;
2400	OMX_VERSIONTYPE nVersion;
2401	OMX_U32 nPortIndex;
2402	OMX_BOOL bAwbFaceEnable;
2403	OMX_BOOL bAeFaceEnable;
2404	OMX_BOOL bAfFaceEnable;
2405} OMX_TI_CONFIG_3A_FACE_PRIORITY;
2406
2407/**
2408 * Defines 3A Region priority mode.
2409 *
2410 * STRUCT MEMBERS:
2411 *  nSize               : Size of the structure in bytes
2412 *  nVersion            : OMX specification version information
2413 *  nPortIndex          : Port that this structure applies to
2414 *  bAwbFaceEnable      : Enable Region priority for Auto White Balance
2415 *  bAeFaceEnable       : Enable Region priority for Auto Exposure
2416 *  bAfFaceEnable       : Enable Region priority for Auto Focus
2417 */
2418typedef struct OMX_TI_CONFIG_3A_REGION_PRIORITY {
2419	OMX_U32 nSize;
2420	OMX_VERSIONTYPE nVersion;
2421	OMX_U32 nPortIndex;
2422	OMX_BOOL bAwbRegionEnable;
2423	OMX_BOOL bAeRegionEnable;
2424	OMX_BOOL bAfRegionEnable;
2425} OMX_TI_CONFIG_3A_REGION_PRIORITY;
2426
2427/*
2428* STRUCT MEMBERS:
2429* nSize         : Size of the structure in bytes
2430* nVersion      : OMX specification version information
2431* nPortIndex    : Port that this structure applies to
2432* bAutoConvergence : Enable/Disable Auto Convergence
2433*/
2434typedef struct OMX_TI_PARAM_AUTOCONVERGENCETYPE {
2435	OMX_U32 nSize;
2436	OMX_VERSIONTYPE nVersion;
2437	OMX_U32 nPortIndex;
2438	OMX_BOOL bAutoConvergence;
2439} OMX_TI_PARAM_AUTOCONVERGENCETYPE;
2440
2441/**
2442 * Focus distance configuration
2443 *
2444 *  STRUCT MEMBERS:
2445 *  nSize: Size of the structure in bytes
2446 *  nVersion: OMX specification version information
2447 *  nPortIndex: Port that this structure applies to
2448 *  nFocusDistanceNear : Specifies the near focus distance in mm ( 0 equals infinity )
2449 *  nFocusDistanceOptimal : Specifies the optimal focus distance in mm ( 0 equals infinity )
2450 *  nFocusDistanceFar : Specifies the far focus distance in mm ( 0 equals infinity )
2451 *  nLensPosition : Specifies the current lens position in driver units
2452 */
2453typedef struct OMX_TI_CONFIG_FOCUSDISTANCETYPE {
2454    OMX_U32 nSize;
2455    OMX_VERSIONTYPE nVersion;
2456    OMX_U32 nPortIndex;
2457    OMX_U32 nFocusDistanceNear;
2458    OMX_U32 nFocusDistanceOptimal;
2459    OMX_U32 nFocusDistanceFar;
2460    OMX_S32 nLensPosition;
2461} OMX_TI_CONFIG_FOCUSDISTANCETYPE;
2462
2463/*
2464* STRUCT MEMBERS:
2465* nSize             : Size of the structure in bytes
2466* nVersion          : OMX specification version information
2467* nPortIndex        : Port that this structure applies to
2468* pAAAskipBuff      : Pointer to a buffer
2469* AAAskipBuffId     : Id of the send buffer
2470* AAAskipBuffSize   : Size of the sent buffer
2471*/
2472typedef struct OMX_TI_CONFIG_AAASKIPBUFFERTYPE {
2473	OMX_U32 nSize;
2474	OMX_VERSIONTYPE nVersion;
2475	OMX_U32 nPortIndex;
2476	OMX_PTR pAAAskipBuff;
2477	OMX_U32 AAAskipBuffId;
2478	OMX_U32 AAAskipBuffSize;
2479} OMX_TI_CONFIG_AAASKIPBUFFERTYPE;
2480
2481
2482/**
2483 * The OMX_TI_BRIGHTNESSCONTRASTCRTLTYPE enumeration is used to define the
2484 * brightness and contrast mode types.
2485 */
2486typedef enum OMX_TI_BRIGHTNESSCONTRASTCRTLTYPE {
2487	OMX_TI_BceModeOff = 0,
2488	OMX_TI_BceModeOn,
2489	OMX_TI_BceModeAuto,
2490	OMX_TI_BceModeMax = 0x7FFFFFFF
2491} OMX_TI_BRIGHTNESSCONTRASTCRTLTYPE;
2492
2493/**
2494 * Local and global brightness contrast type.
2495 *
2496 * STRUCT MEMBERS:
2497 *  nSize             : Size of the structure in bytes
2498 *  nVersion          : OMX specification version information
2499 *  nPortIndex        : Port that this structure applies to
2500 *  eControl          : Control field for GLBCE
2501 */
2502typedef struct OMX_TI_CONFIG_LOCAL_AND_GLOBAL_BRIGHTNESSCONTRASTTYPE {
2503	OMX_U32 nSize;
2504	OMX_VERSIONTYPE nVersion;
2505	OMX_U32 nPortIndex;
2506	OMX_TI_BRIGHTNESSCONTRASTCRTLTYPE eControl;
2507} OMX_TI_CONFIG_LOCAL_AND_GLOBAL_BRIGHTNESSCONTRASTTYPE;
2508
2509/**
2510 * Uncompressed image operating mode configuration structure.
2511 *
2512 * @param nSize         Size of the structure in bytes.
2513 * @param nVersion      OMX specification version information.
2514 * @param xMin          The minimum frame rate allowed.
2515 *                      Units are Q16 frames per second.
2516 * @param xMax          The maximum frame rate allowed.
2517 *                      Units are Q16 frames per second.
2518 */
2519
2520typedef struct OMX_TI_CONFIG_VARFRMRANGETYPE {
2521    OMX_U32 nSize;
2522    OMX_VERSIONTYPE nVersion;
2523    OMX_U32 xMin;
2524    OMX_U32 xMax;
2525} OMX_TI_CONFIG_VARFRMRANGETYPE;
2526
2527/**
2528* A pointer to this struct is passed to the OMX_SetParameter when the extension
2529* index for the 'OMX.google.android.index.enableAndroidNativeBuffers' extension
2530* is given.
2531* The corresponding extension Index is OMX_TI_IndexUseNativeBuffers.
2532* This will be used to inform OMX about the presence of gralloc pointers instead
2533* of virtual pointers
2534*/
2535typedef struct OMX_TI_PARAMUSENATIVEBUFFER {
2536    OMX_U32 nSize;
2537    OMX_VERSIONTYPE nVersion;
2538    OMX_U32 nPortIndex;
2539    OMX_BOOL bEnable;
2540} OMX_TI_PARAMUSENATIVEBUFFER;
2541
2542/*==========================================================================*/
2543/*!
2544@brief OMX_TI_PARAM_ENHANCEDPORTRECONFIG : Suport added to new port reconfig usage
2545@param bUsePortReconfigForCrop       Enables port reconfig for crop.
2546@param bUsePortReconfigForPadding    Enables port reconfig for padding
2547*/
2548/*==========================================================================*/
2549
2550typedef struct OMX_TI_PARAM_ENHANCEDPORTRECONFIG {
2551    OMX_U32 nSize;
2552    OMX_VERSIONTYPE nVersion;
2553    OMX_U32 nPortIndex;
2554    OMX_BOOL bUsePortReconfigForCrop;
2555    OMX_BOOL bUsePortReconfigForPadding;
2556} OMX_TI_PARAM_ENHANCEDPORTRECONFIG;
2557
2558/**
2559* Define the frames queue len for ZSL
2560*
2561* STRUCT MEMBERS:
2562* nSize: Size of the structure in bytes
2563* nVersion: OMX specification version information
2564* nHistoryLen: History len in number of frames
2565*/
2566typedef struct OMX_TI_PARAM_ZSLHISTORYLENTYPE {
2567    OMX_U32 nSize;
2568    OMX_VERSIONTYPE nVersion;
2569    OMX_U32 nHistoryLen;
2570} OMX_TI_PARAM_ZSLHISTORYLENTYPE;
2571
2572/**
2573* Define the frame delay in ms for ZSL
2574*
2575* STRUCT MEMBERS:
2576* nSize: Size of the structure in bytes
2577* nVersion: OMX specification version information
2578* nDelay: Capture frame delay in ms
2579*/
2580typedef struct OMX_TI_CONFIG_ZSLDELAYTYPE {
2581    OMX_U32 nSize;
2582    OMX_VERSIONTYPE nVersion;
2583    OMX_S32 nDelay;
2584} OMX_TI_CONFIG_ZSLDELAYTYPE;
2585
2586
2587#ifdef __cplusplus
2588}
2589#endif /* __cplusplus */
2590
2591#endif
2592
2593
2594