1c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*
2c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Copyright (c) 2010, Texas Instruments Incorporated
3c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * All rights reserved.
4c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
5c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Redistribution and use in source and binary forms, with or without
6c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * modification, are permitted provided that the following conditions
7c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * are met:
8c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
9c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * *  Redistributions of source code must retain the above copyright
10c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *    notice, this list of conditions and the following disclaimer.
11c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
12c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * *  Redistributions in binary form must reproduce the above copyright
13c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *    notice, this list of conditions and the following disclaimer in the
14c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *    documentation and/or other materials provided with the distribution.
15c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
16c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * *  Neither the name of Texas Instruments Incorporated nor the names of
17c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *    its contributors may be used to endorse or promote products derived
18c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *    from this software without specific prior written permission.
19c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
20c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
32c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
33c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* -------------------------------------------------------------------------- *
34c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
35c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @file:OMX_TI_IVCommon.h
36c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * This header defines the structures specific to the config indices of msp_VPPM.
37c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
38c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @path ..\OMAPSW_SysDev\multimedia\omx\khronos1_1\omx_core\inc
39c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
40c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * -------------------------------------------------------------------------- */
41c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
42c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ======================================================================== *!
43c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *! Revision History
44c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *! ==================================================================== */
45c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
46c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#ifndef OMX_TI_IVCommon_H
47c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define OMX_TI_IVCommon_H
48c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
49c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#ifdef __cplusplus
50c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevextern "C" {
51c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#endif /* __cplusplus */
52c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
53c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#include <OMX_IVCommon.h>
54c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#include <OMX_Image.h>
55c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
56e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen#define DCC_PATH  "/data/misc/camera/"
57c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
58c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define MAX_URI_LENGTH      (OMX_MAX_STRINGNAME_SIZE)
59bc0e345c35480fb8036a766f47a7ed65e98947c5Milen Mitkov#define MAX_ALGOAREAS       (35)
60c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
61c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*======================================================================= */
62c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* Enumerated values for operation mode for compressed image
63c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
64c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * ENUMS:
65c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Chunk         : Chunk based operation
66c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * NonChunk    : Non-chunk based operation
67c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
68c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev /* ======================================================================= */
69c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_JPEG_COMPRESSEDMODETYPE {
70c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_JPEG_ModeChunk = 0,
71e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_JPEG_ModeNonChunk,
72e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_JPEG_CompressedmodeMax = 0x7fffffff
73c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_JPEG_COMPRESSEDMODETYPE ;
74c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
75c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
76c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*======================================================================= */
77c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* Enumerated values for operation mode for uncompressed image
78c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
79c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * ENUMS:
80c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Frame   :  Frame based operation
81c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Slice   : Slice based operation
82c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Stitch  : For stitching between image frames
83c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Burst   :  For stitching between image frames
84c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
85c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev /* ======================================================================= */
86c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_JPEG_UNCOMPRESSEDMODETYPE {
87c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_JPEG_UncompressedModeFrame = 0,
88c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_JPEG_UncompressedModeSlice,
89c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_JPEG_UncompressedModeStitch,
90e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_JPEG_UncompressedModeBurst,
91e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_JPEG_UncompressedModeMax = 0x7fffffff
92c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_JPEG_UNCOMPRESSEDMODETYPE;
93c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
94c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
95c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
96c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*======================================================================= */
97c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* Configuration structure for compressed image
98c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
99c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
100c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize                 : Size of the structure in bytes
101c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion              : OMX specification version information
102c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex            : Port that this structure applies to
103c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  eCompressedImageMode  : Operating mode enumeration for compressed image
104c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
105c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev /*======================================================================= */
106c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_JPEG_PARAM_COMPRESSEDMODETYPE{
107c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
108c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
109c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
110c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_JPEG_COMPRESSEDMODETYPE eCompressedImageMode;
111c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_JPEG_PARAM_COMPRESSEDMODETYPE;
112c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
113c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
114c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
115c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*======================================================================= */
116c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* Uncompressed image Operating mode configuration structure
117c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
118c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
119c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nSize                     : Size of the structure in bytes
120c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nVersion                  : OMX specification version information
121c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nPortIndex                : Port that this structure applies to
122c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nBurstLength              : No of frames to be dumped in burst mode
123c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * eUncompressedImageMode    : uncompressed image mode information
124c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * eSourceType               : Image encode souce info
125c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * tRotationInfo             : Rotation related information
126c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
127c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev /*======================================================================= */
128c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_JPEG_PARAM_UNCOMPRESSEDMODETYPE{
129c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
130c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
131c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
132c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nBurstLength;
133c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_JPEG_UNCOMPRESSEDMODETYPE eUncompressedImageMode;
134c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_JPEG_PARAM_UNCOMPRESSEDMODETYPE;
135c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
136c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
137c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*======================================================================= */
138c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* Subregion Decode Parameter configuration structure
139c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
140c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
141c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nSize                     : Size of the structure in bytes
142c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nVersion                  : OMX specification version information
143c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nXOrg                     : Sectional decoding X origin
144c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nYOrg                     : Sectional decoding Y origin
145c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nXLength                  : Sectional decoding X length
146c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nYLength                  : Sectional decoding Y length
147c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
148c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev /*======================================================================= */
149c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_IMAGE_PARAM_DECODE_SUBREGION{
150c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
151c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
152c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nXOrg;
153c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nYOrg;
154c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nXLength;
155c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nYLength;
156c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_IMAGE_PARAM_DECODE_SUBREGION;
157c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
158c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
159c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
160c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * sensor select  types
161c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
162c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_SENSORSELECT{
163c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_PrimarySensor = 0,
164c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_SecondarySensor,
165c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_TI_StereoSensor,
166c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_SensorTypeMax = 0x7fffffff
167c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_SENSORSELECT;
168c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
169c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
170c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
171c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Sensor Select
172c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
173c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef  struct OMX_CONFIG_SENSORSELECTTYPE {
174c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevOMX_U32  nSize; /**< Size of the structure in bytes */
175c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevOMX_VERSIONTYPE nVersion; /**< OMX specification version info */
176c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevOMX_U32 nPortIndex; /**< Port that this struct applies to */
177c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevOMX_SENSORSELECT eSensor; /**< sensor select */
178c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_SENSORSELECTTYPE;
179c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
180c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
181c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Flicker cancellation types
182c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
183c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_COMMONFLICKERCANCELTYPE{
184c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_FlickerCancelOff = 0,
185c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_FlickerCancelAuto,
186c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_FlickerCancel50,
187c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_FlickerCancel60,
188c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_FlickerCancel100,
189c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_FlickerCancel120,
190c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_FlickerCancelMax = 0x7fffffff
191c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_COMMONFLICKERCANCELTYPE;
192c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
193c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_FLICKERCANCELTYPE {
194c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_U32 nSize;
195c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_VERSIONTYPE nVersion;
196c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_U32 nPortIndex;
197c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_COMMONFLICKERCANCELTYPE eFlickerCancel;
198c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_FLICKERCANCELTYPE;
199c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
200c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
201c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
202c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Sensor caleberation types
203c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
204c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_SENSORCALTYPE{
205c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_SensorCalFull = 0,
206c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_SensorCalQuick,
207c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_SensorCalMax = 0x7fffffff
208c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_SENSORCALTYPE;
209c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
210c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_SENSORCALTYPE {
211c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_U32 nSize;
212c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_VERSIONTYPE nVersion;
213c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_U32 nPortIndex;
214c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_SENSORCALTYPE eSensorCal;
215c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_SENSORCALTYPE;
216c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
217c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
218c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Scene mode types
219c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
220c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_SCENEMODETYPE{
221c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
222c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_Manual = 0,
223c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_Closeup,
224c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_Portrait,
225c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_Landscape,
226c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_Underwater,
227c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_Sport,
228c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_SnowBeach,
229c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_Mood,
230c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_NightPortrait,
231c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_NightIndoor,
232c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_Fireworks,
233c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_Document, /**< for still image */
234c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_Barcode, /**< for still image */
235c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_SuperNight, /**< for video */
236c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_Cine, /**< for video */
237c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_OldFilm, /**< for video */
238c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_TI_Action,
239c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_TI_Beach,
240c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_TI_Candlelight,
241c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_TI_Night,
242c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_TI_Party,
243c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_TI_Portrait,
244c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_TI_Snow,
245c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_TI_Steadyphoto,
246c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_TI_Sunset,
247c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_TI_Theatre,
248c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_SceneModeMax = 0x7fffffff
249c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_SCENEMODETYPE;
250c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
251c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_SCENEMODETYPE {
252c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_U32 nSize;
253c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_VERSIONTYPE nVersion;
254c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_U32 nPortIndex;
255c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_SCENEMODETYPE eSceneMode;
256c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_SCENEMODETYPE;
257c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
258c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev /**
259c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Port specific capture trigger
260c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * useful for the usecases with multiple capture ports.
261c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
262c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
263c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize      : Size of the structure in bytes
264c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion   : OMX specification version information
265c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex : Port that this structure applies to
266c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  bExtCapturing : Start Captre at the specified port. Can be queried to know the status of a specific port.
267c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
268c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_EXTCAPTURING {
269c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
270c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
271c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
272c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BOOL bExtCapturing;
273c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_EXTCAPTURING;
274c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
275c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
276c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev /**
277c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Digital Zoom Speed
278c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
279c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
280c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize      : Size of the structure in bytes
281c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion   : OMX specification version information
282c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex : Port that this structure applies to
283c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nDigitalZoomSpeed      :  Optical zoom speed level. Special values:
284c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      0 - stop current movement
285c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      values from 1 to 254 are mapped proportionally to supported zoom speeds inside optical zoom driver.
286c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      So 1 is slowest available optical zoom speed and 254 is fastest available optical zoom speed
287c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      255 - default optical zoom speed value
288c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
289c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_DIGITALZOOMSPEEDTYPE {
290c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_U32 nSize;
291c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_VERSIONTYPE nVersion;
292c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_U32 nPortIndex;
293c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_U8 nDigitalZoomSpeed;
294c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_DIGITALZOOMSPEEDTYPE;
295c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
296c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
297c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev /**
298c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Digital Zoom Target
299c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
300c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
301c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize      : Size of the structure in bytes
302c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion   : OMX specification version information
303c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex : Port that this structure applies to
304c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nDigitalZoomTarget      :  Default and minimum is 0. Maximum is determined by the current supported range
305c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
306c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
307c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_DIGITALZOOMTARGETTYPE {
308c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_U32 nSize;
309c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_VERSIONTYPE nVersion;
310c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_U32 nPortIndex;
311c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_U32 nDigitalZoomTarget;
312c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_DIGITALZOOMTARGETTYPE;
313c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
314c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
315c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
316c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev* Scale quality enums
317c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
318c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_SCALEQUALITY{
319c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_DefaultScaling = 0, /** <default scaling if nothing is specified > */
320c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_BetterScaling,   /** <better scaling> */
321c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_BestScaling,  /** <best  scaling> */
322c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_AutoScalingQuality,  /** <auto scaling quality> */
323c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_FastScaling,   /** <fast scaling, prioritizes speed> */
324c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_ScaleQualityMax = 0x7fffffff
325c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_SCALEQUALITY;
326c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
327c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
328c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev* Scaling Quality Mode
329c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
330c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_SCALEQUALITYMODE{
331c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_SingleFrameScalingMode = 0, /** <default > */
332c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_MultiFrameScalingMode,   /** <better scaling> */
333c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_AutoScalingMode,  /** <best  scaling> */
334c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_ScaleModeMax = 0x7fffffff
335c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_SCALEQUALITYMODE;
336c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
337c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev /**
338c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Rescale quality control type
339c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
340c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
341c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize      : Size of the structure in bytes
342c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion   : OMX specification version information
343c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  eScaleQuality : controls the quality level.
344c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  eScaleQualityMode      :  controls the scaling algo types
345c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
346c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_SCALEQUALITYTYPE {
347c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
348c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
349c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
350c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_SCALEQUALITY eScaleQuality;
351c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_SCALEQUALITYMODE eScaleQualityMode;
352c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_SCALEQUALITYTYPE;
353c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
354c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
355c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev* Smooth Zoom mode enum
356c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev* Starts or stops the Smooth Zoom.  Selecting INCREASE will cause an increasing digital zoom factor (increased cropping),
357c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev* with a shrinking viewable area and crop height percentage.  Selecting DECREASE will cause a decreasing digital zoom (decreased cropping),
358c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev* with a growing viewable area and crop height percentage.  The CaptureCropHeight will continue to update based on the SmoothZoomRate until
359c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev* the SmoothZoomMin or SmoothZoomMax zoom step is reached, the framework minimum zoom step is reached, the SmoothZoomRate becomes 0,
360c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev* or the SmoothZoomMode is set to OFF.
361c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev* 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.
362c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
363c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_SMOOTHZOOMMODE{
364c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_Off=0, /**< default OFF */
365c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_Increase,
366e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_Decrease,
367e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_SmoothZoomModeMax = 0x7fffffff
368c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_SMOOTHZOOMMODE;
369c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
370c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
371c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev /**
372c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Rescale quality control type
373c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
374c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
375c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize      : Size of the structure in bytes
376c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion   : OMX specification version information
377c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  eSmoothZoomMode : controls the smooth zoom feature.
378c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSmoothZoomRate      :  Values from 0 to 65535 which represents percentage to increase per second, where 65535 = 100%, and 0 = 0%.
379c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSmoothZoomQuantize:
380c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSmoothZoomThresh
381c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSmoothZoomMin
382c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSmoothZoomMax
383c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
384c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_SMOOTHZOOMTYPE {
385c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
386c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
387c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
388c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_SMOOTHZOOMMODE eSmoothZoomMode;
389c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSmoothZoomRate;
390c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSmoothZoomQuantize;
391c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSmoothZoomThresh;
392c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSmoothZoomMin;
393c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSmoothZoomMax;
394c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_SMOOTHZOOMTYPE;
395c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
396c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
397c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Enumeration of possible Extended image filter types for OMX_CONFIG_IMAGEFILTERTYPE
398c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
399c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_EXTIMAGEFILTERTYPE {
400c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_ImageFilterSepia = 0x7F000001,
401c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_ImageFilterGrayScale,
402c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_ImageFilterNatural,
403c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_ImageFilterVivid,
404c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_ImageFilterColourSwap,
405c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_ImageFilterOutOfFocus,
406c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_ImageFilterWaterColour,
407c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_ImageFilterPastel,
408c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_ImageFilterFilm,
409c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_TI_ImageFilterBlackWhite,
410c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_TI_ImageFilterWhiteBoard,
411c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_TI_ImageFilterBlackBoard,
412c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_TI_ImageFilterAqua,
413e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_ImageFilterPosterize,
414e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_ImageFilterTypeMax = 0x7fffffff
415c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_EXTIMAGEFILTERTYPE;
416c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
417c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
418c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
419c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Image filter configuration extended
420c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
421c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
422c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize        : Size of the structure in bytes
423c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion     : OMX specification version information
424c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex   : Port that this structure applies to
425c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  bBlemish : Enable/Disable Blemish correction
426c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
427c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_BLEMISHTYPE {
428c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
429c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
430c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
431c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BOOL bBlemish;
432c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_BLEMISHTYPE;
433c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
434c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
435c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Enumeration of Bracket types
436c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * OMX_BracketExposureRelativeInEV:
437c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      Exposure value is changed relative to the value set by automatic exposure.
438c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      nBracketStartValue and nBracketStep are in Q16. Increment is additive.
439c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * OMX_BracketExposureAbsoluteMs:
440c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      Exposure value is changed in absolute value in ms.
441c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      nBracketStartValue and nBracketStep are in Q16. Increment is multiplicative.
442c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * OMX_BracketFocusRelative:
443c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      Focus is adjusted relative to the focus set by auto focus.
444c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      The value is S32 integer, and is the same as adjusting nFocusSteps of OMX_IMAGE_CONFIG_FOCUSCONTROLTYPE relatively.
445c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      Increment is additive.
446c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * OMX_BracketFocusAbsolute:
447c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      Focus position is adjusted absolutely. It is the same as setting nFocusSteps of
448c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      OMX_IMAGE_CONFIG_FOCUSCONTROLTYPE relatively for each captures.
449c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      The value should be interpreted as U32 value.  Increment is additive.
450c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * OMX_BracketFlashPower:
451c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      Power of flash is adjusted relative to the automatic level. Increment is multiplicative.
452c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * OMX_BracketAperture:
453c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      Aperture number relative to the automatic setting. Data in Q16 format. Increment is multiplicative.
454c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * OMX_BracketTemporal:
455c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      To suppport temporal bracketing.
456c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
457c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_BRACKETMODETYPE {
458c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BracketExposureRelativeInEV = 0,
459c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BracketExposureAbsoluteMs,
460c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BracketFocusRelative,
461c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BracketFocusAbsolute,
462c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BracketFlashPower,
463c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BracketAperture,
464c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BracketTemporal,
465e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BracketExposureGainAbsolute,
466e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BracketVectorShot,
467c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BrackerTypeKhronosExtensions = 0x6f000000,
468c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BrackerTypeVendorStartUnused = 0x7f000000,
469c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BracketTypeMax = 0x7FFFFFFF
470c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_BRACKETMODETYPE;
471c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
472c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_BRACKETINGTYPE {
473c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
474c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
475c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
476c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BRACKETMODETYPE eBracketMode;
477e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32             nNbrBracketingValues;
478e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32             nBracketValues[10];     /**< 10 can be assumed */
479e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32             nBracketValues2[10];     /**< 10 can be assumed */
480c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_BRACKETINGTYPE;
481c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
482c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
483c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
484c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Capture mode types
485c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Note: this list could get extended modified based on the type of interenal use-case pipelines implemented within the camera component.
486c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
487c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *       OMX_CaptureImageHighSpeedBurst = 0,
488c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *       OMX_CaptureImageHighSpeedTemporalBracketing,
489c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *       OMX_CaptureImageProfileBase(Base):
490c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *       	Base one almost same as Highspeed one.
491c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *       OMX_CaptureImageProfileLowLight1(LL1):
492c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *       	Includes NSF2 in addition to Base processing
493c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *       OMX_CaptureImageProfileLowLight2(LL2):
494c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *       	Includes NSF2 and LBCE in addition to Base processing.
495c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *       OMX_CaptureImageProfileOpticalCorr1(OC1):
496c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *       	Includes LDC in addition to Base processing.
497c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *       OMX_CaptureImageProfileOpticalCorr2(OC2):
498c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *       	Includes LDC and CAC in addition to Base processing.
499c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *       OMX_CaptureImageProfileExtended1(Ext1):
500c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *       	Includes NSF2, LBCE, LDC, and CAC in addition to Base
501c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *       OMX_CaptureStereoImageCapture:
502c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *       	Stereo image capture use-case.
503c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *       OMX_CaptureImageMemoryInput:
504c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *       	need to take sensor input from INPUT port.
505c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *       OMX_CaptureVideo:
506c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *       OMX_CaptureHighSpeedVideo:
507c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *       OMX_CaptureVideoMemoryInput:
508c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
509c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
510c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_CAMOPERATINGMODETYPE {
511c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_CaptureImageHighSpeedBurst = 0,
512c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_CaptureImageHighSpeedTemporalBracketing,
513c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_CaptureImageProfileBase,
514c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_CaptureImageProfileLowLight1,
515c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_CaptureImageProfileLowLight2,
516c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_CaptureImageProfileOpticalCorr1,
517c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_CaptureImageProfileOpticalCorr2,
518c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_CaptureImageProfileExtended1,
519e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_CaptureStereoImageCapture,
520c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_CaptureImageMemoryInput,
521c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_CaptureVideo,
522c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_CaptureHighSpeedVideo,
523c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_CaptureVideoMemoryInput,
524c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_TI_CaptureDummy,
525c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_TI_CaptureGestureRecognition,
526c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_TI_CaptureImageProfileZeroShutterLag,
527e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TI_SinglePreview,
528e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TI_StereoGestureRecognition,
529e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TI_CPCam,
530e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TI_StereoVideo,
531e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_CaptureHighQualityVideo,
532e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        // Put new entries here so OMX_CamOperatingModeMax always points to
533e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        // the last one
534e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TI_CamOperatingModeCount,
535e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_CamOperatingModeMax = OMX_TI_CamOperatingModeCount - 1,
536e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_CamOperatingMode = 0x7fffffff
537c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CAMOPERATINGMODETYPE;
538e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
539c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
540c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Capture mode setting: applicable to multi shot capture also including bracketing.
541c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
542c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
543c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize        : Size of the structure in bytes
544c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion     : OMX specification version information
545c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex   : Port that this structure applies to
546c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  eCamOperatingMode : specifies the camera operating mode.
547c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
548c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_CAMOPERATINGMODETYPE {
549c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_U32 nSize;
550c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_VERSIONTYPE nVersion;
551c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_CAMOPERATINGMODETYPE eCamOperatingMode;
552c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_CAMOPERATINGMODETYPE;
553c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
554c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
555c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
556c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Capture mode setting: applicable to multi shot capture also including bracketing.
557c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
558c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
559c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize        : Size of the structure in bytes
560c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion     : OMX specification version information
561c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex   : Port that this structure applies to
562c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  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.
563c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nFrameBefore :
564c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * 	is specifying how many frames before the capture trigger shall be used.
565c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * 	It is implementation dependent how many is supported. This shall only be supported for images and not for video frames.
566c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * bPrepareCapture :
567c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	should be set to true when nFrameBefore is greater than zero and before capturing of before-frames should start.
568c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	The component is not allowed to deliver buffers until capturing starts. This shall only be supported for images and not for video frames.
569c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * bEnableBracketing :
570c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	should be enabled when bracketing is used. In bracketing mode, one parameter can be changed per each capture.
571c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * tBracketConfigType :
572c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	specifies bracket mode to use. Valid only when bEnableBracketing is set.
573c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
574c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_EXTCAPTUREMODETYPE {
575c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
576c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
577c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
578c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nFrameRate;
579c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nFrameBefore;
580c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BOOL bPrepareCapture;
581c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BOOL bEnableBracketing;
582c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_CONFIG_BRACKETINGTYPE tBracketConfigType;
583c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_EXTCAPTUREMODETYPE;
584c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
585c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
586c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * For Extended Focus region Type -
587c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
588c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_EXTFOCUSREGIONTYPE {
589c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
590c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
591c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
592c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nRefPortIndex;
593c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_S32 nLeft;
594c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_S32 nTop;
595c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nWidth;
596c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nHeight;
597c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_EXTFOCUSREGIONTYPE;
598c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
599c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
600c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Digital Flash Control
601c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
602c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize        : Size of the structure in bytes
603c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion     : OMX specification version information
604c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex   : Port that this structure applies to
605c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  bDigitalFlash : Digital flash type Enable/Disable -
606c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Specifies whether the digital flash algorithm is enabled or disabled. This overrides the contrast and brightness settings.
607c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
608c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_DIGITALFLASHTYPE {
609c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
610c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
611c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
612c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BOOL bDigitalFlash;
613c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_DIGITALFLASHTYPE;
614c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
615c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
616c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
617c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
618c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Privacy Indicator Enable/Disable
619c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
620c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize        : Size of the structure in bytes
621c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion     : OMX specification version information
622c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex   : Port that this structure applies to
623c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  bPrivacyIndicator :
624c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *        Specifies whether the flash should be used to indicate image or video capture. When flash is not used for exposure,
625c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *        flash will be activated after exposure to indicate image capture.
626c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *        If video light is not used, the flash can be blinking or constant at low intensity to indicate capture but not affect exposure.
627c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *        Specifies whether the digital flash algorithm is enabled or disabled. This overrides the contrast and brightness settings.
628c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
629c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_PRIVACYINDICATOR {
630c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
631c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
632c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
633c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BOOL bPrivacyIndicator;
634c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_PRIVACYINDICATOR;
635c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
636c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
637c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
638c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Privacy Indicator Enable/Disable
639c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
640c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize        : Size of the structure in bytes
641c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion     : OMX specification version information
642c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex   : Port that this structure applies to
643c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  bTorchMode :
644c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *        Enable/Disable
645c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      nIntensityLevel : relative intensity from 0 - 100
646c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      nDuration : duration in msec
647c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
648c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_TORCHMODETYPE {
649c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
650c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
651c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
652c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BOOL bTorchMode;
653c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nIntensityLevel;
654c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nDuration;
655c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_TORCHMODETYPE;
656c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
657c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
658c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
659c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
660c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Privacy Indicator Enable/Disable
661c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * DISABLE - Fire the xenon flash in the usual manner
662c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * ENABLE - Reduce the light intensity of the main flash (ex 1EV)
663c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
664c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
665c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize        : Size of the structure in bytes
666c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion     : OMX specification version information
667c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex   : Port that this structure applies to
668c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  bSlowSync :
669c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *        Enable - OMX_TRUE/Disable - OMX_FALSE
670c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
671c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_SLOWSYNCTYPE {
672c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
673c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
674c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
675c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BOOL bSlowSync;
676c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_SLOWSYNCTYPE;
677c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
678c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
679c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
680c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Focus control extended enums. use this along with OMX_IMAGE_CONFIG_FOCUSCONTROLTYPE
681c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
682c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_IMAGE_EXTFOCUSCONTROLTYPE {
683c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_IMAGE_FocusControlAutoMacro = 0x7F000001, /**< Reserved region for introducing Vendor Extensions */
684c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_IMAGE_FocusControlAutoInfinity,
685c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_IMAGE_FocusControlHyperfocal,
686c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_IMAGE_FocusControlPortrait, /**< from Xena */
687c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_IMAGE_FocusControlExtended, /**< from Xena */
688c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_IMAGE_FocusControlContinousNormal, /**< from Xena */
689e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_IMAGE_FocusControlContinousExtended,     /**< from Xena */
690e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_IMAGE_FocusControlContinousFacePriority,
691e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_IMAGE_FocusControlContinousRegionPriority,
692e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_IMAGE_FocusControlContinousPicture,
693e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_IMAGE_FocusControlTypeMax = 0x7fffffff
694c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_IMAGE_EXTFOCUSCONTROLTYPE;
695c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
696c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
697c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
698c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
699c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Specifies whether the LED can be used to assist in autofocus, due to low lighting conditions.
700c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * ENABLE means use as determined by the auto exposure algorithm.
701c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
702c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
703c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize        : Size of the structure in bytes
704c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion     : OMX specification version information
705c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex   : Port that this structure applies to
706c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  bFocusAssist :
707c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *        Enable - OMX_TRUE/Disable - OMX_FALSE
708c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
709c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_FOCUSASSISTTYPE {
710c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
711c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
712c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
713c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BOOL bFocusAssist;
714c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_FOCUSASSISTTYPE;
715c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
716c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
717c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
718c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
719c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *for locking the focus
720c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
721c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
722c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize        : Size of the structure in bytes
723c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion     : OMX specification version information
724c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex   : Port that this structure applies to
725c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  bFocusLock :
726c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *        Enable - OMX_TRUE/Disable - OMX_FALSE
727c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
728c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_FOCUSLOCKTYPE {
729c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
730c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
731c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
732c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BOOL bFocusLock;
733c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_FOCUSLOCKTYPE;
734c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
735c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
736c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
737c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *for locking the White balance
738c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
739c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
740c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize        : Size of the structure in bytes
741c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion     : OMX specification version information
742c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex   : Port that this structure applies to
743c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  bWhiteBalanceLock :
744c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *        Enable - OMX_TRUE/Disable - OMX_FALSE
745c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
746c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_WHITEBALANCELOCKTYPE {
747c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
748c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
749c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
750c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BOOL bWhiteBalanceLock;
751c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_WHITEBALANCELOCKTYPE;
752c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
753c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
754c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *for locking the Exposure
755c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
756c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
757c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize        : Size of the structure in bytes
758c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion     : OMX specification version information
759c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex   : Port that this structure applies to
760c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  bExposureLock :
761c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *        Enable - OMX_TRUE/Disable - OMX_FALSE
762c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
763c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_EXPOSURELOCKTYPE {
764c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
765c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
766c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
767c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BOOL bExposureLock;
768c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_EXPOSURELOCKTYPE;
769c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
770c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
771c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *for locking the Exposure
772c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  Simultaneously lock focus, white balance and exposure (and relevant other settings).
773c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
774c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
775c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize        : Size of the structure in bytes
776c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion     : OMX specification version information
777c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex   : Port that this structure applies to
778c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  bAllLock :
779c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *        Enable - OMX_TRUE/Disable - OMX_FALSE
780c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
781c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_ALLLOCKTYPE {
782c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
783c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
784c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
785c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BOOL bAllLock;
786c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_ALLLOCKTYPE;
787c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
788c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
789c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *for locking
790c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  Simultaneously lock focus, white balance and exposure (and relevant other settings).
791c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
792c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
793c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize        : Size of the structure in bytes
794c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion     : OMX specification version information
795c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex   : Port that this structure applies to
796c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  bLock :
797c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *        Enable - OMX_TRUE/Disable - OMX_FALSE
798c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  bAtCapture:
799c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
800c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
801c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_IMAGE_CONFIG_LOCKTYPE {
802c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
803c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
804c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
805c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BOOL bLock;
806c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BOOL bAtCapture;
807c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_IMAGE_CONFIG_LOCKTYPE;
808c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
809c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
810c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * processig level types enum
811c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
812c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_PROCESSINGLEVEL{
813c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_Min = 0,
814c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_Low,
815c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_Medium,
816c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_High,
817c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_Max,
818c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_ProcessingLevelMax = 0x7fffffff
819c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_PROCESSINGLEVEL;
820c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
821c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
822c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *processing level type
823c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  Simultaneously lock focus, white balance and exposure (and relevant other settings).
824c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
825c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
826c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize        : Size of the structure in bytes
827c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion     : OMX specification version information
828c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex   : Port that this structure applies to
829c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nLevel :
830c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *               nLevel hinting processing amount. Range of values is -100 to 100.
831c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *               0 causes no change to the image.  Increased values cause increased processing to occur, with 100 applying maximum processing.
832c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *               Negative values have the opposite effect of positive values.
833c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  bAuto:
834c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *		sets if the processing should be applied according to input data.
835c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 		It is allowed to combine the hint level with the auto setting,
836c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *		i.e. to give a bias to the automatic setting. When set to false, the processing should not take input data into account.
837c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
838c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
839c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_IMAGE_CONFIG_PROCESSINGLEVELTYPE {
840c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevOMX_U32 nSize;
841c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevOMX_VERSIONTYPE nVersion;
842c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevOMX_U32 nPortIndex;
843c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevOMX_S32 nLevel;
844c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevOMX_BOOL bAuto;
845c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_IMAGE_CONFIG_PROCESSINGLEVELTYPE;
846c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
847c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
848c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
849c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * White Balance control type extended enums - to be used along with the structure @OMX_CONFIG_WHITEBALCONTROLTYPE
850c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
851c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
852c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
853c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
854c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_EXTWHITEBALCONTROLTYPE {
855c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_WhiteBalControlFacePriorityMode = OMX_WhiteBalControlVendorStartUnused + 1, /**<  */
856c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_TI_WhiteBalControlSunset,
857c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_TI_WhiteBalControlShade,
858c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_TI_WhiteBalControlTwilight,
859e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_WhiteBalControlWarmFluorescent,
860e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_WhiteBalControlMax = 0x7fffffff
861c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_EXTWHITEBALCONTROLTYPE;
862c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
863c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
864c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *white balance gain type
865c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  xWhiteBalanceGain and xWhiteBalanceOffset represents gain and offset for R, Gr, Gb, B channels respectively in Q16 format. \
866c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  For example, new red pixel value = xWhiteBalanceGain[1]* the current pixel value + xWhiteBalanceOffset[1].
867c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  All values assume that maximum value is 255. If internal implementation uses higher dynamic range, this value should be adjusted internally.
868c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nWhiteThreshhold  represents thresholds for "white" area measurments in Q16 format.
869c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
870c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
871c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize        : Size of the structure in bytes
872c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion     : OMX specification version information
873c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex   : Port that this structure applies to
874c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
875c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
876c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_WHITEBALGAINTYPE {
877c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
878c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
879c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
880c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_S32 xWhiteBalanceGain[4];
881c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_S32 xWhiteBalanceOffset[4];
882c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_S32 nWhiteThreshhold[4];
883c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_WHITEBALGAINTYPE;
884c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
885c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
886c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  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
887c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  R' =  xColorMatrix[1][1]*R + xColorMatrix[1][2]*G + xColorMatrix[1][3]*B + xColorOffset[1]
888c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  G' = xColorMatrix[2][1]*R + xColorMatrix[2][2]*G + xColorMatrix[2][3]*B + xColorOffset[2]
889c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  B' = xColorMatrix[3][1]*R + xColorMatrix[3][2]*G + xColorMatrix[3][3]*B + xColorOffset[3]
890c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  Both xColorMatrix and xColorOffset are represented as Q16 value.
891c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  bFullColorRange represents represents whether valid range of color is 0 to 255 (when set to TRUE) or 16 to 235 (for FALSE).
892c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  Again all values assume that maximum value is 255. If internal implementation uses higher dynamic range, this value should be adjusted internally.
893c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
894c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
895c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
896c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize        : Size of the structure in bytes
897c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion     : OMX specification version information
898c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex   : Port that this structure applies to
899c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
900c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
901c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_EXT_COLORCONVERSIONTYPE {
902c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
903c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
904c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
905c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_S32 xColorMatrix[3][3];
906c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_S32 xColorOffset[3];
907c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BOOL bFullColorRange;
908c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_CONFIG_EXT_COLORCONVERSIONTYPE;
909c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
910c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
911c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
912c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * xGamma represents lool-up table for gamma correction in Q16 format.
913c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * All values assume that maximum value is 255. If internal implementation uses higher dynamic range, this value should be adjusted internally.
914c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
915c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
916c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
917c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
918c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize        : Size of the structure in bytes
919c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion     : OMX specification version information
920c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex   : Port that this structure applies to
921c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
922c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
923c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_GAMMATABLETYPE {
924c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
925c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
926c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
927c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 xGamma[3][256];
928c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_CONFIG_GAMMATABLETYPE;
929c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
930c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
931c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
932c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
933c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * processig types
934c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
935c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_PROCESSINGTYPE{
936c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_BloomingReduction = 0,
937c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_Denoise,
938c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_Sharpening,
939c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_Deblurring,
940c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_Demosaicing,
941c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_ContrastEnhancement,
942c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_ProcessingTypeMax = 0x7fffffff
943c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_PROCESSINGTYPE;
944c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
945c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
946c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef  struct OMX_CONFIGPROCESSINGORDERTYPE {
947c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevOMX_U32  nSize; /**< Size of the structure in bytes */
948c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevOMX_VERSIONTYPE nVersion; /**< OMX specification version info */
949c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevOMX_U32 nPortIndex; /**< Port that this struct applies to */
950c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevOMX_U32 nIndex;
951c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevOMX_PROCESSINGTYPE eProc;
952c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIGPROCESSINGORDERTYPE;
953c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
954c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
955c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * HIST TYPE
956c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
957c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_HISTTYPE{
958c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_HistControlLuminance = 0, /**< Luminance histogram is calculated (Y)*/
959c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_HistControlColorComponents, /**< A histogram per color component (R, G, B) is calculated*/
960e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_HistControlChrominanceComponents,     /**< A histogram per chrominance component (Cb, Cr) is calculated.*/
961e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_HistControl_32BIT_PATCH = 0x7FFFFFFF
962c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_HISTTYPE;
963c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
964c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
965c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Histogram Setting
966c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex is an output port. The port index decides on which port the extra data structur is sent on.
967c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  bFrameLimited is a Boolean used to indicate if measurement shall be terminated after the specified number of
968c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  frames if true frame limited measurement is enabled; otherwise the port does not terminate measurement until
969c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  instructed to do so by the client.
970c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nFrameLimit is the limit on number of frames measured, this parameter is only valid if bFrameLimited is enabled.
971c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  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.
972c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nBins specifies the number of histogram bins. When queried with set to zero, the respons gives the maximum number of bins allowed.
973c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nLeft is the leftmost coordinate of the measurement area rectangle.
974c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nTop is the topmost coordinate of the measurement area rectangle.
975c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nWidth is the width of the measurement area rectangle in pixels.
976c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nHeight is the height of the measurement area rectangle in pixels.
977c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  eHistType is an enumeration specifying the histogram type
978c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
979c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
980c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
981c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
982c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_HISTOGRAMTYPE {
983c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
984c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
985c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
986c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BOOL bFrameLimited;
987c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nFrameLimit;
988c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BOOL bMeasure;
989c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nBins;
990c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_S32 nLeft;
991c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_S32 nTop;
992c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nWidth;
993c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nHeight;
994c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_HISTTYPE eHistType;
995c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_HISTOGRAMTYPE;
996c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
997c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
998e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * OMX_HISTCOMPONENTTYPE Enumerated Value
999c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1000c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_HISTCOMPONENTTYPE{
1001c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_HISTCOMP_Y = 0, /**<    Luminance histogram (Y) */
1002c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_HISTCOMP_YLOG,  /**< Logarithmic luminance histogram (Y)*/
1003c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_HISTCOMP_R, /**< Red histogram component (R)*/
1004c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_HISTCOMP_G, /**< Green histogram component (G)*/
1005c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_HISTCOMP_B, /**< Blue histogram component (B)*/
1006c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_HISTCOMP_Cb,    /**< Chroma blue histogram component (Cb)*/
1007e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_HISTCOMP_Cr,     /**< Chroma red histogram component (Cr) */
1008e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_HISTCOMP_32BIT_PATCH = 0x7FFFFFFF
1009c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_HISTCOMPONENTTYPE;
1010c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1011e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
1012c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * The OMX_TI_CAMERAVIEWTYPE enumeration is used to identify the
1013e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * particular camera view and frame type that the rest of
1014e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * the data in the structure is associated with.
1015e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
1016e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef enum OMX_TI_CAMERAVIEWTYPE {
1017e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_2D_Prv,         /**< Camera view in 2D for preview */
1018e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_2D_Snap,        /**< Camera view in 2D for snapshot */
1019e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_2D_Cap,         /**< Camera view in 2D for capture */
1020e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_3D_Left_Prv,    /**< Left camera view in 3D for preview */
1021e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_3D_Left_Snap,   /**< Left camera view in 3D for snapshot */
1022e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_3D_Left_Cap,    /**< Left camera view in 3D for capture */
1023e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_3D_Right_Prv,   /**< Right camera view in 3D for preview */
1024e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_3D_Right_Snap,  /**< Right camera view in 3D for snapshot */
1025e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_3D_Right_Cap,   /**< Right camera view in 3D for capture */
1026c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_TI_CAMERAVIEWTYPE_32BIT_PATCH = 0x7FFFFFFF
1027c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_CAMERAVIEWTYPE;
1028e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1029e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen#define OMX_OTHER_EXTRADATATYPE_SIZE ((OMX_U32)(((OMX_OTHER_EXTRADATATYPE *)0x0)->data))  /**< Size of OMX_OTHER_EXTRADATATYPE
1030e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen                                                                                without Data[1] and without padding */
1031e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1032c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1033e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * The extra data having DCC data is described with the following structure.
1034e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * This data contains single flags and values
1035e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * (not arrays) that have general usage for camera applications.
1036c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1037e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_DCCDATATYPE {
1038e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32               nSize;
1039e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_VERSIONTYPE       nVersion;
1040e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32               nPortIndex;
1041c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_TI_CAMERAVIEWTYPE eCameraView;
1042e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32               nCameraModuleId;
1043e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32               nDccDescriptorId;
1044e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32               nAlgorithmVendorId;
1045e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32               nUseCaseId;
1046e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32               nOffset;
1047e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_PTR               pData;
1048e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_DCCDATATYPE;
1049e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
1050e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * The extra data type to feed the camera re-processing function
1051e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
1052e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_CAMREPROCMETATYPE {
1053e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nExpTime;
1054e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nGain;
1055e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_CAMREPROCMETATYPE;
1056e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1057e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
1058e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * The extra data vector shot feedback info
1059e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nConfigId   : Same id that cames with
1060e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                OMX_TI_CONFIG_ENQUEUESHOTCONFIGS::nShotConfig[x].nConfigId
1061e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                for particular shot config.
1062e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nFrameNum   : Frame number in vect shot repeat sequence.
1063e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                Starts from 1 for every shot config.
1064e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1065e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nExpMin     : The exposure time lower limit,[us]
1066e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nExpMax     : The exposure time upper limit,[us]
1067e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nGainMin    : The analog gain lower limit,[0,01EV]
1068e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nGainMax    : The analog gain upper limit,[0,01EV]
1069e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1070e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nReqEC      : Requested total exposure compensation
1071e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nReqExpTime : Requested exposure time
1072e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nReqGain    : Requested gain
1073e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1074e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nExpTime    : Exposure time of this frame.
1075e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nAGain      : Analog gain of this frame.
1076e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1077e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nSenExpTimeErr : Exposure time error in us.
1078e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                If the requested exposure time is ExpReq
1079e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                and the one produced by the sensor is nExpTime then:
1080e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                nExpTimeErr = nExpTime - ExpReq.
1081e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nSenAGainErr: Analog gain error as multiplier (in Q8 format).
1082e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1083e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nDevEV      : The total exposure deviation,[us]
1084e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nDevExpTime : The exposure time deviation after flicker reduction,[us]
1085e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nDevAGain   : The analog gain deviation after flicker reduction,[0,01EV]
1086e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
1087e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VECTSHOTINFOTYPE {
1088e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nConfigId;
1089e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nFrameNum;
1090e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nExpMin;
1091e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nExpMax;
1092e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nGainMin;
1093e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nGainMax;
1094e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32 nReqEC;
1095e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32 nReqExpTime;
1096e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32 nReqGain;
1097e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nExpTime;
1098e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nAGain;
1099e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32 nSenExpTimeErr;
1100e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nSenAGainErr;
1101e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32 nDevEV;
1102e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32 nDevExpTime;
1103e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32 nDevAGain;
1104e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VECTSHOTINFOTYPE;
1105e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1106e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/*
1107e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * LSC gain table size
1108e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
1109e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen#define OMX_TI_LSC_GAIN_TABLE_SIZE (80 * 1024)
1110e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1111e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
1112e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * Possible LSC table gain formats
1113e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
1114e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef enum OMX_TI_LSC_GAIN_FORMAT_TYPE {
1115e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_LSC_GAIN_FORMAT_0Q8,
1116e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_LSC_GAIN_FORMAT_0Q8_PLUS_1,
1117e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_LSC_GAIN_FORMAT_1Q7,
1118e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_LSC_GAIN_FORMAT_1Q7_PLUS_1,
1119e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_LSC_GAIN_FORMAT_2Q6,
1120e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_LSC_GAIN_FORMAT_2Q6_PLUS_1,
1121e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_LSC_GAIN_FORMAT_3Q5,
1122e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_LSC_GAIN_FORMAT_3Q5_PLUS_1,
1123e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_LSC_GAIN_FORMAT = 0x7FFFFFFF
1124e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_LSC_GAIN_FORMAT_TYPE;
1125e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1126e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
1127e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * The extra data for LSC table
1128e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  bApplied    : If true the table is applied to the frame.
1129e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  eGainFormat : Paxel format
1130e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nWidth      : LSC table width in paxels
1131e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nHeight     : LSC table height in paxels
1132e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  pGainTable  : LSC gain table
1133e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
1134e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_LSCTABLETYPE {
1135e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BOOL bApplied;
1136e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_LSC_GAIN_FORMAT_TYPE eGainFormat;
1137e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nWidth;
1138e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nHeight;
1139e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 pGainTable[OMX_TI_LSC_GAIN_TABLE_SIZE];
1140e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_LSCTABLETYPE;
1141c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1142c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1143c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * The extra data having ancillary data is described with the following structure.
1144c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * This data contains single flags and values
1145c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * (not arrays) that have general usage for camera applications.
1146c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1147c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef  struct OMX_TI_ANCILLARYDATATYPE {
1148c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32             nSize;
1149c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE     nVersion;
1150c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32             nPortIndex;
1151c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_TI_CAMERAVIEWTYPE       eCameraView;
1152c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32             nAncillaryDataVersion;
1153c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32             nFrameNumber;
1154c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32             nShotNumber;
1155c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U16             nInputImageHeight;
1156c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U16             nInputImageWidth;
1157c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U16             nOutputImageHeight;
1158c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U16             nOutputImageWidth;
1159c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U16             nDigitalZoomFactor;
1160c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_S16             nCropCenterColumn;
1161c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_S16             nCropCenterRow;
1162c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U16             nOpticalZoomValue;
1163c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U8              nFlashConfiguration;
1164c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U8              nFlashUsage;
1165c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32             nFlashStatus;
1166c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U8              nAFStatus;
1167c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U8              nAWBStatus;
1168c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U8              nAEStatus;
1169c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32             nExposureTime;
1170c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U16             nEVCompensation;
1171c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U8              nDigitalGainValue;
1172c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U8              nAnalogGainValue;
1173c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U16             nCurrentISO;
1174c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U16             nReferenceISO;
1175c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U8              nApertureValue;
1176c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U8              nPixelRange;
1177c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U16             nPixelAspectRatio;
1178c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U8              nCameraShake;
1179c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U16             nFocalDistance;
1180c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U64             nParameterChangeFlags;
1181c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U8              nNumFacesDetected;
1182c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U8              nConvergenceMode;
1183c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U8              nConvergenceStatus;
1184c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U8              nDCCStatus;
1185c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_ANCILLARYDATATYPE;
1186c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1187e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
1188e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * White Balance Results data
1189e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  The extra data having white balance results data is
1190e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  described with the following structure..
1191e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
1192c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_WHITEBALANCERESULTTYPE {
1193c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32             nSize;          /**< Size */
1194c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE     nVersion;       /**< Version */
1195c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32             nPortIndex;     /**< Port Index */
1196c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_TI_CAMERAVIEWTYPE eCameraView;
1197c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U16             nColorTemperature;      /**< White Balance Color Temperature in Kelvins */
1198c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U16             nGainR;         /**< Bayer applied R color channel gain in (U13Q9) */
1199c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U16             nGainGR;        /**< Bayer applied Gr color channel gain in (U13Q9) */
1200c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U16             nGainGB;        /**< Bayer applied Gb color channel gain in (U13Q9) */
1201c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U16             nGainB;         /**< Bayer applied B color channel gain in (U13Q9) */
1202c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_S16             nOffsetR;       /**< Bayer applied R color channel offset */
1203c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_S16             nOffsetGR;      /**< Bayer applied Gr color channel offset */
1204c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_S16             nOffsetGB;      /**< Bayer applied Gb color channel offset */
1205c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_S16             nOffsetB;       /**< Bayer applied B color channel offset */
1206c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_WHITEBALANCERESULTTYPE;
1207c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1208c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1209c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Unsaturated Regions data
1210c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * The extra data having unsaturated regions data is
1211c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * described with the following structure..
1212c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1213c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_UNSATURATEDREGIONSTYPE {
1214c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32             nSize;          /**< Size */
1215c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE     nVersion;       /**< Version */
1216c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32             nPortIndex;     /**< Port Index */
1217c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U16             nPaxelsX;       /**< The number of paxels in the horizontal direction */
1218c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U16             nPaxelsY;       /**< The number of paxels in the vertical direction */
1219e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16         data[1];     /**< the first value of an array of values that represent
1220e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen                                     the percentage of unsaturated pixels within the associated paxel */
1221c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_UNSATURATEDREGIONSTYPE;
1222c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1223c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1224c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * OMX_BARCODETYPE
1225c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1226e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef enum OMX_BARCODETYPE {
1227c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_BARCODE1D = 0,      /**< 1D barcode */
1228c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_BARCODE2D,          /**< 2D barcode */
1229e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BarcodeMax = 0x7fffffff
1230c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_BARCODETYPE;
1231c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1232c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Brcode detection data
1233c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	nLeft is the leftmost coordinate of the detected area rectangle.
1234c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	nTop is the topmost coordinate of the detected area rectangle.
1235c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	nWidth is the width of the detected area rectangle in pixels.
1236c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	nHeight is the height of the detected area rectangle in pixels.
1237c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	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.
1238c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	eBarcodetype is an enumeration specifying the barcode type, as listed in the given table.
1239c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1240c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_BARCODEDETECTIONTYPE {
1241c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nSize;
1242c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE nVersion;
1243c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nPortIndex;
1244c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_CAMERAVIEWTYPE eCameraView;
1245e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32               nLeft;     /**< The leftmost coordinate of the detected area rectangle */
1246e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32               nTop;     /**< Topmost coordinate of the detected area rectangle */
1247e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32               nWidth;     /**< The width of the detected area rectangle in pixels */
1248e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32               nHeight;     /**< The height of the detected area rectangle in pixels */
1249e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32               nOrientation;     /**< The orientation of the axis of the detected object.
1250e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen                                         This refers to the angle between the vertical axis of barcode and the horizontal axis */
1251e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BARCODETYPE eBarcodetype;     /**< An enumeration specifying the barcode type, as listed in the given table */
1252c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev } OMX_BARCODEDETECTIONTYPE;
1253c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1254c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1255c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Front object detection data
1256c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	nLeft is the leftmost coordinate of the detected area rectangle.
1257c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	nTop is the topmost coordinate of the detected area rectangle.
1258c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	nWidth is the width of the detected area rectangle in pixels.
1259c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	nHeight is the height of the detected area rectangle in pixels.
1260c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1261c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_FRONTOBJDETECTIONTYPE {
1262c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
1263c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1264c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
1265c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_TI_CAMERAVIEWTYPE eCameraView;
1266e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32               nLeft;     /**< The leftmost coordinate of the detected area rectangle */
1267e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32               nTop;     /**< The topmost coordinate of the detected area rectangle */
1268e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32               nWidth;     /**< The width of the detected area rectangle in pixels */
1269e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32               nHeight;     /**< The height of the detected area rectangle in pixels */
1270c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_FRONTOBJDETECTIONTYPE;
1271c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1272c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1273c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Distance estimation data
1274c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nDistance is the estimated distance to the object in millimeters.
1275c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nLargestDiscrepancy is the estimated largest discrepancy of the distance to the object in millimeters. When equal to MAX_INT the discrepancy is unknown.
1276c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1277c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_DISTANCEESTIMATIONTYPE {
1278c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
1279c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1280c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
1281c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_TI_CAMERAVIEWTYPE eCameraView;
1282e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32               nDistance;        /**< Estimated distance to the object in millimeters */
1283e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32               nLargestDiscrepancy;     /**< the estimated largest discrepancy of the distance to the object in millimeters.
1284e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen                                                 When equal to MAX_INT the discrepancy is unknown */
1285c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_DISTANCEESTIMATIONTYPE;
1286c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1287c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1288c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Distance estimation data
1289c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nDistance is the estimated distance to the object in millimeters.
1290c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nLargestDiscrepancy is the estimated largest discrepancy of the distance to the object in millimeters. When equal to MAX_INT the discrepancy is unknown.
1291c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1292c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1293c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_MOTIONESTIMATIONTYPE {
1294c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
1295c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1296c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
1297c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_TI_CAMERAVIEWTYPE eCameraView;
1298e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32               nPanX;     /**< The detected translation in horizontal direction.
1299e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen                                     The value is represented as pixels in Q16-format */
1300e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32 nPanY;              /**< The detected translation in vertical direction.
1301e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen                                     The value is represented as pixels in Q16-format */
1302c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_MOTIONESTIMATIONTYPE;
1303c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1304c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1305c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1306c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Focus region data
1307c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	nRefPortIndex is the port the image frame size is defined on. This image frame size is used as reference for the focus region rectangle.
1308c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	nLeft is the leftmost coordinate of the focus region rectangle.
1309c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	nTop is the topmost coordinate of the focus region rectangle.
1310c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	nWidth is the width of the focus region rectangle in pixels.
1311c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	nHeight is the height of the focus region rectangle in pixels.
1312c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1313c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1314c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_FOCUSREGIONTYPE {
1315c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
1316c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1317c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
1318c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_TI_CAMERAVIEWTYPE eCameraView;
1319e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32               nRefPortIndex;     /**< The port the image frame size is defined on.
1320e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen                                     This image frame size is used as reference for the focus region rectangle */
1321e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32 nLeft;              /**< The leftmost coordinate of the focus region rectangle */
1322e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32 nTop;               /**< The topmost coordinate of the focus region rectangle */
1323e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nWidth;             /**< The width of the focus region rectangle in pixels */
1324e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nHeight;            /**< The height of the focus region rectangle in pixels */
1325c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_FOCUSREGIONTYPE;
1326c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1327c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1328c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * OMX_ISOSETTINGTYPE: specifies its auto or manual setting
1329c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1330c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1331c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_ISOSETTINGTYPE{
1332c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_Auto = 0, /**<	*/
1333e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_IsoManual,      /**< */
1334e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_IsoSettingMax = 0x7fffffff
1335c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_ISOSETTINGTYPE;
1336c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1337c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1338c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize is the size of the structure including the length of data field containing
1339c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  the histogram data.
1340c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  eISOMode:
1341c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  	specifies the ISO seetting mode - auto/manual
1342c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nISOSetting:
1343c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  	for manual mode client can specify the ISO setting.
1344c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1345c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1346c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_ISOSETTINGTYPE{
1347c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nSize;
1348c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE nVersion;
1349c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nPortIndex;
1350c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_ISOSETTINGTYPE eISOMode;
1351c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nISOSetting;
1352c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_CONFIG_ISOSETTINGTYPE;
1353c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1354c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1355c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * custom RAW format
1356c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1357c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_RAWFORMATTYPE {
1358c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
1359c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1360c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
1361c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nFormatVersion;
1362c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_STRING cVendorName;
1363c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_RAWFORMATTYPE;
1364c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1365c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1366c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Sensor type
1367c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1368c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_SENSORTYPE {
1369c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
1370c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1371c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
1372c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nSensorVersion;
1373c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_STRING cModelName;
1374c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_SENSORTYPE;
1375c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1376c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1377e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* Sensor Detect
1378e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
1379e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_PARAM_SENSORDETECT {
1380e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nSize;
1381e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_VERSIONTYPE nVersion;
1382e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nPortIndex;
1383e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BOOL        bSensorDetect;
1384e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_PARAM_SENSORDETECT;
1385e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1386e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
1387e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * OMX_BAYERCOMPRESSION
1388e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1389e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
1390e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef enum OMX_BAYERCOMPRESSION {
1391e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BAYER_UNPACKED,
1392e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BAYER_PACKED10,
1393e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BAYER_ALAW,
1394e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BAYER_DPCM,
1395e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BAYER_MAX = 0x7FFFFFFF
1396e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_BAYERCOMPRESSION;
1397e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1398e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
1399e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* Sensor Detect
1400e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
1401e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_PARAM_BAYERCOMPRESSION {
1402e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32              nSize;
1403e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_VERSIONTYPE      nVersion;
1404e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32              nPortIndex;
1405e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BAYERCOMPRESSION eBayerCompression;
1406e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_PARAM_BAYERCOMPRESSION;
1407e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1408e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
1409c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Sensor custom data type
1410c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1411c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_SENSORCUSTOMDATATYPE {
1412c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
1413c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1414c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
1415c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nDataLength;
1416c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U8 xSensorData[1];
1417c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_SENSORCUSTOMDATATYPE;
1418c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1419c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1420c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * OMX_OBJDETECTQUALITY
1421c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1422c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1423c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_OBJDETECTQUALITY{
1424c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_FastDetection = 0, /**< A detection that prioritizes speed*/
1425c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_Default,    /**< The default detection, should be used when no control of the detection quality is given.*/
1426c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_BetterDetection,    /**< A detection that levels correct detection with speed*/
1427c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_BestDtection,   /**< A detection that prioritizes correct detection*/
1428e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_AUTODETECTION,       /**< Automatically decide which object detection quality is best.*/
1429e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_ObjDetectQualityMax = 0x7fffffff
1430c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_OBJDETECTQUALITY;
1431c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1432c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1433c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * OBJECT DETECTION Type
1434c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      nPortIndex: is an output port. The port index decides on which port the extra data structur of detected object is sent on.
1435c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      bEnable : this controls ON/OFF for this object detection algirithm.
1436c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      bFrameLimited: is a Boolean used to indicate if detection shall be terminated after the specified number of frames if
1437c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *          true frame limited detection is enabled; otherwise the port does not terminate detection until instructed to do so by the client.
1438c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      nFrameLimit: is the limit on number of frames detection is executed for, this parameter is only valid if bFrameLimited is enabled.
1439c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      nMaxNbrObjects: specifies the maximum number of objects that should be found in each frame. It is implementation dependent which objects are found.
1440c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      nLeft: is the leftmost coordinate of the detection area rectangle.
1441c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      nTop: is the topmost coordinate of the detection area rectangle.
1442c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      nWidth: is the width of the detection area rectangle in pixels.
1443c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      nHeight: is the height of the detection area rectangle in pixels.
1444c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      eObjDetectQuality: is an enumeration specifying the quality desired by the detection.
1445c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      nPriority: represents priority of each object when there are multiple objects detected.
1446c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1447c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1448c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_OBJDETECTIONTYPE {
1449c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
1450c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1451c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
1452c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BOOL bEnable;
1453c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BOOL bFrameLimited;
1454c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nFrameLimit;
1455c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nMaxNbrObjects;
1456c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_S32 nLeft;
1457c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_S32 nTop;
1458c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nWidth;
1459c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nHeight;
1460c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_OBJDETECTQUALITY eObjDetectQuality;
1461c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPriority;
1462c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nDeviceOrientation;
1463c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev } OMX_CONFIG_OBJDETECTIONTYPE;
1464c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1465c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1466c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1467c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * OMX_OBJDETECTQUALITY
1468c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1469c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1470c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_DISTTYPE{
1471c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_DistanceControlFocus = 0, /**< focus objects distance type*/
1472e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_DISTANCECONTROL_RECT,       /**< Evaluated distance to the object found in the rectangelar area indicated as input region.  */
1473e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_DistTypeMax = 0x7fffffff
1474c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_DISTTYPE;
1475c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1476c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1477c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1478c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Distance mesurement
1479c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	bStarted is a Boolean. The IL client sets it to true to start the measurement .
1480c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *		the IL client sets to false to stop the measurement. The IL client can query it to check if the measurement is ongoing.
1481c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	nLeft : is the leftmost coordinate of the rectangle.
1482c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	nTop : is the topmost coordinate of the rectangle.
1483c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	nWidth:  is the width of the rectangle in pixels.
1484c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	nHeight:  is the height of the rectangle in pixels.
1485c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	eDistType:  is an enumeration specifying the distance measurement type, as shown in
1486c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1487c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_DISTANCETYPE {
1488c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
1489c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1490c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
1491c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BOOL bStarted;
1492c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_S32 nLeft;
1493c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_S32 nTop;
1494c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nWidth;
1495c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nHeight;
1496c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_DISTTYPE eDistType;
1497c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_DISTANCETYPE;
1498c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1499c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1500c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1501c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * face detect data - face attribute
1502c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nARGBEyeColor: is the indicates a 32-bit eye color of the person, where bits 0-7 are blue,
1503c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      bits 15-8 are green, bits 24-16 are red, and bits 31-24 are for alpha.
1504c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nARGBSkinColor: is the indicates a 32-bit skin color of the person, where bits 0-7 are blue,
1505c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      bits 15-8 are green, bits 24-16 are red, and bits 31-24 are for alpha.
1506c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nARGBHairColor: is the indicates a 32-bit hair color of the person, where bits 0-7 are blue,
1507c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      bits 15-8 are green, bits 24-16 are red, and bits 31-24 are for alpha.
1508c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSmileScore: a smile detection score between 0 and 100, where 0 means not detecting,
1509c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      1 means least certain and 100 means most certain a smile is detected.
1510c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nBlinkScore: a eye-blink detection score between 0 and 100, where 0 means not detecting,
1511c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      1 means least certain and 100 means most certain an eye-blink is detected.
1512c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  xIdentity: represents the identity of the face. With identity equal to zero this is not supported.
1513c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      This can be used by a face recognition application. The component shall not reuse an identity value unless the same face.
1514c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      Can be used to track detected faces when it moves between frames. Specific usage of this field is implementation dependent.
1515c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      It can be some kind of ID.
1516c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1517c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1518c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_FACEATTRIBUTE {
1519e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nARGBEyeColor;      /**< The indicates a 32-bit eye color of the person,
1520e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen                                     where bits 0-7 are blue, bits 15-8 are green, bits 24-16 are red,
1521e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen                                     and bits 31-24 are for alpha. */
1522e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nARGBSkinColor;     /**< The indicates a 32-bit skin color of the person,
1523e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen                                     where bits 0-7 are blue, bits 15-8 are green, bits 24-16 are red,
1524e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen                                     and bits 31-24 are for alpha */
1525e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nARGBHairColor;     /**< the indicates a 32-bit hair color of the person,
1526e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen                                     where bits 0-7 are blue, bits 15-8 are green, bits 24-16 are red,
1527e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen                                    and bits 31-24 are for alpha */
1528e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nSmileScore;        /**< Smile detection score between 0 and 100, where 0 means not detecting,
1529e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen                                     1 means least certain and 100 means most certain a smile is detected */
1530e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nBlinkScore;        /**< Eye-blink detection score between 0 and 100, where 0 means not detecting,
1531e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen                                     1 means least certain and 100 means most certain an eye-blink is detected */
1532e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 xIdentity[4];       /**< represents the identity of the face. With identity equal to zero this is not supported.
1533e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen                                     This can be used by a face recognition application.
1534e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen                                     The component shall not reuse an identity value unless the same face.
1535e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen                                     Can be used to track detected faces when it moves between frames.
1536e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen                                     Specific usage of this field is implementation dependent.
1537e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen                                     It can be some kind of ID */
1538c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_FACEATTRIBUTE;
1539c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1540c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1541c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * xGamma represents lool-up table for gamma correction in Q16 format.
1542c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * All values assume that maximum value is 255. If internal implementation uses higher dynamic range, this value should be adjusted internally.
1543c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1544c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1545c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1546c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
1547c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  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.
1548c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nLeft: is the leftmost coordinate of the detected area rectangle.
1549c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nTop: is the topmost coordinate of the detected area rectangle.
1550c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nWidth: is the width of the detected area rectangle in pixels.
1551c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nHeight: is the height of the detected area rectangle in pixels.
1552c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  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.
1553c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPriority represents priority of each object when there are multiple objects detected.
1554c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nFaceAttr describe the attributes of the detected face object with the following structure:
1555c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1556c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1557c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1558c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_FACERESULT {
1559c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
1560c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1561c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
1562c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_TI_CAMERAVIEWTYPE eCameraView;
1563e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32               nScore;     /**< Detection score between 0 and 100, where 0 means unknown score,
1564e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen                                         1 means least certain and 100 means most certain the detection is correct */
1565e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32 nLeft;                  /**< The leftmost coordinate of the detected area rectangle */
1566e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32 nTop;                   /**< The topmost coordinate of the detected area rectangle */
1567e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nWidth;                 /**< The width of the detected area rectangle in pixels */
1568e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nHeight;                /**< The height of the detected area rectangle in pixels */
1569e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    // The orientation of the axis of the detected object.
1570e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    // Here roll angle is defined as the angle between the vertical axis of face and the horizontal axis.
1571e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    // All angles can have the value of -180 to 180 degree in Q16 format.
1572e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    // Some face detection algorithm may not be able to fill in the angles, this is denoted by the use of MAX_INT value.
1573c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevOMX_S32 nOrientationRoll;
1574c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevOMX_S32 nOrientationYaw;
1575c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevOMX_S32 nOrientationPitch;
1576e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    //
1577e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32           nPriority;     /**< Represents priority of each object when there are multiple objects detected */
1578e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_FACEATTRIBUTE nFaceAttr;     /**< Describe the attributes of the detected face object with the following structure */
1579c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_FACERESULT;
1580c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1581c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1582c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1583c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Face detection data
1584c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * The extra data having face detection data is described with the following structure.
1585c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * The parser should only assume that the first tFacePosition[ulFaceCount] of the 35 elements
1586c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * of the array should contain valid data.
1587c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1588c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_FACEDETECTIONTYPE {
1589c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
1590c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1591c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
1592c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_TI_CAMERAVIEWTYPE    eCameraView;
1593e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16               ulFaceCount;     // faces detected
1594c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_TI_FACERESULT tFacePosition[35];// 35 is max faces supported by FDIF
1595c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_FACEDETECTIONTYPE;
1596c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1597c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1598c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * MTIS Vendor Specific Motion estimation
1599c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * The extra data having MTIS motion estimation data is
1600c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * described with the following structure.
1601c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1602c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_MTISTYPE {
1603c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
1604c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1605c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
1606c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_TI_CAMERAVIEWTYPE eCameraView;
1607c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_S32 nMaxMVh;            /**< The maximum MV for horizontal direction */
1608c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_S32 nMaxMVv;            /**< The maximum MV for vertical direction */
1609c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U16 nMVRelY[9];         /**< The mask for MV reliability */
1610c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U16 nMVRelX[9];         /**< The mask for MV reliability */
1611c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_S32 nMVh[9];            /**< The MVs for horizontal direction */
1612c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_S32 nMVv[9];            /**< The MVs for vertical direction */
1613c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_MTISTYPE;
1614c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1615c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1616c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * The OMX_EXTRADATATYPE enumeration is used to define the
1617c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * possible extra data payload types.
1618c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1619e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef enum OMX_EXT_EXTRADATATYPE {
1620e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_ExifAttributes = 0x7F000001,     /**< 0x7F000001 Reserved region for introducing Vendor Extensions */
1621c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_AncillaryData,                   /**< 0x7F000002 ancillary data */
1622c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_WhiteBalance,                    /**< 0x7F000003 white balance resultant data */
1623c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_UnsaturatedRegions,              /**< 0x7F000004 unsaturated regions data */
1624e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_FaceDetection,              /**< 0x7F000005 face detect data */
1625e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BarcodeDetection,           /**< 0x7F000006 bar-code detct data */
1626e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_FrontObjectDetection,       /**< 0x7F000007 Front object detection data */
1627e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_MotionEstimation,           /**< 0x7F000008 motion Estimation data */
1628e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_MTISType,                   /**< 0x7F000009 MTIS motion Estimation data */
1629e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_DistanceEstimation,         /**< 0x7F00000A disctancedistance estimation */
1630e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_Histogram,                  /**< 0x7F00000B histogram */
1631e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_FocusRegion,                /**< 0x7F00000C focus region data */
1632c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_ExtraDataPanAndScan,             /**< 0x7F00000D pan and scan data */
1633e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_RawFormat,                  /**< 0x7F00000E custom RAW data format */
1634e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_SensorType,                 /**< 0x7F00000F vendor & model of the sensor being used */
1635e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_SensorCustomDataLength,     /**< 0x7F000010 vendor specific custom data length */
1636e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_SensorCustomData,           /**< 0x7F000011 vendor specific data */
1637c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_TI_FrameLayout,                  /**< 0x7F000012 vendor specific data */
1638c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_TI_SEIinfo2004Frame1,    /**< 0x7F000013 Used for 2004 SEI message to be provided by video decoders */
1639c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_TI_SEIinfo2004Frame2,    /**< 0x7F000014 Used for 2004 SEI message to be provided by video decoders */
1640c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_TI_SEIinfo2010Frame1,    /**< 0x7F000015 Used for 2010 SEI message to be provided by video decoders */
1641c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_TI_SEIinfo2010Frame2,    /**< 0x7F000016 Used for 2010 SEI message to be provided by video decoders */
1642c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_TI_RangeMappingInfo,     /**< 0x7F000017 Used for Range mapping info provided by Video Decoders */
1643c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_TI_RescalingInfo,        /**< 0x7F000018 Used for width/height rescaling info provided by Video Decoders */
1644c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_TI_WhiteBalanceOverWrite,        /**< 0x7F000019 Used for manual AWB settings */
1645e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_CPCamData,               /**< 0x7F00001A Used for cp cam data */
1646e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_H264ESliceDataInfo,      /**< 0x7F00001B */
1647e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_DccData,                 /**< 0x7F00001C Used for dcc data overwrite in the file system */
1648e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_ProfilerData,            /**< 0x7F00001D Used for profiling data */
1649e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VectShotInfo,            /**< 0x7F00001E Used for vector shot feedback notification */
1650e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_CamReProcMeta,           /**< 0x7F00001F Used for meta data input to camera re-proc function */
1651e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_LSCTable,                /**< 0x7F000020 Lens shading table for corresponding frame */
1652e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_CodecExtenderErrorFrame1, /**< 0x7F000021 Used for Codec Extended Error to be provided byvideo decoders */
1653e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_CodecExtenderErrorFrame2, /**< 0x7F000022 Used for Codec Extended Error to be provided byvideo decoders */
1654e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_MBInfoFrame1,            /**< 0x7F000023 Used for MBError message to be provided by videodecoders */
1655e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_MBInfoFrame2,            /**< 0x7F000024 Used for MBError message to be provided by videodecoders */
1656e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_SEIInfoFrame1,           /**< 0x7F000025 Used for SEI message to be provided by video decoders*/
1657e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_SEIInfoFrame2,           /**< 0x7F000026 Used for SEI message to be provided by video decoders*/
1658e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VUIInfoFrame1,           /**< 0x7F000027 Used for VUI message to be provided by video decoders */
1659e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VUIInfoFrame2,           /**< 0x7F000028 Used for VUI message to be provided by video decoders */
1660c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_TI_ExtraData_Count,
1661c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_TI_ExtraData_Max = OMX_TI_ExtraData_Count - 1,
1662e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen   OMX_TI_ExtraData_32Bit_Patch = 0x7fffffff
1663c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_EXT_EXTRADATATYPE;
1664c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1665c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1666c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1667c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Enable Extra-data on a specific port.
1668c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1669c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1670c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1671c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
1672c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize        : Size of the structure in bytes
1673c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion     : OMX specification version information
1674c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex   : Port on which this extra data to be assosiated
1675c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  eExtraDataType :  Extra data type
1676c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  bEnable      : Eneble/Disable this extra-data through port.
1677c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1678c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1679c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_EXTRADATATYPE {
1680e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nSize;                              /**< The size of the structure including data bytes
1681e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen                                                     and any padding necessary to ensure 32bit alignment
1682e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen                                                     of the next OMX_OTHER_EXTRADATATYPE structure */
1683c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1684e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32               nPortIndex;           /**< The read-only value containing the index of the port */
1685e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_EXT_EXTRADATATYPE eExtraDataType;       /**< Identifies the extra data payload type */
1686c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BOOL bEnable;
1687c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_EXTRADATATYPE;
1688c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1689c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1690c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * JPEG header type
1691c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * */
1692c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1693c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_JPEGHEADERTYPE{
1694c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_NoHeader = 0,
1695c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_JFIF,
1696e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_EXIF,
1697e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_JpegHeaderTypeMax = 0x7fffffff
1698c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_JPEGHEADERTYPE;
1699c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1700c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Re-start marker configuration
1701c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1702c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1703c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1704c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
1705c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize        : Size of the structure in bytes
1706c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion     : OMX specification version information
1707c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex   : Port on which this extra data to be assosiated
1708c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  eJpegHeaderType : JPEG header type EXIF, JFIF, or No heeader.
1709c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1710c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1711c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_JPEGHEEADERTYPE{
1712c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nSize;
1713c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE nVersion;
1714c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nPortIndex;
1715c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_JPEGHEADERTYPE eJpegHeaderType;
1716c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_CONFIG_JPEGHEEADERTYPE;
1717c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1718c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1719c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Re-start marker configuration
1720c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1721c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1722c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1723c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
1724c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize        : Size of the structure in bytes
1725c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion     : OMX specification version information
1726c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex   : Port on which this extra data to be assosiated
1727c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nRstInterval :  interval at which RST markers are to be inserted.
1728c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  bEnable      : Eneble/Disable this RST marker insertion feature.
1729c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1730c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1731c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1732c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_RSTMARKER{
1733c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nSize;
1734c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE nVersion;
1735c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nPortIndex;
1736c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nRstInterval;
1737c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_BOOL nEnable;
1738c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_CONFIG_RSTMARKER;
1739c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1740c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1741c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Enable Extra-data on a specific port.
1742c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1743c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1744c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1745c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
1746c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize        : Size of the structure in bytes
1747c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion     : OMX specification version information
1748c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex   : Port that this structure applies to
1749c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nMaxSize : max size
1750c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1751c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1752c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1753c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_IMAGE_JPEGMAXSIZE {
1754c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
1755c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1756c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
1757c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nMaxSize;
1758c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_IMAGE_JPEGMAXSIZE;
1759c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1760c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1761c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_IMAGESTAMPOPERATION{
1762c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_NewImageStamp = 0,
1763e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_Continuation,
1764e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_ImageStapOperationMax = 0x7fffffff
1765c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_IMAGESTAMPOPERATION;
1766c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1767c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1768c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1769c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Enable Extra-data on a specific port.
1770c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1771c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1772c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1773c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
1774c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize        : Size of the structure in bytes
1775c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion     : OMX specification version information
1776c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex   : Port that this structure applies to
1777c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nMaxSize : max size
1778c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1779c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1780c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1781c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_PARAM_IMAGESTAMPOVERLAYTYPE {
1782c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
1783c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1784c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
1785c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_IMAGESTAMPOPERATION nOp;
1786c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nLeft;
1787c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nTop;
1788c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nHeight;
1789c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nWidth;
1790c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_COLOR_FORMATTYPE eFormat;
1791c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U8 * pBitMap;
1792c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_PARAM_IMAGESTAMPOVERLAYTYPE;
1793c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1794c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1795c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1796c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Enable Extra-data on a specific port.
1797c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1798c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1799c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1800c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
1801c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize        : Size of the structure in bytes
1802c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion     : OMX specification version information
1803c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex   : Port that this structure applies to
1804c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nMaxSize : max size
1805c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1806c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1807c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1808c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_PARAM_THUMBNAILTYPE {
1809c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
1810c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1811c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
1812c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nHeight;
1813c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nWidth;
1814c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_IMAGE_CODINGTYPE eCompressionFormat;
1815c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_COLOR_FORMATTYPE eColorFormat;
1816c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nQuality;
1817c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nMaxSize;
1818c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_PARAM_THUMBNAILTYPE;
1819c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1820c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1821c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Red-Eye Removal Enum
1822c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1823c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_REDEYEREMOVALTYPE{
1824c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_RedEyeRemovalOff    = 0, /** No red eye removal*/
1825c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_RedEyeRemovalOn, /**    Red eye removal on*/
1826c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_RedEyeRemovalAuto,  /** Red eye removal will be done automatically when detected*/
1827c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_RedEyeRemovalKhronosExtensions = 0x6F000000,    /** Reserved region for introducing Khronos Standard Extensions*/
1828c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_RedEyeRemovalVendorStartUnused = 0x7F000000,    /** Reserved region for introducing Vendor Extensions*/
1829c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_RedEyeRemovalMax = 0x7FFFFFFF
1830c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_REDEYEREMOVALTYPE;
1831c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1832c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1833c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Enable Extra-data on a specific port.
1834c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1835c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1836c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1837c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
1838c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize        : Size of the structure in bytes
1839c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion     : OMX specification version information
1840c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex   : Port that this structure applies to
1841c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nLeft: is the leftmost coordinate of the detection area rectangle (such as face region).
1842c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nTop: is the topmost coordinate of the detection area rectangle (such as face region).
1843c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nWidth: is the width of the detection area rectangle  in pixels.
1844c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nHeight: is the height of the detection area rectangle in pixels.
1845c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  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.
1846c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1847c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1848c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1849c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_REDEYEREMOVALTYPE {
1850c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_U32 nSize;
1851c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_VERSIONTYPE nVersion;
1852c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_U32 nPortIndex;
1853c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_S32 nLeft;
1854c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_S32 nTop;
1855c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_U32 nWidth;
1856c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_U32 nHeight;
1857c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_U32 nARGBEyeColor;
1858c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_REDEYEREMOVALTYPE eMode;
1859c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_REDEYEREMOVALTYPE;
1860c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1861c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1862c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1863c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1864c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1865c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1866c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1867c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Video capture YUV Range Enum
1868c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1869c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_VIDEOYUVRANGETYPE{
1870c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_ITURBT601 = 0,
1871c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_Full8Bit,
1872c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VideoYUVRangeKhronosExtensions = 0x6F000000,    /** Reserved region for introducing Khronos Standard Extensions*/
1873c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VideoYUVRangeVendorStartUnused = 0x7F000000,    /** Reserved region for introducing Vendor Extensions*/
1874c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VideoYUVRangeMax = 0x7FFFFFFF
1875c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_VIDEOYUVRANGETYPE;
1876c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1877c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1878c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Enable Extra-data on a specific port.
1879c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1880c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1881c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1882c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
1883c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize        : Size of the structure in bytes
1884c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion     : OMX specification version information
1885c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex   : Port that this structure applies to
1886c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1887c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1888c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_PARAM_VIDEOYUVRANGETYPE {
1889c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_U32 nSize;
1890c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_VERSIONTYPE nVersion;
1891c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_U32 nPortIndex;
1892c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   OMX_VIDEOYUVRANGETYPE eYUVRange;
1893c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_PARAM_VIDEOYUVRANGETYPE;
1894c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1895c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1896c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Video noise filter mode range enum
1897c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1898c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_VIDEONOISEFILTERMODETYPE{
1899c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VideoNoiseFilterModeOff = 0,
1900c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VideoNoiseFilterModeOn,
1901c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VideoNoiseFilterModeAuto,
1902c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VideoNoiseFilterModeExtensions = 0x6F000000,    /** Reserved region for introducing Khronos Standard Extensions */
1903c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VideoNoiseFilterModeStartUnused = 0x7F000000,   /** Reserved region for introducing Vendor Extensions */
1904c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VideoNoiseFilterModeMax = 0x7FFFFFFF
1905c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_VIDEONOISEFILTERMODETYPE;
1906c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1907c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1908c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Enable video noise filter.
1909c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1910c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
1911c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize       : Size of the structure in bytes
1912c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion    : OMX specification version information
1913c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex  : Port that this structure applies to
1914c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  eMode       : Video noise filter mode (on/off/auto)
1915c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1916c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_PARAM_VIDEONOISEFILTERTYPE {
1917c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
1918c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1919c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
1920c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VIDEONOISEFILTERMODETYPE eMode;
1921c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_PARAM_VIDEONOISEFILTERTYPE;
1922c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1923c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1924c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1925c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * High ISO Noise filter mode range enum
1926c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1927c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_ISONOISEFILTERMODETYPE{
1928c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_ISONoiseFilterModeOff = 0,
1929c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_ISONoiseFilterModeOn,
1930c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_ISONoiseFilterModeAuto,
1931c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_ISONoiseFilterModeExtensions = 0x6F000000,    /** Reserved region for introducing Khronos Standard Extensions */
1932c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_ISONoiseFilterModeStartUnused = 0x7F000000,   /** Reserved region for introducing Vendor Extensions */
1933c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_ISONoiseFilterModeMax = 0x7FFFFFFF
1934c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_ISONOISEFILTERMODETYPE;
1935c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1936c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1937c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Enable ISO noise filter.
1938c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1939c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
1940c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize       : Size of the structure in bytes
1941c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion    : OMX specification version information
1942c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex  : Port that this structure applies to
1943c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  eMode       : ISO noise filter (NSF2 is used) mode (on/off/auto)
1944c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1945c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_PARAM_ISONOISEFILTERTYPE {
1946c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
1947c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1948c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
1949c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_ISONOISEFILTERMODETYPE eMode;
1950c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_PARAM_ISONOISEFILTERTYPE;
1951c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1952c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1953c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Structure used to to call OMX_GetParams() for each
1954c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * increment of "Index" starting with "0"
1955c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
1956c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
1957c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nSize            : Size of the structure in bytes
1958c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nVersion         : OMX specification version information
1959c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nIndex           : Index of the sDCCURI 0..MAX_URI_LENGTH
1960c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * sDCCURI          : Look-up table containing strings. Ends with '\0'
1961c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1962c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_PARAM_DCCURIINFO {
1963c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
1964c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1965c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nIndex;
1966c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_S8 sDCCURI[MAX_URI_LENGTH];
1967c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_PARAM_DCCURIINFO;
1968c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1969c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1970c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Manual White Balance color temperature
1971c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
1972c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize        : Size of the structure in bytes
1973c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion     : OMX specification version information
1974c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex   : Port that this structure applies to
1975c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nColorTemperature : Color Temperature in K
1976c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1977c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_CONFIG_WHITEBALANCECOLORTEMPTYPE {
1978c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
1979c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1980c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
1981c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nColorTemperature;
1982c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_CONFIG_WHITEBALANCECOLORTEMPTYPE;
1983c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1984c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1985c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Focus spot weighting range enum
1986c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
1987c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_TI_CONFIG_FOCUSSPOTMODETYPE {
1988c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_FocusSpotDefault = 0,                           /** Makes CommonFocusRegion to be used. */
1989e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_FocusSpotSinglecenter,                          /** Only central part of the image is used for focus. */
1990e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_FocusSpotMultiNormal,                           /** Middle part of the image is used with 100% weight, upper and lower parts are with 50%. */
1991e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_FocusSpotMultiAverage,                          /** All the image is used with 100% weight. */
1992e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_FocusSpotMultiCenter,                           /** Central part of the image is used with 100% weight, the rest is used with 50%. */
1993c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_FocusSpotExtensions = 0x6F000000,               /** Reserved region for introducing Khronos Standard Extensions */
1994c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_FocusSpotModeStartUnused = 0x7F000000,          /** Reserved region for introducing Vendor Extensions */
1995c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_FocusSpotModeMax = 0x7FFFFFFF
1996c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_CONFIG_FOCUSSPOTMODETYPE;
1997c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
1998c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
1999c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Focus Spot Weighting configuration.
2000c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
2001c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
2002c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize       : Size of the structure in bytes
2003c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion    : OMX specification version information
2004c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex  : Port that this structure applies to
2005c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  eMode       : Spot Weighting mode
2006c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
2007c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_CONFIG_FOCUSSPOTWEIGHTINGTYPE {
2008c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
2009c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
2010c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
2011c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_TI_CONFIG_FOCUSSPOTMODETYPE eMode;
2012c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_CONFIG_FOCUSSPOTWEIGHTINGTYPE;
2013c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
2014c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
2015c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Enumeration of possible Exposure control types for OMX_EXPOSURECONTROLTYPE
2016c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
2017c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_TI_EXTEXPOSURECONTROLTYPE {
2018e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_ExposureControlVeryLong = OMX_ExposureControlVendorStartUnused + 1,
2019e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_ExposureControlFacePriority,
2020e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_ExposureControlMax = 0x7fffffff
2021c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_EXTEXPOSURECONTROLTYPE;
2022c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
2023c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
2024c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Variable frame rate configuration.
2025c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
2026c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
2027c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize         : Size of the structure in bytes
2028c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion      : OMX specification version information
2029c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex    : Port that this structure applies to
2030c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  xMinFramerate : Minimum variable frame rate value
2031c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
2032c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_PARAM_VARFRAMERATETYPE {
2033c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nSize;
2034c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE nVersion;
2035c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nPortIndex;
2036c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 xMinFramerate;
2037c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_PARAM_VARFRAMERATETYPE;
2038c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
2039c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
2040c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Exposure config for right frame
2041c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
2042c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_CONFIG_EXPOSUREVALUERIGHTTYPE {
2043c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nSize;
2044c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE nVersion;
2045c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nPortIndex;
2046c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nApertureFNumber;  /**< e.g. nApertureFNumber = 2 implies "f/2" - Q16 format */
2047c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nShutterSpeedMsec; /**< Shutterspeed in milliseconds */
2048c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nSensitivity;      /**< e.g. nSensitivity = 100 implies "ISO 100" */
2049c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_CONFIG_EXPOSUREVALUERIGHTTYPE;
2050c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
2051c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
2052c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Auto Convergence mode enum
2053c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
2054c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_TI_AUTOCONVERGENCEMODETYPE {
2055c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_AutoConvergenceModeDisable,
2056c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_AutoConvergenceModeFrame,
2057c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_AutoConvergenceModeCenter,
2058c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_AutoConvergenceModeFocusFaceTouch,
2059c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_AutoConvergenceModeManual,
2060c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_AutoConvergenceExtensions = 0x6F000000,    /** Reserved region for introducing Khronos Standard Extensions */
2061c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_AutoConvergenceStartUnused = 0x7F000000,   /** Reserved region for introducing Vendor Extensions */
2062c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_AutoConvergenceModeMax = 0x7FFFFFFF
2063c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_AUTOCONVERGENCEMODETYPE;
2064c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
2065c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
2066c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Variable farame rate configuration.
2067c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
2068c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
2069c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize             : Size of the structure in bytes
2070c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion          : OMX specification version information
2071c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex        : Port that this structure applies to
2072c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  eACMode           : Auto convergence mode
2073c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nManualConverence : Manual Converence value
2074c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nACProcWinStartX  : Start X AC Window
2075c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nACProcWinStartY  : Start Y AC Window
2076c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nACProcWinWidth   : Width of AC Window
2077c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nACProcWinHeight  : Height of AC Window
2078c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  bACStatus         : output status from AL alg
2079c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
2080c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_CONFIG_CONVERGENCETYPE {
2081c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nSize;
2082c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE nVersion;
2083c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nPortIndex;
2084c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_AUTOCONVERGENCEMODETYPE eACMode;
2085c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S32 nManualConverence;
2086c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nACProcWinStartX;
2087c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nACProcWinStartY;
2088c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nACProcWinWidth;
2089c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nACProcWinHeight;
2090c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_BOOL bACStatus;
2091c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_CONFIG_CONVERGENCETYPE;
2092c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
2093c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
2094c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Camera specific version.
2095c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
2096c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
2097c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nBranch        : Branch
2098c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nCommitID      : Commit ID
2099c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nBuildDateTime : Build date and time
2100c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nExtraInfo     : rederved for future use
2101c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
2102c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_CAMERASPECVERSIONTYPE {
2103c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U8 nBranch[64];
2104c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U8 nCommitID[64];
2105c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U8 nBuildDateTime[64];
2106c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U8 nExtraInfo[64];
2107c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_CAMERASPECVERSIONTYPE;
2108c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
2109c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
2110c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Stereo frame layout enum
2111c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
2112c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_TI_STEREOFRAMELAYOUTTYPE {
2113c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_StereoFrameLayout2D,
2114c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_StereoFrameLayoutTopBottom,
2115c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_StereoFrameLayoutLeftRight,
2116e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_StereoFrameLayoutTopBottomSubsample,
2117e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_StereoFrameLayoutLeftRightSubsample,
2118c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_StereoFrameLayoutMax = 0x7FFFFFFF
2119c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_STEREOFRAMELAYOUTTYPE;
2120c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
2121c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
2122c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Camera frame layout type.
2123c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
2124c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
2125c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  eFrameLayout    : frame layout
2126c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSubsampleRatio : subsample ratio
2127c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
2128c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_FRAMELAYOUTTYPE {
2129c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nSize;
2130c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE nVersion;
2131c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nPortIndex;
2132c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_STEREOFRAMELAYOUTTYPE eFrameLayout;
2133c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nSubsampleRatio; /**  Subsampling ratio, Q15.7 */
2134c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_FRAMELAYOUTTYPE;
2135c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
2136c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
2137c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * The OMX_TI_COLOR_FORMATTYPE enumeration is used to define the
2138c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * extended color format types.
2139c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
2140c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_TI_COLOR_FORMATTYPE {
2141c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_COLOR_FormatRawBayer10bitStereo =
2142c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	    OMX_COLOR_FormatVendorStartUnused + 2, /**< 10 bit raw for stereo */
2143e5d86ac2b8d0b0172944bb46c7a5d2c6b659b2a9Lakshman Gowda	OMX_TI_COLOR_FormatYUV420PackedSemiPlanar =
2144e5d86ac2b8d0b0172944bb46c7a5d2c6b659b2a9Lakshman Gowda            (OMX_COLOR_FORMATTYPE) OMX_COLOR_FormatVendorStartUnused  + 0x100, /* 0x100 is used since it is the corresponding HAL pixel fromat */
2145e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_ColorFormatTypeMax = 0x7fffffff
2146c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_COLOR_FORMATTYPE;
2147c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
2148c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
2149c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * The OMX_TI_EXIFTAGSTATUS enumeration is used to define the
2150c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * tag status types.
2151c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
2152c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_TI_EXIFTAGSTATUS {
2153c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_TagReadOnly,     /**< implies this tag is generated within omx-camera >*/
2154c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_TagReadWrite,    /**< implies this tag can be overwritten by client >*/
2155c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_TagUpdated,      /**< client has to use this to indicate the specific tag is overwritten >*/
2156c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_ExifStatus_Max = 0x7fffffff
2157c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_EXIFTAGSTATUS;
2158c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
2159c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_CONFIG_EXIF_TAGS {
2160c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 nSize;
2161c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE         nVersion;
2162c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 nPortIndex;
2163c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusImageWidth;
2164c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulImageWidth;
2165c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusImageHeight;
2166c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulImageHeight;
2167c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusBitsPerSample;
2168c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U16                 usBitsPerSample[3];
2169c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusCompression;
2170c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U16                 usCompression;
2171c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusPhotometricInterpretation;
2172c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U16                 usPhotometricInterpretation;
2173c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusOrientation;
2174c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U16                 usOrientation;
2175c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusSamplesPerPixel;
2176c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U16                 usSamplesPerPixel;
2177c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusPlanarConfiguration;
2178c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U16                 usPlanarConfiguration;
2179c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusYCbCrSubSampling;
2180c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U16                 usYCbCrSubSampling[2];
2181c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusYCbCrPositioning;
2182c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U16                 usYCbCrPositioning;
2183c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusXResolution;
2184c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulXResolution[2];
2185c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusYResolution;
2186c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulYResolution[2];
2187c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusResolutionUnit;
2188c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U16                 usResolutionUnit;
2189c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
2190c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusRowsPerStrip;
2191c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulRowsPerStrip;
2192c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusDataSize;
2193c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulDataSize;
2194c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
2195c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusTransferFunction;
2196c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U16                 usTransferFunction[3*256];
2197c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusWhitePoint;
2198c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulWhitePoint[4]; //2x2
2199c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusPrimaryChromaticities;
2200c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulPrimaryChromaticities[12]; //2x6
2201c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusYCbCrCoefficients;
2202c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulYCbCrCoefficients[6]; //2x3
2203c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusReferenceBlackWhite;
2204c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulReferenceBlackWhite[12]; //2x6
2205c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusDateTime;
2206c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8*                 pDateTimeBuff;
2207c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulDateTimeBuffSizeBytes;
2208c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusImageDescription;
2209c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8*                 pImageDescriptionBuff;
2210c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulImageDescriptionBuffSizeBytes;
2211c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusMake;
2212c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8*                 pMakeBuff;
2213c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulMakeBuffSizeBytes;
2214c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusModel;
2215c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8*                 pModelBuff;
2216c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulModelBuffSizeBytes;
2217c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusSoftware;
2218c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8*                 pSoftwareBuff;
2219c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulSoftwareBuffSizeBytes;
2220c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusArtist;
2221c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8*                 pArtistBuff;
2222c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulArtistBuffSizeBytes;
2223c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusCopyright;
2224c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8*                 pCopyrightBuff;
2225c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulCopyrightBuffSizeBytes;
2226c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
2227c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusExifVersion;
2228c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8                  cExifVersion[4];
2229c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusFlashpixVersion;
2230c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8                  cFlashpixVersion[4];
2231c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusColorSpace;
2232c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U16                 usColorSpace;
2233c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusComponentsConfiguration;
2234c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8                  cComponentsConfiguration[4];
2235c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusCompressedBitsPerPixel;
2236c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulCompressedBitsPerPixel[2];
2237c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusPixelXDimension;
2238c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulPixelXDimension;
2239c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusPixelYDimension;
2240c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulPixelYDimension;
2241c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusMakerNote;
2242c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8*                 pMakerNoteBuff;
2243c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulMakerNoteBuffSizeBytes;
2244c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusUserComment;
2245c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8*                 pUserCommentBuff;
2246c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulUserCommentBuffSizeBytes;
2247c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusRelatedSoundFile;
2248c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8                  cRelatedSoundFile[13];
2249c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusDateTimeOriginal;
2250c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8*                 pDateTimeOriginalBuff;
2251c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulDateTimeOriginalBuffSizeBytes;
2252c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusDateTimeDigitized;
2253c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8*                 pDateTimeDigitizedBuff;
2254c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulDateTimeDigitizedBuffSizeBytes;
2255c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusSubSecTime;
2256c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8*                 pSubSecTimeBuff;
2257c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulSubSecTimeBuffSizeBytes;
2258c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusSubSecTimeOriginal;
2259c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8*                 pSubSecTimeOriginalBuff;
2260c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulSubSecTimeOriginalBuffSizeBytes;
2261c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusSubSecTimeDigitized;
2262c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8*                 pSubSecTimeDigitizedBuff;
2263c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulSubSecTimeDigitizedBuffSizeBytes;
2264c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
2265c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusExposureTime;
2266c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulExposureTime[2];
2267c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusFNumber;
2268c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulFNumber[2];
2269c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusExposureProgram;
2270c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U16                 usExposureProgram;
2271c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusSpectralSensitivity;
2272c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8*                 pSpectralSensitivityBuff;
2273c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulSpectralSensitivityBuffSizeBytes;
2274c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusISOCount;
2275c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U16                 usISOCount;
2276c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusISOSpeedRatings;
2277c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U16*                pISOSpeedRatings;
2278c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusOECF;
2279c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8*                 pOECFBuff;
2280c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulOECFBuffSizeBytes;
2281c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusShutterSpeedValue;
2282c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S32                 slShutterSpeedValue[2];
2283c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusApertureValue;
2284c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulApertureValue[2];
2285c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusBrightnessValue;
2286c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S32                 slBrightnessValue[2];
2287c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusExposureBiasValue;
2288c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S32                 slExposureBiasValue[2];
2289c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusMaxApertureValue;
2290c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulMaxApertureValue[2];
2291c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusSubjectDistance;
2292c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulSubjectDistance[2];
2293c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusMeteringMode;
2294c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U16                 usMeteringMode;
2295c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusLightSource;
2296c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U16                 usLightSource;
2297c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusFlash;
2298c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U16                 usFlash;
2299c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusFocalLength;
2300c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulFocalLength[2];
2301c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusSubjectArea;
2302c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U16                 usSubjectArea[4];
2303c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusFlashEnergy;
2304c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulFlashEnergy[2];
2305c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusSpatialFrequencyResponse;
2306c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8*                 pSpatialFrequencyResponseBuff;
2307c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulSpatialFrequencyResponseBuffSizeBytes;
2308c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusFocalPlaneXResolution;
2309c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulFocalPlaneXResolution[2];
2310c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusFocalPlaneYResolution;
2311c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulFocalPlaneYResolution[2];
2312c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusFocalPlaneResolutionUnit;
2313c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U16                 usFocalPlaneResolutionUnit;
2314c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusSubjectLocation;
2315c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U16                 usSubjectLocation[2];
2316c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusExposureIndex;
2317c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulExposureIndex[2];
2318c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusSensingMethod;
2319c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U16                 usSensingMethod;
2320c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusFileSource;
2321c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8                  cFileSource;
2322c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusSceneType;
2323c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8                  cSceneType;
2324c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusCFAPattern;
2325c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8*                 pCFAPatternBuff;
2326c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulCFAPatternBuffSizeBytes;
2327c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusCustomRendered;
2328c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U16                 usCustomRendered;
2329c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusExposureMode;
2330c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U16                 usExposureMode;
2331c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusWhiteBalance;
2332c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U16                 usWhiteBalance;
2333c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusDigitalZoomRatio;
2334c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulDigitalZoomRatio[2];
2335c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusFocalLengthIn35mmFilm;
2336c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U16                 usFocalLengthIn35mmFilm;
2337c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusSceneCaptureType;
2338c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U16                 usSceneCaptureType;
2339c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusGainControl;
2340c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U16                 usGainControl;
2341c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusContrast;
2342c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U16                 usContrast;
2343c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusSaturation;
2344c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U16                 usSaturation;
2345c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusSharpness;
2346c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U16                 usSharpness;
2347c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusDeviceSettingDescription;
2348c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8*                 pDeviceSettingDescriptionBuff;
2349c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulDeviceSettingDescriptionBuffSizeBytes;
2350c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusSubjectDistanceRange;
2351c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U16                 usSubjectDistanceRange;
2352c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
2353c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusImageUniqueID;
2354c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8                  cImageUniqueID[33];
2355c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U8*                 pPrivateNextIFDPointer;    //Should not be used by the application
2356c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U8*                 pPrivateThumbnailSize;     //Should not be used by the application
2357c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U8*                 pPrivateTiffHeaderPointer; //Should not be used by the application
2358c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
2359c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusGpsVersionId;
2360c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U8                  ucGpsVersionId[4];
2361c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusGpslatitudeRef;
2362c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8                  cGpslatitudeRef[2];
2363c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusGpsLatitude;
2364c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulGpsLatitude[6];
2365c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusGpsLongitudeRef;
2366c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8                  cGpsLongitudeRef[2];
2367c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusGpsLongitude;
2368c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulGpsLongitude[6];
2369c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusGpsAltitudeRef;
2370c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U8                  ucGpsAltitudeRef;
2371c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusGpsAltitude;
2372c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulGpsAltitude[2];
2373c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusGpsTimeStamp;
2374c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulGpsTimeStamp[6];
2375c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusGpsSatellites;
2376c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8*                 pGpsSatellitesBuff;
2377c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulGpsSatellitesBuffSizeBytes;
2378c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusGpsStatus;
2379c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8                  cGpsStatus[2];
2380c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusGpsMeasureMode;
2381c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8                  cGpsMeasureMode[2];
2382c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusGpsDop;
2383c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulGpsDop[2];
2384c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusGpsSpeedRef;
2385c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8                  cGpsSpeedRef[2];
2386c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusGpsSpeed;
2387c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulGpsSpeed[2];
2388c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusGpsTrackRef;
2389c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8                  cGpsTrackRef[2];
2390c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusGpsTrack;
2391c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulGpsTrack[2];
2392c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusGpsImgDirectionRef;
2393c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8                  cGpsImgDirectionRef[2];
2394c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusGpsImgDirection;
2395c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulGpsImgDirection[2];
2396c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusGpsMapDatum;
2397c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8*                 pGpsMapDatumBuff;
2398c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulGpsMapDatumBuffSizeBytes;
2399c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusGpsDestLatitudeRef;
2400c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8                  cGpsDestLatitudeRef[2];
2401c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusGpsDestLatitude;
2402c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulGpsDestLatitude[6];
2403c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusGpsDestLongitudeRef;
2404c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8                  cGpsDestLongitudeRef[2];
2405c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusGpsDestLongitude;
2406c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulGpsDestLongitude[6];
2407c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusGpsDestBearingRef;
2408c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8                  cGpsDestBearingRef[2];
2409c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusGpsDestBearing;
2410c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulGpsDestBearing[2];
2411c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusGpsDestDistanceRef;
2412c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8                  cGpsDestDistanceRef[2];
2413c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusGpsDestDistance;
2414c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulGpsDestDistance[2];
2415c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusGpsProcessingMethod;
2416c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8*                 pGpsProcessingMethodBuff;
2417c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulGpsProcessingMethodBuffSizeBytes;
2418c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusGpsAreaInformation;
2419c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8*                 pGpsAreaInformationBuff;
2420c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32                 ulGpsAreaInformationBuffSizeBytes;
2421c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusGpsDateStamp;
2422c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_S8                  cGpsDateStamp[11];
2423c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_EXIFTAGSTATUS    eStatusGpsDifferential;
2424c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U16                 usGpsDifferential;
2425c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_CONFIG_EXIF_TAGS;
2426c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
2427c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
2428e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * The OMX_TI_SENFACING_TYPE enumeration is used to define the
2429e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * sensor facing.
2430e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
2431e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef enum OMX_TI_SENFACING_TYPE {
2432e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_SENFACING_FRONT,
2433e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_SENFACING_BACK,
2434e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_SENFACING_MAX = 0x7FFFFFFF
2435e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen}OMX_TI_SENFACING_TYPE;
2436e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2437e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
2438c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Structure used to configure current OMX_TI_SENMOUNT_TYPE
2439c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
2440c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @param nSenId
2441c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @param nRotation
2442e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param bMirror
2443e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param bFlip
2444e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param eFacing
2445c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
2446c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_SENMOUNT_TYPE {
2447c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32             nSenId;
2448c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32             nRotation;
2449e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BOOL                bMirror;
2450e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BOOL                bFlip;
2451e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_SENFACING_TYPE   eFacing;
2452c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_TI_SENMOUNT_TYPE;
2453c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
2454c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
2455c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Structure used to configure current OMX_TI_VARFPSTYPE
2456c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
2457c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @param nVarFPSMin    Number of the smallest FPS supported.
2458c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @param nVarFPSMax    Number of the biggest FPS supported.
2459c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
2460c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_VARFPSTYPE {
2461c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32                 nVarFPSMin;
2462c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32                 nVarFPSMax;
2463c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_VARFPSTYPE;
2464c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
2465c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
2466c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Structure used to configure current OMX_TI_CONFIG_SHAREDBUFFER
2467c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
2468c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
2469c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nSize            : Size of the structure in bytes
2470c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nVersion         : OMX specification version information
2471c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nPortIndex       : Port that this structure applies to
2472c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nSharedBuffSize  : Size of the pSharedBuff in bytes
2473c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * pSharedBuff      : Pointer to a buffer
2474c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
2475c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_CONFIG_SHAREDBUFFER {
2476c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nSize;
2477c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE nVersion;
2478c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nPortIndex;
2479c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nSharedBuffSize;
2480c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U8* pSharedBuff;
2481c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_CONFIG_SHAREDBUFFER;
2482c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
2483c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
2484c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Structure used to configure current OMX_TI_CAPRESTYPE
2485c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
2486c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
2487c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nSize            : Size of the structure in bytes
2488c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nVersion         : OMX specification version information
2489c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nPortIndex       : Port that this structure applies to
2490c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nWidthMin        : Number of the smallest width supported
2491c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nHeightMin       : Number of the smallest height supported
2492c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nWidthMax        : Number of the biggest width supported
2493c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nHeightMax       : Number of the biggest height supported
2494e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * nMaxResInPixels  : Max resolution in pixels. Used for description of 3d resolutions.
2495c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
2496c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_CAPRESTYPE {
2497e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nSize;          //- OMX struct header not required as this struct wont be queried on its own?
2498c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE nVersion;
2499c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32         nPortIndex;
2500c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32         nWidthMin;  // smallest width supported
2501c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32         nHeightMin; // smallest height supported
2502c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32         nWidthMax;  // biggest width supported
2503c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32         nHeightMax; // biggest height supported
2504e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U32         nMaxResInPixels;// max resolution in pixels
2505c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_CAPRESTYPE;
2506c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
2507c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
2508c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Structure used to configure current OMX_TI_CAPTYPE
2509c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
2510c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
2511c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nSize                                : Size of the structure in bytes
2512c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nVersion                             : OMX specification version information
2513c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nPortIndex                           : Port that this structure applies to
2514c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * ulPreviewFormatCount                 : Number of the supported preview pixelformat count
2515c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * ePreviewFormats                      : Array containing the supported preview pixelformat count
2516c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * ulImageFormatCount                   : Number of the supported image pixelformat count
2517c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * eImageFormats                        : Array containing the supported image pixelformat count
2518c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * tPreviewResRange                     : Supported preview resolution range
2519e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * tRotatedPreviewResRange              : Supported rotated preview resolution range
2520c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * tImageResRange                       : Supported image resolution range
2521c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * tThumbResRange                       : Supported thumbnail resolution range
2522c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * ulWhiteBalanceCount                  : Supported whitebalance mode count
2523c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * eWhiteBalanceModes                   : Array containing the whitebalance modes
2524c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * ulColorEffectCount                   : Supported effects count
2525c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * eColorEffects                        : Array containing the supported effects
2526c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * xMaxWidthZoom                        : Fixed point value stored as Q16 representing the maximum value for the Zoom allowed on Width
2527c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * xMaxHeightZoom                       : Fixed point value stored as Q16 representing the maximum value for the Zoom allowed on Height
2528c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * ulFlickerCount                       : Number of the supported anti-flicker modes
2529c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * eFlicker                             : Array containing the supported anti-flicker modes
2530c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * ulExposureModeCount                  : Number of the supported exposure modes
2531c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * eExposureModes                       : Array containing the supported exposure modes
2532c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * bLensDistortionCorrectionSupported   : Flag for Lens Distortion Correction Algorithm support
2533c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * bISONoiseFilterSupported             : Flag for Noise Filter Algorithm support
2534c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * xEVCompensationMin                   : Fixed point value stored as Q16 representing the EVCompensation minumum allowed value
2535c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * xEVCompensationMax                   : Fixed point value stored as Q16 representing the EVCompensation maximum allowed value
2536c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nSensitivityMax                      : nSensitivityMax = 100 implies maximum supported equal to "ISO 100"
2537c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * ulFocusModeCount                     : Number of the supported focus modes
2538c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * eFocusModes                          : Array containing the supported focus modes
2539c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * ulSceneCount                         : Number of the supported scenes
2540c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * eSceneModes                          : Array containing the supported scenes
2541c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * ulFlashCount                         : Number of the supported flash modes
2542c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * eFlashModes                          : Array containing the supported flash modes
2543c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * xFramerateMin                        : Fixed point value stored as Q16 representing the minimum framerate allowed
2544c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * xFramerateMax                        : Fixed point value stored as Q16 representing the maximum framerate allowed
2545c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * bContrastSupported                   : Flag showing if the contrast is supported
2546c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * bSaturationSupported                 : Flag showing if the saturation is supported
2547c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * bBrightnessSupported                 : Flag showing if the brightness is supported
2548c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * bProcessingLevelSupported            : Flag showing if the processing level is supported
2549c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * bQFactorSupported                    : Flag showing if the QFactor is supported
2550c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * ulPrvVarFPSModesCount                : Number of preview FPS modes
2551c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * tPrvVarFPSModes                      : Preview FPS modes
2552c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * ulCapVarFPSModesCount                : Number of capture FPS modes
2553c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * tCapVarFPSModes                      : Capture FPS modes
2554c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * tSenMounting                         : Sensor mount information
2555e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * ulAutoConvModesCount                 : Supported auto convergence modes count
2556e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * eAutoConvModes                       : Array containing the auto convergence modes
2557e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * ulBracketingModesCount               : Supported bracketing modes count
2558e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * eBracketingModes                     : Array containing the bracketing modes
2559e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * bGbceSupported                       : Flag showing if the Gbce is supported
2560e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * bRawJpegSupported                    : Flag showing if the Raw + Jpeg is supported
2561e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * ulImageCodingFormatCount             : Supported image coding formats count
2562e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * eImageCodingFormat                   : Array containing the image coding formats
2563e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * uSenNativeResWidth                   : Sensor native resolution width
2564e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * uSenNativeResHeight                  : Sensor native resolution height
2565e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * ulAlgoAreasFocusCount                : Supported number of AlgoAreas for focus areas
2566e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * ulAlgoAreasExposureCount             : Supported number of AlgoAreas for exposure areas
2567e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * bAELockSupported                     : Flag showing if the AE Lock is supported
2568e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * bAWBLockSupported                    : Flag showing if the AWB Lock is supported
2569e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * bAFLockSupported                     : Flag showing if the Af Lock is supported
2570e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * nFocalLength                         : Focal length defined in terms of 0.01mm
2571e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * ulPrvFrameLayoutCount                : supported frame layout count for preview
2572e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * ePrvFrameLayout                      : Array containing the frame layouts for preview
2573e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * ulCapFrameLayoutCount                : supported frame layout count for capture
2574e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * eCapFrameLayout                      : Array containing the frame layouts for capture
2575e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * bVideoNoiseFilterSupported           : Flag showing if the video noise filter is supported
2576e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * bVideoStabilizationSupported         : Flag showing if the video stabilization is supported
2577e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * bStillCapDuringVideoSupported        : Flag showing if the still capture is supported during video
2578e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * bMechanicalMisalignmentSupported     : Flag showing if the mechanical misalignment is supported
2579e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * bFacePrioritySupported               : Flag showing if the face priority is supported
2580e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * bRegionPrioritySupported             : Flag showing if the region priority is supported
2581e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * bGlbceSupported                      : Flag showing if the GLBCE is supported
2582e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * nManualConvMin                       : Manual convergence min value
2583e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * nManualConvMax                       : Manual convergence max value
2584e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * nManualExpMin                        : Manual exposure time min value
2585e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * nManualExpMax                        : Manual exposure time max value
2586e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * nBrightnessMin                       : Brightness min value
2587e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * nBrightnessMax                       : Brightness max value
2588e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * nContrastMin                         : Contrast min value
2589e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * nContrastMax                         : Contrast max value
2590e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * nSharpnessMin                        : Sharpness min value
2591e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * nSharpnessMax                        : Sharpness max value
2592e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * nSaturationMin                       : Saturation min value
2593e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * nSaturationMax                       : Saturation max value
2594c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
2595c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_CAPTYPE {
2596e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U32                         nSize;
2597e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_VERSIONTYPE                 nVersion;
2598e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U32                         nPortIndex;
2599e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U16                         ulPreviewFormatCount;   // supported preview pixelformat count
2600e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_COLOR_FORMATTYPE            ePreviewFormats[32];
2601e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U16                         ulImageFormatCount;     // supported image pixelformat count
2602e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_COLOR_FORMATTYPE            eImageFormats[32];
2603e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_TI_CAPRESTYPE               tPreviewResRange;       // supported preview resolution range
2604e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_TI_CAPRESTYPE               tRotatedPreviewResRange;     // supported rotated preview resolution range
2605e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_TI_CAPRESTYPE               tImageResRange;         // supported image resolution range
2606e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_TI_CAPRESTYPE               tThumbResRange;         // supported thumbnail resolution range
2607e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U16                         ulWhiteBalanceCount;    // supported whitebalance mode count
2608e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_WHITEBALCONTROLTYPE         eWhiteBalanceModes[32];
2609e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U16                         ulColorEffectCount;     // supported effects count
2610e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_IMAGEFILTERTYPE             eColorEffects[32];
2611e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_S32                         xMaxWidthZoom;          // Fixed point value stored as Q16
2612e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_S32                         xMaxHeightZoom;         // Fixed point value stored as Q16
2613e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U16                         ulFlickerCount;         // supported anti-flicker mode count
2614e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_COMMONFLICKERCANCELTYPE     eFlicker[32];
2615e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U16                         ulExposureModeCount;    // supported exposure mode count
2616e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_EXPOSURECONTROLTYPE         eExposureModes[32];
2617e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_BOOL                        bLensDistortionCorrectionSupported;
2618e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_BOOL                        bISONoiseFilterSupported;
2619e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_S32                         xEVCompensationMin;     // Fixed point value stored as Q16
2620e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_S32                         xEVCompensationMax;     // Fixed point value stored as Q16
2621e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U32                         nSensitivityMax;        // nSensitivityMax = 100 implies maximum supported equal to "ISO 100"
2622e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U16                         ulFocusModeCount;       // supported focus mode count
2623e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_IMAGE_FOCUSCONTROLTYPE      eFocusModes[32];
2624e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U16                         ulSceneCount;           // supported scene count
2625e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_SCENEMODETYPE               eSceneModes[64];
2626e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U16                         ulFlashCount;           // supported flash modes count
2627e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_IMAGE_FLASHCONTROLTYPE      eFlashModes[32];
2628e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U32                         xFramerateMin;          // Fixed point value stored as Q16
2629e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U32                         xFramerateMax;          // Fixed point value stored as Q16
2630e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_BOOL                        bContrastSupported;
2631e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_BOOL                        bSaturationSupported;
2632e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_BOOL                        bBrightnessSupported;
2633e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_BOOL                        bProcessingLevelSupported;
2634e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_BOOL                        bQFactorSupported;
2635e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U16                         ulPrvVarFPSModesCount;  // supported variable FPS preview modes count
2636e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_TI_VARFPSTYPE               tPrvVarFPSModes[10];
2637e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U16                         ulCapVarFPSModesCount;  // supported variable FPS capture modes count
2638e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_TI_VARFPSTYPE               tCapVarFPSModes[10];
2639e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_TI_SENMOUNT_TYPE            tSenMounting;
2640e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U16                         ulAutoConvModesCount;   // supported auto convergence modes count
2641e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_TI_AUTOCONVERGENCEMODETYPE  eAutoConvModes[32];
2642e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U16                         ulBracketingModesCount; // supported bracketing modes count
2643e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_BRACKETMODETYPE             eBracketingModes[32];
2644e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_BOOL                        bGbceSupported;         // Flag showing if the Gbce is supported
2645e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_BOOL                        bRawJpegSupported;      // Flag showing if the Raw + Jpeg issupported
2646e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U16                         ulImageCodingFormatCount;
2647e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_IMAGE_CODINGTYPE            eImageCodingFormat[32];
2648e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U16                         uSenNativeResWidth;
2649e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U16                         uSenNativeResHeight;
2650e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U16                        ulAlgoAreasFocusCount;
2651e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U16                        ulAlgoAreasExposureCount;
2652e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BOOL                       bAELockSupported;
2653e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BOOL                       bAWBLockSupported;
2654e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BOOL                       bAFLockSupported;
2655e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16                        nFocalLength;
2656e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16                        ulPrvFrameLayoutCount;       // supported frame layout count
2657e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_STEREOFRAMELAYOUTTYPE   ePrvFrameLayout[16];
2658e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16                        ulCapFrameLayoutCount;       // supported frame layout count
2659e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_STEREOFRAMELAYOUTTYPE   eCapFrameLayout[16];
2660e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BOOL                       bVideoNoiseFilterSupported;
2661e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BOOL                       bVideoStabilizationSupported;
2662e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BOOL                       bStillCapDuringVideoSupported;
2663e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BOOL                       bMechanicalMisalignmentSupported;
2664e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BOOL                       bFacePrioritySupported;
2665e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BOOL                       bRegionPrioritySupported;
2666e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BOOL                       bGlbceSupported;
2667e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S16                        nManualConvMin;
2668e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S16                        nManualConvMax;
2669e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16                        nManualExpMin;
2670e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16                        nManualExpMax;
2671e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S16                        nBrightnessMin;
2672e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S16                        nBrightnessMax;
2673e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S16                        nContrastMin;
2674e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S16                        nContrastMax;
2675e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S16                        nSharpnessMin;
2676e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S16                        nSharpnessMax;
2677e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S16                        nSaturationMin;
2678e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S16                        nSaturationMax;
2679c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_CAPTYPE;
2680c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
2681bc0e345c35480fb8036a766f47a7ed65e98947c5Milen Mitkov
2682bc0e345c35480fb8036a766f47a7ed65e98947c5Milen Mitkov
2683c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
2684c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Defines 3A Face priority mode.
2685c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
2686c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
2687c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize               : Size of the structure in bytes
2688c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion            : OMX specification version information
2689c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex          : Port that this structure applies to
2690c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  bAwbFaceEnable      : Enable Face priority for Auto White Balance
2691c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  bAeFaceEnable       : Enable Face priority for Auto Exposure
2692c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  bAfFaceEnable       : Enable Face priority for Auto Focus
2693c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
2694c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_CONFIG_3A_FACE_PRIORITY {
2695c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nSize;
2696c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE nVersion;
2697c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nPortIndex;
2698c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_BOOL bAwbFaceEnable;
2699c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_BOOL bAeFaceEnable;
2700c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_BOOL bAfFaceEnable;
2701c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_CONFIG_3A_FACE_PRIORITY;
2702c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
2703c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
2704c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Defines 3A Region priority mode.
2705c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
2706c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
2707c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize               : Size of the structure in bytes
2708c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion            : OMX specification version information
2709c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex          : Port that this structure applies to
2710c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  bAwbFaceEnable      : Enable Region priority for Auto White Balance
2711c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  bAeFaceEnable       : Enable Region priority for Auto Exposure
2712c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  bAfFaceEnable       : Enable Region priority for Auto Focus
2713c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
2714c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_CONFIG_3A_REGION_PRIORITY {
2715c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nSize;
2716c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE nVersion;
2717c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nPortIndex;
2718c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_BOOL bAwbRegionEnable;
2719c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_BOOL bAeRegionEnable;
2720c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_BOOL bAfRegionEnable;
2721c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_CONFIG_3A_REGION_PRIORITY;
2722c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
2723c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*
2724c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev* STRUCT MEMBERS:
2725c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev* nSize         : Size of the structure in bytes
2726c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev* nVersion      : OMX specification version information
2727c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev* nPortIndex    : Port that this structure applies to
2728c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev* bAutoConvergence : Enable/Disable Auto Convergence
2729c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
2730c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_PARAM_AUTOCONVERGENCETYPE {
2731c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nSize;
2732c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE nVersion;
2733c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nPortIndex;
2734c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_BOOL bAutoConvergence;
2735c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_PARAM_AUTOCONVERGENCETYPE;
2736c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
2737c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
2738c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Focus distance configuration
2739c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
2740c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  STRUCT MEMBERS:
2741c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize: Size of the structure in bytes
2742c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion: OMX specification version information
2743c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex: Port that this structure applies to
2744c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nFocusDistanceNear : Specifies the near focus distance in mm ( 0 equals infinity )
2745c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nFocusDistanceOptimal : Specifies the optimal focus distance in mm ( 0 equals infinity )
2746c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nFocusDistanceFar : Specifies the far focus distance in mm ( 0 equals infinity )
2747c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nLensPosition : Specifies the current lens position in driver units
2748c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
2749c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_CONFIG_FOCUSDISTANCETYPE {
2750c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
2751c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
2752c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
2753c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nFocusDistanceNear;
2754c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nFocusDistanceOptimal;
2755c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nFocusDistanceFar;
2756c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_S32 nLensPosition;
2757c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_CONFIG_FOCUSDISTANCETYPE;
2758c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
2759c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
2760c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * The OMX_TI_BRIGHTNESSCONTRASTCRTLTYPE enumeration is used to define the
2761c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * brightness and contrast mode types.
2762c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
2763c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_TI_BRIGHTNESSCONTRASTCRTLTYPE {
2764c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_BceModeOff = 0,
2765c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_BceModeOn,
2766c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_BceModeAuto,
2767c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_BceModeMax = 0x7FFFFFFF
2768c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_BRIGHTNESSCONTRASTCRTLTYPE;
2769c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
2770c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
2771c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Local and global brightness contrast type.
2772c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
2773c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * STRUCT MEMBERS:
2774c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nSize             : Size of the structure in bytes
2775c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nVersion          : OMX specification version information
2776c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  nPortIndex        : Port that this structure applies to
2777c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *  eControl          : Control field for GLBCE
2778c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
2779c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_CONFIG_LOCAL_AND_GLOBAL_BRIGHTNESSCONTRASTTYPE {
2780c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nSize;
2781c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE nVersion;
2782c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nPortIndex;
2783c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_BRIGHTNESSCONTRASTCRTLTYPE eControl;
2784c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_CONFIG_LOCAL_AND_GLOBAL_BRIGHTNESSCONTRASTTYPE;
2785c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
2786c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
2787c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Uncompressed image operating mode configuration structure.
2788c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
2789c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @param nSize         Size of the structure in bytes.
2790c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @param nVersion      OMX specification version information.
2791c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @param xMin          The minimum frame rate allowed.
2792c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *                      Units are Q16 frames per second.
2793c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @param xMax          The maximum frame rate allowed.
2794c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *                      Units are Q16 frames per second.
2795c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
2796c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
2797c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_CONFIG_VARFRMRANGETYPE {
2798c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
2799c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
2800c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 xMin;
2801c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 xMax;
2802c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_CONFIG_VARFRMRANGETYPE;
2803c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
2804c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
2805e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * Single preview capture modes
2806e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
2807e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef enum OMX_TI_SINGLEPREVIEWMODETYPE {
2808e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TI_SinglePreviewMode_PreviewOnly,
2809e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TI_SinglePreviewMode_Video,
2810e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TI_SinglePreviewMode_ImageCapture,
2811e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TI_SinglePreviewMode_ImageCaptureHighSpeed,
2812e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TI_SinglePreviewMode_Reprocess,
2813e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TI_SinglePreviewMode = 0x7FFFFFFF
2814e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    } OMX_TI_SINGLEPREVIEWMODETYPE;
2815e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2816e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
2817e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * Define configuration structure for
2818e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * single preview capture mode
2819e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2820e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * STRUCT MEMBERS:
2821e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nSize               : Size of the structure in bytes
2822e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nVersion            : OMX specification version information
2823e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  eMode               : Select the subusecase mode (Video/HQ/HS)
2824e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
2825e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef struct OMX_TI_CONFIG_SINGLEPREVIEWMODETYPE {
2826e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32                      nSize;
2827e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VERSIONTYPE              nVersion;
2828e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TI_SINGLEPREVIEWMODETYPE eMode;
2829e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    } OMX_TI_CONFIG_SINGLEPREVIEWMODETYPE;
2830e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2831e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2832e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
2833e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * Configuratin structure for freeze AWB parameter modifications.
2834e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2835e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param nSize         Size of the structure in bytes.
2836e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param nVersion      OMX specification version information.
2837e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param nPortIndex    Port index to which to apply.
2838e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param nTimeDelay    Time for which the AWB parameters to be frozen.
2839e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                             measured in milliseconds
2840e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
2841e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef struct OMX_TI_CONFIG_FREEZE_AWB {
2842e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32         nSize;
2843e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VERSIONTYPE nVersion;
2844e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32         nPortIndex;
2845e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32         nTimeDelay;
2846e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    } OMX_TI_CONFIG_FREEZE_AWB;
2847e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2848e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
2849e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * Configuration structure used to set
2850e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * minimum time between two sequential WB coefficients modifications.
2851e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2852e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param nSize         Size of the structure in bytes.
2853e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param nVersion      OMX specification version information.
2854e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param nPortIndex    Port index to which to apply.
2855e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param nDelayTime    The time in milliseconds.
2856e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
2857e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef struct OMX_TI_CONFIG_AWB_DELAY {
2858e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32         nSize;
2859e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VERSIONTYPE nVersion;
2860e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32         nPortIndex;
2861e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32         nDelayTime;
2862e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    } OMX_TI_CONFIG_AWB_DELAY;
2863e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2864e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
2865e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * Configuration structure used to set
2866e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * minimum time delay between
2867e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * two sequential AE parameters modifications
2868e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2869e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param nSize         Size of the structure in bytes.
2870e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param nVersion      OMX specification version information.
2871e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param nPortIndex    Port index to which to apply.
2872e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param nDelayTime    The time in milliseconds.
2873e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
2874e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef struct OMX_TI_CONFIG_AE_DELAY {
2875e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32         nSize;
2876e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VERSIONTYPE nVersion;
2877e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32         nPortIndex;
2878e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32         nDelayTime;
2879e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    } OMX_TI_CONFIG_AE_DELAY;
2880e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2881e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2882e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
2883e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * Configuration structure used to freeze AE modifications
2884e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * for a nTimeDelay milliseconds
2885e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2886e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param nSize         Size of the structure in bytes.
2887e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param nVersion      OMX specification version information.
2888e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param nPortIndex    Port index to which to apply.
2889e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param nTimeDelay    The time in milliseconds.
2890e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
2891e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef struct OMX_TI_CONFIG_FREEZE_AE {
2892e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32         nSize;
2893e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VERSIONTYPE nVersion;
2894e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32         nPortIndex;
2895e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32         nTimeDelay;
2896e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    } OMX_TI_CONFIG_FREEZE_AE;
2897e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2898e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
2899e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * Configuration structure used to set
2900e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * the AE gain threshold
2901e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2902e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param nSize         Size of the structure in bytes.
2903e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param nVersion      OMX specification version information.
2904e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param uMinTH        Minimum value for AE gain.
2905e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param uMaxTH        Maximum value for AE gain.
2906e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
2907e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef struct OMX_TI_CONFIG_AE_THRESHOLD {
2908e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32         nSize;
2909e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VERSIONTYPE nVersion;
2910e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32         nPortIndex;
2911e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32         uMinTH;
2912e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32         uMaxTH;
2913e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    } OMX_TI_CONFIG_AE_THRESHOLD;
2914e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2915e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
2916e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * Enumeration describing the main gestures
2917e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
2918e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef enum OMX_TI_GESTURES_TYPE {
2919e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TI_GESTURE_NO_GESTURE = 0x70000001,
2920e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TI_GESTURE_SWIPE_RIGHT,
2921e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TI_GESTURE_SWIPE_LEFT,
2922e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TI_GESTURE_FIST_RIGHT,
2923e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TI_GESTURE_FIST_LEFT,
2924e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2925e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TI_GESTURE_COUNT,
2926e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TI_GESTURE_MAX = 0x7FFFFFFF
2927e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    } OMX_TI_GESTURES_TYPE;
2928e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2929e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
2930e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * Enumeration describing the main gesture objects
2931e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
2932e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef enum OMX_TI_OBJECT_TYPE {
2933e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TI_OBJECT_PALM,
2934e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TI_OBJECT_FIST,
2935e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TI_OBJECT_FACE,
2936e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2937e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TI_OBJECT_MAX = 0x7FFFFFFF
2938e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    } OMX_TI_OBJECT_TYPE;
2939e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2940e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
2941e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * Data structure carrying information about
2942e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * objects located at a certain area of frame buffer.
2943e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2944e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param nSize         Size of the structure in bytes.
2945e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param nVersion      OMX specification version information.
2946e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param nPortIndex    Port index to which to apply.
2947e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param eType         The object type.
2948e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param nTop          The top coordinate.
2949e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param nLeft         The left coordinate.
2950e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param nWidth        The width of the object.
2951e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param nHeight       The height of the object.
2952e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
2953e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef struct OMX_CONFIG_OBJECT_RECT_TYPE {
2954e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32            nSize;
2955e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VERSIONTYPE    nVersion;
2956e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32            nPortIndex;
2957e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TI_OBJECT_TYPE eType;
2958e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_S32            nTop;
2959e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_S32            nLeft;
2960e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32            nWidth;
2961e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32            nHeight;
2962e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    } OMX_CONFIG_OBJECT_RECT_TYPE;
2963e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2964e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
2965e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * Data structure carrying information about
2966e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * gestures detected at a certain frame.
2967e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2968e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param nSize                 Size of the structure in bytes.
2969e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param nVersion              OMX specification version information.
2970e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param nPortIndex            Port index to which to apply.
2971e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param nTimeStamp            Frame id.
2972e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param eType                 Type of the gesture detected at that frame.
2973e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param nNumDetectedGestures  Number ot the areas of the frame in which this gesture is detected.
2974e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * @param nGestureAreas         The areas where this gesture is detected.
2975e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
2976e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef struct OMX_TI_CONFIG_GESTURES_INFO {
2977e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32                     nSize;
2978e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VERSIONTYPE             nVersion;
2979e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32                     nPortIndex;
2980e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TICKS                   nTimeStamp;
2981e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TI_GESTURES_TYPE        eType;
2982e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32                     nNumDetectedGestures;
2983e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_CONFIG_OBJECT_RECT_TYPE nGestureAreas[35];
2984e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    } OMX_TI_CONFIG_GESTURES_INFO;
2985e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2986e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
2987e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* Define the frames queue len for ZSL
2988e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*
2989e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* STRUCT MEMBERS:
2990e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* nSize: Size of the structure in bytes
2991e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* nVersion: OMX specification version information
2992e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* nHistoryLen: History len in number of frames
2993e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
2994e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef struct OMX_TI_PARAM_ZSLHISTORYLENTYPE {
2995e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32         nSize;
2996e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VERSIONTYPE nVersion;
2997e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32         nHistoryLen;
2998e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    } OMX_TI_PARAM_ZSLHISTORYLENTYPE;
2999e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3000e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
3001e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* Define the frame delay in ms for ZSL
3002e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*
3003e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* STRUCT MEMBERS:
3004e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* nSize: Size of the structure in bytes
3005e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* nVersion: OMX specification version information
3006e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* nDelay: Capture frame delay in ms
3007e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
3008e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef struct OMX_TI_CONFIG_ZSLDELAYTYPE {
3009e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32         nSize;
3010e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VERSIONTYPE nVersion;
3011e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_S32         nDelay;
3012e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    } OMX_TI_CONFIG_ZSLDELAYTYPE;
3013e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3014e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
3015e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* AlogAreas purpose
3016e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* This type specifies the purpose of areas specified in OMX_ALGOAREASTYPE.
3017e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* */
3018e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef enum OMX_ALGOAREAPURPOSE{
3019e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_AlgoAreaFocus = 0, // Multi region focus
3020e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_AlgoAreaExposure,
3021e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    }OMX_ALGOAREAPURPOSE;
3022e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3023e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef  struct OMX_ALGOAREA {
3024e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_S32 nLeft;                      /**< The leftmost coordinate of the area rectangle */
3025e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_S32 nTop;                       /**< The topmost coordinate of the area rectangle */
3026e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nWidth;                     /**< The width of the area rectangle in pixels */
3027e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nHeight;                    /**< The height of the area rectangle in pixels */
3028e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nPriority;                  /**< Priority - ranges from 1 to 1000 */
3029e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    }OMX_ALGOAREA;
3030e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3031e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
3032e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* Algorythm areas type
3033e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* This type defines areas for Multi Region Focus,
3034e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* or another algorithm region parameters,
3035e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* such as Multi Region Auto Exposure.
3036e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*
3037e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* STRUCT MEMBERS:
3038e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nSize            : Size of the structure in bytes
3039e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nVersion         : OMX specification version information
3040e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nPortIndex       : Port index
3041e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  tAreaPosition    : Area definition - coordinates and purpose - Multi Region Focus, Auto Exposure, etc.
3042e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nNumAreas        : Number of areas defined in the array
3043e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nAlgoAreaPurpose : Algo area purpose - eg. Multi Region Focus is OMX_AlgoAreaFocus
3044e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
3045e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef  struct OMX_ALGOAREASTYPE {
3046e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nSize;
3047e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VERSIONTYPE nVersion;
3048e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nPortIndex;
3049e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3050e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nNumAreas;
3051e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_ALGOAREA tAlgoAreas[MAX_ALGOAREAS];
3052e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_ALGOAREAPURPOSE nAlgoAreaPurpose;
3053e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    } OMX_ALGOAREASTYPE;
3054e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3055e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/*==========================================================================*/
3056e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/*!
3057e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen@brief OMX_TI_PARAM_ENHANCEDPORTRECONFIG : Suport added to new port reconfig usage
3058e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen@param bUsePortReconfigForCrop       Enables port reconfig for crop.
3059e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen@param bUsePortReconfigForPadding    Enables port reconfig for padding
3060e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
3061e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/*==========================================================================*/
3062e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3063e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_PARAM_ENHANCEDPORTRECONFIG {
3064e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nSize;
3065e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_VERSIONTYPE nVersion;
3066e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nPortIndex;
3067e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BOOL bUsePortReconfigForCrop;
3068e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BOOL bUsePortReconfigForPadding;
3069e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_PARAM_ENHANCEDPORTRECONFIG;
3070e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3071e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3072e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct {
3073e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 nVPos; //!< AEWINSTART WINSV  //AFPAXSTART PAXSV
3074e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  nVSize; //!< AEWWIN1 WINW      //AFPAX1 PAXH
3075e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 nHPos; //!< AEWINSTART WINSH  //AFPAXSTART PAXSH
3076e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  nHSize; //!< AEWWIN1 WINH      //AFPAX1 PAXW
3077e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  nVCount; //!< AEWWIN1 WINVC     //AFPAX2 PAXVC
3078e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  nVIncr; //!< AEWSUBWIN AEWINCV //AFPAX2 AFINCV
3079e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  nHCount; //!< AEWWIN1 WINHC     //AFPAX2 PAXHC
3080e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  nHIncr; //!< AEWSUBWIN AEWINCH //AFPAX2 AFINCH
3081e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen}OMX_TI_H3aPAXELCFG;
3082e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3083e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct {
3084e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /** Average value for red pixels in current paxel */
3085e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 red;
3086e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /** Average value for green pixels in current paxel */
3087e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 green;
3088e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /** Average value for blue pixels in current paxel */
3089e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 blue;
3090e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /** Flag indicating whether current paxel is valid 0:invalid, !0:valid */
3091e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 valid;
3092e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_H3AAEWBPAXELDATA;
3093e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3094e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_H3AAFDATA {
3095e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nSize;                                          /**< The size of the structure
3096e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen                                                                                               including the length of data field containing the histogram data */
3097e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_VERSIONTYPE       nVersion;
3098e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32               nPortIndex;
3099e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_CAMERAVIEWTYPE eCameraView;
3100e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8               *data;
3101e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_H3AAFDATA;
3102e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3103e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
3104e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* Data structure carrying information about
3105e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* VTC slice height.
3106e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*
3107e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* @param nSize Size of the structure in bytes.
3108e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* @param nVersion OMX specification version information.
3109e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* @param nSliceHeight Definition of slice height.
3110e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*
3111e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*
3112e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*
3113e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*
3114e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
3115e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_PARAM_VTCSLICE {
3116e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nSize;
3117e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_VERSIONTYPE nVersion;
3118e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nSliceHeight;
3119e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nInternalBuffers;
3120e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_PTR         IonBufhdl[2];
3121e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_PARAM_VTCSLICE;
3122e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3123e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3124e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
3125e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nSize is the size of the structure including the length of data field containing
3126e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  the histogram data.
3127e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nBins is the number of bins in the histogram.
3128e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  eComponentType specifies the type of the histogram bins according to enum.
3129e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  It can be selected to generate multiple component types, then the extradata struct
3130e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  is repeated for each component type.
3131e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
3132e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_HISTOGRAMTYPE {
3133e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nSize;                      /**< The size of the structure
3134e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen                                             including the length of data field containing the histogram data */
3135e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_VERSIONTYPE       nVersion;
3136e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32               nPortIndex;
3137e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_CAMERAVIEWTYPE eCameraView;
3138e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32               nBins;        /**< The number of bins in the histogram */
3139e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_HISTCOMPONENTTYPE eComponentType; /**< Specifies the type of the histogram bins according to enum.
3140e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen                                             It can be selected to generate multiple component types,
3141e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen                                             then the extradata struct is repeated for each component type */
3142e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 *data;
3143e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_HISTOGRAMTYPE;
3144e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3145e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3146e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3147e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_CPCAMDATA {
3148e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32               nSize;
3149e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_VERSIONTYPE       nVersion;
3150e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32               nPortIndex;
3151e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_CAMERAVIEWTYPE eCameraView;
3152e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3153e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Face Detect */
3154e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16           ulFaceCount;     // faces detected
3155e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_FACERESULT tFacePosition[35];     // 35 is max faces supported by FDIF
3156e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3157e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3158e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /**** Ancillary Data ******/
3159e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nFrameNumber;
3160e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 nInputImageHeight;
3161e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 nInputImageWidth;
3162e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 nOutputImageHeight;
3163e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 nOutputImageWidth;
3164e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 nDigitalZoomFactor;
3165e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S16 nCropCenterColumn;
3166e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S16 nCropCenterRow;
3167e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 nOpticalZoomValue;
3168e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  nAFStatus;
3169e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  nAWBStatus;
3170e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  nAEStatus;
3171e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nExposureTime;
3172e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 nEVCompensation;
3173e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  nDigitalGainValue;
3174e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  nAnalogGainValue;
3175e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 nCurrentISO;
3176e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 nReferenceISO;
3177e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  nApertureValue;
3178e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  nPixelRange;
3179e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  nCameraShake;
3180e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  nNumFacesDetected;
3181e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3182e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Not Yet Supported */
3183e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 nFocalDistance;
3184e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 nShotNumber;
3185e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  nFlashStatus;
3186e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3187e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3188e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /***  White Balance gains ****/
3189e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /**< White Balance Color Temperature in Kelvins */
3190e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 nColorTemperature;
3191e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3192e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /**< Bayer applied R color channel gain in (U13Q9) */
3193e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 nGainR;
3194e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3195e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /**< Bayer applied Gr color channel gain in (U13Q9) */
3196e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 nGainGR;
3197e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3198e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /**< Bayer applied Gb color channel gain in (U13Q9) */
3199e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 nGainGB;
3200e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3201e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /**< Bayer applied B color channel gain in (U13Q9) */
3202e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 nGainB;
3203e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3204e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* BELOW  ARE NOT   SUPPORTED , Default set to 0 */
3205e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S16 nOffsetR;              /**< Bayer applied R color channel offset */
3206e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S16 nOffsetGR;             /**< Bayer applied Gr color channel offset */
3207e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S16 nOffsetGB;             /**< Bayer applied Gb color channel offset */
3208e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S16 nOffsetB;              /**< Bayer applied B color channel offset */
3209e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3210e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3211e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* AEWB,AF,HIST data size */
3212e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nAewbDataSize;
3213e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nAfDataSize;
3214e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nHistSize;
3215e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3216e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3217e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3218e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /*** H3A AF-AEW DATA ***/
3219e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_H3aPAXELCFG       tAfPaxelWin;
3220e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_H3aPAXELCFG       tAewbPaxelWin;
3221e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_H3AAEWBPAXELDATA *tpPaxel;
3222e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_H3AAFDATA         tH3A_Af;
3223e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Histogram */
3224e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_HISTOGRAMTYPE Histogram;
3225e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3226e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3227e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_CPCAMDATA;
3228e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3229e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
3230e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* Start/Stop mechanical misalignment
3231e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*
3232e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* STRUCT MEMBERS:
3233e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* nSize: Size of the structure in bytes
3234e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* nVersion: OMX specification version information
3235e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* nDelay: Capture frame delay in ms
3236e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
3237e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef struct OMX_TI_CONFIG_MM {
3238e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32         nSize;
3239e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VERSIONTYPE nVersion;
3240e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen       OMX_BOOL        bMM;
3241e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    } OMX_TI_CONFIG_MM;
3242e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3243e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
3244e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* Start/Stop Affine transformation for Mm/Ac
3245e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*
3246e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* STRUCT MEMBERS:
3247e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* nSize: Size of the structure in bytes
3248e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* nVersion: OMX specification version information
3249e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* bAffine: Enable / Disable
3250e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
3251e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef struct OMX_TI_PARAM_AFFINE {
3252e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32         nSize;
3253e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VERSIONTYPE nVersion;
3254e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_BOOL        bAffine;
3255e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        } OMX_TI_PARAM_AFFINE;
3256e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3257e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
3258c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev* A pointer to this struct is passed to the OMX_SetParameter when the extension
3259c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev* index for the 'OMX.google.android.index.enableAndroidNativeBuffers' extension
3260c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev* is given.
3261c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev* The corresponding extension Index is OMX_TI_IndexUseNativeBuffers.
3262c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev* This will be used to inform OMX about the presence of gralloc pointers instead
3263c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev* of virtual pointers
3264c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
3265c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_PARAMUSENATIVEBUFFER {
3266c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
3267c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
3268c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
3269c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BOOL bEnable;
3270c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_PARAMUSENATIVEBUFFER;
3271c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
32729e964f98a366c756b96a97809b31579fdcc43e97Lakshman Gowda/**
32739e964f98a366c756b96a97809b31579fdcc43e97Lakshman Gowda* A pointer to this struct is passed to OMX_GetParameter when the extension
32749e964f98a366c756b96a97809b31579fdcc43e97Lakshman Gowda* index for the 'OMX.google.android.index.getAndroidNativeBufferUsage'
32759e964f98a366c756b96a97809b31579fdcc43e97Lakshman Gowda* extension is given.
32769e964f98a366c756b96a97809b31579fdcc43e97Lakshman Gowda* The corresponding extension Index is OMX_TI_IndexAndroidNativeBufferUsage.
32779e964f98a366c756b96a97809b31579fdcc43e97Lakshman Gowda* The usage bits returned from this query will be used to allocate the Gralloc
32789e964f98a366c756b96a97809b31579fdcc43e97Lakshman Gowda* buffers that get passed to the useAndroidNativeBuffer command.
32799e964f98a366c756b96a97809b31579fdcc43e97Lakshman Gowda*/
32809e964f98a366c756b96a97809b31579fdcc43e97Lakshman Gowdatypedef struct OMX_TI_PARAMNATIVEBUFFERUSAGE {
32819e964f98a366c756b96a97809b31579fdcc43e97Lakshman Gowda    OMX_U32 nSize;
32829e964f98a366c756b96a97809b31579fdcc43e97Lakshman Gowda    OMX_VERSIONTYPE nVersion;
32839e964f98a366c756b96a97809b31579fdcc43e97Lakshman Gowda    OMX_U32 nPortIndex;
32849e964f98a366c756b96a97809b31579fdcc43e97Lakshman Gowda    OMX_U32 nUsage;
32859e964f98a366c756b96a97809b31579fdcc43e97Lakshman Gowda} OMX_TI_PARAMNATIVEBUFFERUSAGE;
32869e964f98a366c756b96a97809b31579fdcc43e97Lakshman Gowda
3287e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
3288e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * OMX_TI_ZSL_PRIORITY_TYPE Enumerated Value
3289e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
3290e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef enum OMX_TI_ZSL_PRIORITY_TYPE {
3291e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_ZSL_PRIORITY_TIME,
3292e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_ZSL_PRIORITY_FOCUS,
3293e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_ZSL_PRIORITY = 0x7FFFFFFF
3294e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_ZSL_PRIORITY_TYPE;
3295c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
3296c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
3297e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* Define the priority tha twill be used to select ZSL frame
3298c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*
3299c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev* STRUCT MEMBERS:
3300c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev* nSize: Size of the structure in bytes
3301c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev* nVersion: OMX specification version information
3302e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* ePriority: Priority
3303c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
3304e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_CONFIG_ZSLFRAMESELECTPRIOTYPE {
3305e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32                  nSize;
3306e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_VERSIONTYPE          nVersion;
3307e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_ZSL_PRIORITY_TYPE ePriority;
3308e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_CONFIG_ZSLFRAMESELECTPRIOTYPE;
3309e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3310e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
3311e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* MIPI, ECC, and CRC counters
3312e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* Mipi counter counts the frames from the MIPI receiver (CSI_RX).
3313e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* TCMD application will use this test
3314e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* to validate the MIPI channel integrity (TX to RX).
3315e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*
3316e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* STRUCT MEMBERS:
3317e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nSize              : Size of the structure in bytes
3318e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nVersion           : OMX specification version information
3319e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nPortIndex         : Port that this structure applies to
3320e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  bResetMIPICounter  : if OMX_SetConfig() is called with value True
3321e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*                       for this parameter, the MIPICounter shall be reset to 0, by ducati.
3322e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nMIPICounter       : MIPI frame counter
3323e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nECCCounter        : ECC counter
3324e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nCRCCounter        : CRC counter
3325e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
3326e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_CONFIG_MIPICOUNTERS {
3327e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nSize;
3328e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_VERSIONTYPE nVersion;
3329e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nPortIndex;
3330e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BOOL        bResetMIPICounter;
3331e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nMIPICounter;
3332e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nECCCounter;
3333e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nCRCCounter;
3334e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nFifoOvfCounter;
3335e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nOCPCounter;
3336e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nEccCorrCounter;
3337e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         SoTErrCnt;
3338e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         SoTSyncErrCnt;
3339e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         ULPMCnt;
3340e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         ULPMExitCnt;
3341e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         ULPMEnterCnt;
3342e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         ControlErrCnt;
3343e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         ErrEscapeCnt;
3344e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         CSIRxTimeoutCnt;
3345e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         bStopStartCntrs;
3346e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_CONFIG_MIPICOUNTERS;
3347e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3348e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
3349e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* CSI Timing Register
3350e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*
3351e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* STRUCT MEMBERS:
3352e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nSize              : Size of the structure in bytes
3353e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nVersion           : OMX specification version information
3354e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nPortIndex         : Port that this structure applies to
3355e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nReadWrite         : if OMX_SetConfig() is called with value True
3356e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*                       for this parameter, the ISS_CAMERARX_CORE1_REG0 register will be
3357e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*                       written with the supplied values below.
3358e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nThsSettle         :
3359e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nThsTerm           :
3360e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nHsClkCfg          :
3361e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
3362e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_CONFIG_CSITIMINGRW {
3363e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nSize;
3364c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
3365e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nPortIndex;
3366e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8          nReadWrite;
3367e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8          nThsSettle;
3368e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8          nThsTerm;
3369e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8          nHsClkCfg;
3370e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_CONFIG_CSITIMINGRW;
3371c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
3372c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
3373e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* CSI Complex IO Data
3374c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*
3375c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev* STRUCT MEMBERS:
3376e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nSize              : Size of the structure in bytes
3377e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nVersion           : OMX specification version information
3378e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nPortIndex         : Port that this structure applies to
3379e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nFrameCount        : Recieved Frames on the CSI2Rx
3380e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nLaneCount         : Number of active lanes
3381e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nCSISpeed          : CSI2Rx speed
3382c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
3383e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_CONFIG_CSICMPXIO {
3384e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nSize;
3385c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
3386e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nPortIndex;
3387e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nFrameCount;
3388e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nLaneCount;
3389e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nCSISpeed;
3390e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_CONFIG_CSICMPXIO;
3391c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
3392bc0e345c35480fb8036a766f47a7ed65e98947c5Milen Mitkov/**
3393e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * Auto Focus Score
3394e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
3395e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  STRUCT MEMBERS:
3396e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nSize              : Size of the structure in bytes
3397e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nVersion           : OMX specification version information
3398e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nPortIndex         : Port that this structure applies to
3399e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nAutoFocusScore    : Auto Focus Score
3400e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
3401e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_CONFIG_AUTOFOCUSSCORE {
3402e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nSize;
3403e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_VERSIONTYPE nVersion;
3404e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nPortIndex;
3405e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nAutoFocusScore;
3406e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_CONFIG_AUTOFOCUSSCORE;
3407e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3408e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
3409e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * Color Bar test pattern
3410e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
3411e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  STRUCT MEMBERS:
3412e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nSize              : Size of the structure in bytes
3413e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nVersion           : OMX specification version information
3414e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nPortIndex         : Port that this structure applies to
3415e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  bEnableColorBars   : Enable Color Bars test pattern
3416e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
3417e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_CONFIG_COLORBARS {
3418e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nSize;
3419e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_VERSIONTYPE nVersion;
3420e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nPortIndex;
3421e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         bEnableColorBars;
3422e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_CONFIG_COLORBARS;
3423e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3424e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
3425e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* Sensor OTP EEEPROM data
3426e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*
3427e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  STRUCT MEMBERS:
3428e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nSize              : Size of the structure in bytes
3429e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nVersion           : OMX specification version information
3430e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nPortIndex         : Port that this structure applies to
3431e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  pData              : pointer to the client's buffer
3432e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nDataSize          : size of the EEPROM data in bytes
3433e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nClientDataSize    : size of the client's buffer
3434e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  SensorIndex        : index of the eeprom buffer
3435e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
3436e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_CONFIG_OTPEEPROM {
3437e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nSize;
3438e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_VERSIONTYPE nVersion;
3439e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nPortIndex;
3440e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_PTR         pData;
3441e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nDataSize;
3442e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nClientDataSize;
3443e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8          SensorIndex;
3444e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen}OMX_CONFIG_OTPEEPROM;
3445bc0e345c35480fb8036a766f47a7ed65e98947c5Milen Mitkov
3446e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
3447e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * The OMX_ISP_TYPE enumeration is used to define the
3448e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * TI ISP & ST ISP types.
3449e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
3450e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef enum OMX_ISP_TYPE {
3451e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TIISP = 0,
3452e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_STISP= 1,
3453e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_ISPUnknown
3454e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_ISP_TYPE;
3455bc0e345c35480fb8036a766f47a7ed65e98947c5Milen Mitkov
3456bc0e345c35480fb8036a766f47a7ed65e98947c5Milen Mitkov/**
3457e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen* ISP Information
3458e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*
3459e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  STRUCT MEMBERS:
3460e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nSize              : Size of the structure in bytes
3461e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nVersion           : OMX specification version information
3462e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nPortIndex         : Port that this structure applies to
3463e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  eIspType              : ISP Type (TI ISP/ ST ISP)
3464e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nHardwareVersion    : Hardware version of ISP
3465e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  nSoftwareVersion        : Software version of ISP
3466e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
3467e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_CONFIG_ISPINFO {
3468e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nSize;
3469e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_VERSIONTYPE nVersion;
3470e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nPortIndex;
3471e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_ISP_TYPE    eIspType;
3472e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nHardwareVersion;
3473e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nSoftwareVersion;
3474e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S8          cDucatiVersion[32];
3475e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen}OMX_CONFIG_ISPINFO;
3476e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3477e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef enum OMX_TI_PORTTAPPOINTTYPE {
3478e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_PortTap_Bayer_SensorOutput,
3479e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_PortTap_Bayer_PostLsc,
3480e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_PortTap_Bayer_PreBayerToYUVConversion,
3481e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_PortTap_YUV_PostBayerToYUVConversion,
3482e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_PortTap_YUV_PreJPEGCompression,
3483e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_PortTap = 0x7FFFFFFF
3484e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_PORTTAPPOINTTYPE;
3485e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3486e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
3487e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * Define configuration structure for
3488e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * tap in/out points for the selected port
3489bc0e345c35480fb8036a766f47a7ed65e98947c5Milen Mitkov *
3490bc0e345c35480fb8036a766f47a7ed65e98947c5Milen Mitkov * STRUCT MEMBERS:
3491e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nSize       : Size of the structure in bytes
3492e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nVersion    : OMX specification version information
3493e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nPortIndex  : Port that this structure applies to
3494e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  eTapPoint   : Select the tap in/out point for the port
3495e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
3496e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_CONFIG_PORTTAPPOINTTYPE {
3497e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32                 nSize;
3498e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_VERSIONTYPE         nVersion;
3499e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32                 nPortIndex;
3500e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_PORTTAPPOINTTYPE eTapPoint;
3501e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_CONFIG_PORTTAPPOINTTYPE;
3502e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3503e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
3504e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * Available methods to apply vect shot exposure and gain
3505e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
3506e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef enum OMX_TI_EXPGAINAPPLYMETHODTYPE {
3507e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_EXPGAINAPPLYMETHOD_ABSOLUTE,
3508e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_EXPGAINAPPLYMETHOD_RELATIVE,
3509e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_EXPGAINAPPLYMETHOD_FORCE_RELATIVE,
3510e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_EXPGAINAPPLYMETHOD_FORCE_ABSOLUTE,
3511e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_EXPGAINAPPLYMETHOD = 0x7FFFFFFF
3512e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_EXPGAINAPPLYMETHODTYPE;
3513e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3514e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
3515e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * Define configuration structure for
3516e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * shot configuration for the selected port
3517e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
3518e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * STRUCT MEMBERS:
3519e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nSize       : Size of the structure in bytes
3520e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nVersion    : OMX specification version information
3521e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nPortIndex  : Port that this structure applies to
3522e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nConfigId   : A unique config identification number that will be
3523e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                put in ancillary data for the corresponding output frame
3524e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nFrames     : Number of sequential frames that will use this
3525e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                configuration
3526e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nEC         : Total exposure compensation value
3527e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nExp        : Exposure value for this configuration slot
3528e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nGain       : Gain value for this configuration slot
3529e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  eExpGainApplyMethod : Selects the method which will be used to apply exposure and gain
3530e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  bNoSnapshot : Determinates whether a snapshot image will be send
3531e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                on the preview port for this shot config
3532e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
3533e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_CONFIG_SHOTCONFIG {
3534e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32                         nConfigId;
3535e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32                         nFrames;
3536e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32                         nEC;
3537e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32                         nExp;
3538e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32                         nGain;
3539e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_EXPGAINAPPLYMETHODTYPE   eExpGainApplyMethod;
3540e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BOOL                        bNoSnapshot;
3541e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_CONFIG_SHOTCONFIG;
3542e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3543e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
3544e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * Define configuration structure for
3545e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * shot configuration vector for the selected port
3546e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
3547e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * STRUCT MEMBERS:
3548e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nSize           : Size of the structure in bytes
3549e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nVersion        : OMX specification version information
3550e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nPortIndex      : Port that this structure applies to
3551e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  bFlushQueue     : If TRUE: Flush queue and abort processing before enqueing
3552e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                    new shot configurations
3553e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nNumConfigs     : Number of valid configurations in the nShotConfig array
3554e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nShotConfig     : Array of shot configurations
3555e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nSlotsAvilable  : Return value with number of available slots in the queue
3556e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
3557e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_CONFIG_ENQUEUESHOTCONFIGS {
3558e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32                     nSize;
3559e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_VERSIONTYPE             nVersion;
3560e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32                     nPortIndex;
3561e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BOOL                    bFlushQueue;
3562e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32                     nNumConfigs;
3563e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_CONFIG_SHOTCONFIG    nShotConfig[5];
3564e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_CONFIG_ENQUEUESHOTCONFIGS;
3565e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
3566e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
3567e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * Define configuration structure to
3568e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * query available/free shots in shot queue.
3569e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * Will be supported only as GetConfig function.
3570e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
3571e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * STRUCT MEMBERS:
3572e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nSize           : Size of the structure in bytes
3573e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nVersion        : OMX specification version information
3574e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nPortIndex      : Port that this structure applies to
3575e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nAvailableShots : Number of available shots
3576e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
3577e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_CONFIG_QUERYAVAILABLESHOTS {
3578e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nSize;
3579bc0e345c35480fb8036a766f47a7ed65e98947c5Milen Mitkov    OMX_VERSIONTYPE nVersion;
3580e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nPortIndex;
3581e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nAvailableShots;
3582e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_CONFIG_QUERYAVAILABLESHOTS;
3583bc0e345c35480fb8036a766f47a7ed65e98947c5Milen Mitkov
3584e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
3585e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * Available vector shot capture stop methods
3586e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
3587e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef enum OMX_TI_VECTSHOTSTOPMETHOD {
3588e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VECTSHOTSTOPMETHOD_GOTO_PREVIEW,
3589e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VECTSHOTSTOPMETHOD_WAIT_IN_CAPTURE,
3590e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VECTSHOTSTOPMETHOD_MAX = 0x7FFFFFFF
3591e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VECTSHOTSTOPMETHOD;
3592bc0e345c35480fb8036a766f47a7ed65e98947c5Milen Mitkov
3593e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
3594e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * Define configuration structure to
3595e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * specify the beahvior of vector shot capture
3596e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * when the shot queue is empty
3597e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
3598e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * STRUCT MEMBERS:
3599e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nSize           : Size of the structure in bytes
3600e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nVersion        : OMX specification version information
3601e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nPortIndex      : Port that this structure applies to
3602e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  eStopMethod     : Select the stop method
3603e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
3604e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_CONFIG_VECTSHOTSTOPMETHODTYPE {
3605e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32                     nSize;
3606e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_VERSIONTYPE             nVersion;
3607e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32                     nPortIndex;
3608e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VECTSHOTSTOPMETHOD   eStopMethod;
3609e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_CONFIG_VECTSHOTSTOPMETHODTYPE;
3610bc0e345c35480fb8036a766f47a7ed65e98947c5Milen Mitkov
3611c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
3612c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#ifdef __cplusplus
3613c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}
3614c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#endif /* __cplusplus */
3615c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
3616c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#endif
3617c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
3618c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
3619