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