1/*--------------------------------------------------------------------------
2Copyright (c) 2011 Code Aurora Forum. All rights reserved.
3
4Redistribution and use in source and binary forms, with or without
5modification, are permitted provided that the following conditions are met:
6    * Redistributions of source code must retain the above copyright
7      notice, this list of conditions and the following disclaimer.
8    * Redistributions in binary form must reproduce the above copyright
9      notice, this list of conditions and the following disclaimer in the
10      documentation and/or other materials provided with the distribution.
11    * Neither the name of Code Aurora nor
12      the names of its contributors may be used to endorse or promote
13      products derived from this software without specific prior written
14      permission.
15
16THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
20CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
23OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
25OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
26ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27--------------------------------------------------------------------------*/
28
29#ifndef __H_QOMX_IVCOMMONEXTENSIONS_H__
30#define __H_QOMX_IVCOMMONEXTENSIONS_H__
31
32/*========================================================================
33
34*//** @file QOMX_CommonExtensions.h
35
36@par FILE SERVICES:
37      common extensions API for OpenMax IL.
38
39      This file contains the description of the Qualcomm OpenMax IL
40      common extention interface, through which the IL client and OpenMax
41      components can access additional capabilities.
42
43*//*====================================================================== */
44
45
46/*========================================================================
47
48                     INCLUDE FILES FOR MODULE
49
50========================================================================== */
51#include <OMX_Core.h>
52
53/*========================================================================
54
55                      DEFINITIONS AND DECLARATIONS
56
57========================================================================== */
58
59#if defined( __cplusplus )
60extern "C"
61{
62#endif /* end of macro __cplusplus */
63
64/* IV common extension strings */
65#define OMX_QCOM_INDEX_CONFIG_MEDIAINFO                 "OMX.QCOM.index.config.mediainfo"  /**< reference: QOMX_MEDIAINFOTYPE */
66#define OMX_QCOM_INDEX_CONFIG_CONTENTURI                "OMX.QCOM.index.config.contenturi" /**< reference: OMX_PARAM_CONTENTURITYPE */
67#define OMX_QCOM_INDEX_PARAM_IMAGESIZECONTROL           "OMX.Qualcomm.index.param.ImageSizeControl" /**< reference: QOMX_IMAGE_IMAGESIZECONTROLTYPE */
68#define OMX_QCOM_INDEX_CONFIG_PAUSEPORT                 "OMX.QCOM.index.config.PausePort" /**< reference: QOMX_CONFIG_PAUSEPORTTYPE */
69
70/** reference: QOMX_URANGETYPE
71 *  nMin, nMax, nStepSize give width in pixels */
72#define OMX_QCOM_INDEX_PARAM_FRAMEWIDTHRANGESUPPORTED   "OMX.QCOM.index.param.FrameWidthRangeSupported"
73
74/** reference: QOMX_URANGETYPE
75 *  nMin, nMax, nStepSize give height in pixels */
76#define OMX_QCOM_INDEX_PARAM_FRAMEHEIGHTRANGESUPPORTED  "OMX.QCOM.index.param.FrameHeightRangeSupported"
77
78/** reference: QOMX_URANGETYPE
79 *  nMin, nMax, nStepSize give the number of macroblocks per
80 *  frame. */
81#define OMX_QCOM_INDEX_PARAM_MACROBLOCKSPERFRAMERANGESUPPORTED "OMX.QCOM.index.param.MacroblocksPerFrameRangeSupported"
82
83/** reference: QOMX_URANGETYPE
84 *  nMin, nMax, nStepSize give the number of macroblocks per
85 *  second. */
86#define OMX_QCOM_INDEX_PARAM_MACROBLOCKSPERSECONDRANGESUPPORTED "OMX.QCOM.index.param.MacroblocksPerSecondRangeSupported"
87
88/** reference: QOMX_URANGETYPE
89 *  nMin, nMax, nStepSize give frame rate in frames per second
90 *  in Q16 format. */
91#define OMX_QCOM_INDEX_PARAM_FRAMERATERANGESUPPORTED    "OMX.QCOM.index.param.FrameRateRangeSupported"
92
93#define OMX_QCOM_INDEX_PARAM_PLANEDEFINITION            "OMX.QCOM.index.param.PlaneDefinition" /** reference: QOMX_PLANEDEFINITIONTYPE */
94
95/** reference: QOMX_URANGETYPE
96 *  nMin, nMax, nStepSize give the crop width in pixels */
97#define OMX_QOMX_INDEX_PARAM_CROPWIDTHRANGESUPPORTED        "OMX.QCOM.index.param.CropWidthRangeSupported"
98
99/** reference: QOMX_URANGETYPE
100 *  nMin, nMax, nStepSize give the crop height in pixels */
101#define OMX_QOMX_INDEX_PARAM_CROPHEIGHTRANGESUPPORTED        "OMX.QCOM.index.param.CropHeightRangeSupported"
102
103/** reference: QOMX_URANGETYPE
104 *  nMin, nMax, nStepSize give the digital zoom factor on width
105 *  in Q16 format. */
106#define OMX_QCOM_INDEX_PARAM_DIGITALZOOMWIDTHRANGESUPPORTED    "OMX.QCOM.index.param.DigitalZoomWidthRangeSupported"
107
108/** reference: QOMX_URANGETYPE
109 *  nMin, nMax, nStepSize give the digital zoom factor on height
110 *  in Q16 format. */
111#define OMX_QCOM_INDEX_PARAM_DIGITALZOOMHEIGHTRANGESUPPORTED    "OMX.QCOM.index.param.DigitalZoomHeightRangeSupported"
112
113/**
114 * Enumeration defining the extended uncompressed image/video
115 * formats.
116 *
117 * ENUMS:
118 *  YVU420PackedSemiPlanar       : Buffer containing all Y, and then V and U
119 *                                 interleaved.
120 *  YVU420PackedSemiPlanar32m4ka : YUV planar format, similar to the
121 *                                 YVU420PackedSemiPlanar format, but with the
122 *                                 following restrictions:
123 *
124 *                                 1. The width and height of both plane must
125 *                                 be a multiple of 32 texels.
126 *
127 *                                 2. The base address of both planes must be
128 *                                 aligned to a 4kB boundary.
129 *
130 *  YUV420PackedSemiPlanar16m2ka : YUV planar format, similar to the
131 *                                 YUV420PackedSemiPlanar format, but with the
132 *                                 following restrictions:
133 *
134 *                                 1. The width of the luma plane must be a
135 *                                 multiple of 16 pixels.
136 *
137 *                                 2. The address of both planes must be
138 *                                 aligned to a 2kB boundary.
139 *
140 *  YUV420PackedSemiPlanar64x32Tile2m8ka : YUV planar format, similar to the
141 *                                 YUV420PackedSemiPlanar format, but with the
142 *                                 following restrictions:
143 *
144 *                                 1. The data is laid out in a 4x2 MB tiling
145 *                                 memory structure
146 *
147 *                                 2. The width of each plane is a multiple of
148 *                                 2 4x2 MB tiles.
149 *
150 *                                 3. The height of each plan is a multiple of
151 *                                 a 4x2 MB tile.
152 *
153 *                                 4. The base address of both planes must be
154 *                                 aligned to an 8kB boundary.
155 *
156 *                                 5. The tiles are scanned in the order
157 *                                 defined in the MFCV5.1 User's Manual.
158 */
159typedef enum QOMX_COLOR_FORMATTYPE
160{
161    QOMX_COLOR_FormatYVU420PackedSemiPlanar       = 0x7F000001,
162    QOMX_COLOR_FormatYVU420PackedSemiPlanar32m4ka,
163    QOMX_COLOR_FormatYUV420PackedSemiPlanar16m2ka,
164    QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka
165} QOMX_COLOR_FORMATTYPE;
166
167typedef enum QOMX_MEDIAINFOTAGTYPE {
168    QOMX_MediaInfoTagVersion,       /**< OMX_VERSIONTYPE. Version of the standard specifying the media information.*/
169    QOMX_MediaInfoTagUID,           /**< OMX_U8*. Unique ID of the media data, ie image unique ID.*/
170    QOMX_MediaInfoTagDescription,   /**< OMX_U8*. Comments about the media.*/
171    QOMX_MediaInfoTagTitle,         /**< OMX_U8*. Title of the media.*/
172    QOMX_MediaInfoTagAuthor,        /**< OMX_U8*. Author of the media.*/
173    QOMX_MediaInfoTagCopyright,     /**< OMX_U8*. Copyright information.*/
174    QOMX_MediaInfoTagTrackNum,      /**< OMX_U32. Track number.*/
175    QOMX_MediaInfoTagGenre,         /**< OMX_U8*. The genre of the media.*/
176    QOMX_MediaInfoTagEquipmentMake, /**< OMX_U8*. Manufacturer of recording equipment.*/
177    QOMX_MediaInfoTagEquipmentModel,/**< OMX_U8*. Model or name of the recording equipment.*/
178    QOMX_MediaInfoTagSoftware,      /**< OMX_U8*. Name and version of the software or firmware of the device generating the media.*/
179    QOMX_MediaInfoTagAssociatedFile,/**< OMX_U8*. The name of the file related to the media.  For example, an audio file related to an image file.*/
180    QOMX_MediaInfoTagResolution,    /**< QOMX_RESOLUTIONTYPE. Number of pixels per resolution unit.*/
181    QOMX_MediaInfoTagDateCreated,   /**< QOMX_DATESTAMPTYPE. Date when media was created.*/
182    QOMX_MediaInfoTagTimeCreated,   /**< QOMX_TIMESTAMPTYPE. Time when media was created.*/
183    QOMX_MediaInfoTagDateModified,  /**< QOMX_DATESTAMPETYPE. Date when file was last modified.*/
184    QOMX_MediaInfoTagTimeModified,  /**< QOMX_TIMESTAMPTYPE. Time when file was last modified.*/
185    QOMX_MediaInfoTagGPSAreaName,   /**< OMX_U8*. The name of the location.*/
186    QOMX_MediaInfoTagGPSVersion,    /**< OMX_VERSIONTYPE. GPS version.*/
187    QOMX_MediaInfoTagGPSCoordinates,/**< QOMX_GEODETICTYPE. The longitude, latitude, and altitude.*/
188    QOMX_MediaInfoTagGPSSatellites, /**< OMX_U8*. The GPS satellites used for measurements.*/
189    QOMX_MediaInfoTagGPSPrecision,  /**< OMX_U32. GPS degree of precision.*/
190    QOMX_MediaInfoTagGPSDateStamp,  /**< QOMX_DATESTAMPTYPE. Date of the GPS data.*/
191    QOMX_MediaInfoTagGPSTimeStamp,  /**< QOMX_TIMESTAMPTYPE. Time of the GPS data.*/
192    QOMX_MediaInfoTagMediaStreamType,/**< QOMX_MEDIASTREAMTYPE. Type of the stream. */
193    QOMX_MediaInfoDuration,         /**< OMX_TICKS. Total duration of the media.*/
194    QOMX_MediaInfoSize,                          /**< OMX_U32. Total size of the media in bytes.*/
195    QOMX_MediaInfoTagAlbum,                     /**< OMX_U8*. Name of album/movie/show.*/
196    QOMX_MediaInfoTagLocation,                  /**< OMX_U8*. Recording location information.*/
197    QOMX_MediaInfoTagClassification,            /**< OMX_U8*. Classification information of media.*/
198    QOMX_MediaInfoTagRatings,                   /**< OMX_U8*. Media Ratings based on popularity & rating criteria.*/
199    QOMX_MediaInfoTagKeyword,                   /**< OMX_U8*. Keyword associated with media which are intended to reflect mood of the A/V.*/
200    QOMX_MediaInfoTagPerformance,               /**< OMX_U8*. Media Performer information..*/
201    QOMX_MediaInfoTagYear,                      /**< OMX_U8*. Production year information of media.*/
202    QOMX_MediaInfoTagComposer,                  /**< OMX_U8*. Name of the composer of media i.e. audio.*/
203    QOMX_MediaInfoTagEncoderName,                  /**< OMX_U8*. Name of the person or organisation who encoded media.*/
204    QOMX_MediaInfoTagCopyProhibitFlag,          /**< OMX_U8*. Flag to indicate if copy is allowed or not.*/
205    QOMX_MediaInfoTagLyricist,                  /**< OMX_U8*. Name of the lyricist or text writer in recording. Specific to ID3 tag.*/
206    QOMX_MediaInfoTagSubtitle,                  /**< OMX_U8*. Subtitle/Description used for informaton directly related to title of media.*/
207    QOMX_MediaInfoTagOriginalFileName,          /**< OMX_U8*. Original file name.*/
208    QOMX_MediaInfoTagOriginalLyricist,          /**< OMX_U8*. Name of the original lyricist/text writer of original recording.*/
209    QOMX_MediaInfoTagOriginalArtist,            /**< OMX_U8*. Name of the original artist.*/
210    QOMX_MediaInfoTagOriginalReleaseYear,       /**< OMX_U8*. Original release year of recorded media.*/
211    QOMX_MediaInfoTagFileOwner,                 /**< OMX_U8*. Licensee or name of the file owner.*/
212    QOMX_MediaInfoTagOrchestra,                 /**< OMX_U8*. Name of the orchestra or performers during recording.*/
213    QOMX_MediaInfoTagConductor,                 /**< OMX_U8*. Name of the conductor.*/
214    QOMX_MediaInfoTagRemixedBy,                 /**< OMX_U8*. Person or organization name who did the remix.*/
215    QOMX_MediaInfoTagAlbumArtist,               /**< OMX_U8*. Name of the album artist.*/
216    QOMX_MediaInfoTagPublisher,                 /**< OMX_U8*. Name of the publisher or label.*/
217    QOMX_MediaInfoTagRecordingDates,            /**< OMX_U8*. Recording date of media.*/
218    QOMX_MediaInfoTagInternetRadioStationName,  /**< OMX_U8*. Name of the Internet radio station from which the audio is streamed.*/
219    QOMX_MediaInfoTagInternetRadioStationOwner, /**< OMX_U8*. Name of the owner of the Internet radio station from which the audio is streamed.*/
220    QOMX_MediaInfoTagInternationalRecordingCode,/**< OMX_U8*. International standard recording code.*/
221    QOMX_MediaInfoTagEncoderSwHwSettings,       /**< OMX_U8*. Software,hardware settings used by encoder.*/
222    QOMX_MediaInfoTagInvolvedPeopleList,        /**< OMX_U8*. List of people involved. Specific to ID3 tag.*/
223    QOMX_MediaInfoTagComments,                  /**< OMX_U8*. Comments about the media. It can be any kind of full text informaton.*/
224    QOMX_MediaInfoTagCommissioned,              /**< OMX_U8*. Commissioned information of media.*/
225    QOMX_MediaInfoTagSubject,                   /**< OMX_U8*. Subject associated with media.*/
226    QOMX_MediaInfoTagContact,                   /**< OMX_U8*. Conatct information. URL information of the seller.*/
227    QOMX_MediaInfoTagValidityPeriod,            /**< OMX_U8*. Length or period of validity of media.*/
228    QOMX_MediaInfoTagValidityEffectiveDate,     /**< OMX_U8*. Validity effective date of media*/
229    QOMX_MediaInfoTagNumberOfAllowedPlaybacks,  /**< OMX_U8*. Number of allowed playbacks for this media*/
230    QOMX_MediaInfoTagPlayCounter,               /**< OMX_U8*. Current play counter of the media.Its number of times a file has been played.*/
231    QOMX_MediaInfoTagMemo,                      /**< OMX_U8*. Memo associatd with media.*/
232    QOMX_MediaInfoTagDeviceName,                /**< OMX_U8*. Name of the devices used in creating media.*/
233    QOMX_MediaInfoTagURL,                       /**< OMX_U8*. List artist /genre /movie sites URL.*/
234    QOMX_MediaInfoTagFileType,                  /**< OMX_U8*. Indicates type of audio track.*/
235    QOMX_MediaInfoTagContentGroupDesc,          /**< OMX_U8*. Content group description if the sound belongs to a larger category of of music /sound.*/
236    QOMX_MediaInfoTagInitialKeys,               /**< OMX_U8*. Contains the musical key in which media starts.*/
237    QOMX_MediaInfoTagLanguages,                 /**< OMX_U8*. Languages of the text or lyrics spoken or sung in the media.*/
238    QOMX_MediaInfoTagMediaType,                 /**< OMX_U8*. Describes from which media the media sound originated.*/
239    QOMX_MediaInfoTagPlaylistDelay,             /**< OMX_U8*. Denotes number of milliseconds between each song of the playlist.*/
240    QOMX_MediaInfoTagBeatsPerMinute,            /**< OMX_U8*. Number of beats per minute in main part of audio.*/
241    QOMX_MediaInfoTagPartOfSet,                 /**< OMX_U8*. Describes part of the set selected or played. */
242    QOMX_MediaInfoTagInstrumentName,            /**< OMX_U8*. Name of the instrument used in creating media.*/
243    QOMX_MediaInfoTagLyrics,                    /**< OMX_U8*. Lyrics of the media/audio track.*/
244    QOMX_MediaInfoTagTrackName,                 /**< OMX_U8*. Name of the media/audio track.*/
245    QOMX_MediaInfoTagMarker,                    /**< OMX_U8*. Text string cotnents placed at a specific location to denote information about the music at that point.*/
246    QOMX_MediaInfoTagCuePoint,                  /**< OMX_U8*. Subset of the content which can be optionally played.*/
247    QOMX_MediaInfoTagGPSPositioningName,        /**< OMX_U8*. GPS positioning name. */
248    QOMX_MediaInfoTagGPSPositioningMethod,      /**< OMX_U8*. GPS positioning method.*/
249    QOMX_MediaInfoTagGPSSurveyData,             /**< OMX_U8*. GPS survey data. */
250    QOMX_MediaInfoTagGPSByteOrder,              /**< OMX_U16.GPS byte order. */
251    QOMX_MediaInfoTagGPSLatitudeRef,            /**< OMX_U32.Reference GPS latitude. */
252    QOMX_MediaInfoTagGPSLongitudeRef,           /**< OMX_U32.Reference GPS longitude */
253    QOMX_MediaInfoTagGPSAltitudeRef,            /**< OMX_U32. Reference GPS altitude.*/
254    QOMX_MediaInfoTagGPSExtensionMapScaleInfo,  /**< OMX_U64. GPS extension map scale information.*/
255    QOMX_MediaInfoTagUUIDAtomInfo,              /**< OMX_U8*. The user defined data associated with UUID.*/
256    QOMX_MediaInfoTagUUIDAtomCount,             /**< OMX_U32 UUID atom count.*/
257    QOMX_MediaInfoTagLocationRole,              /**< OMX_32. Indicates the role of the place. i.e. 0 indicate shooting location'. 1 real location.*/
258    QOMX_MediaInfoTagAstronomicalBody,          /**< OMX_U8*. Astronomical body on which the location exists.*/
259    QOMX_MediaInfoTagUserInfoData               /**< OMX_U8*. The user defined tag informaton.*/
260} QOMX_MEDIAINFOTAGTYPE;
261
262typedef struct QOMX_MEDIAINFOTYPE {
263    OMX_U32 nSize;
264    OMX_VERSIONTYPE nVersion;
265    OMX_U32 nPortIndex; /**< Read-only value containing the index of the output port. */
266    QOMX_MEDIAINFOTAGTYPE eTag; /**< The type of media info being specified. */
267    OMX_U32 nDataSize; /**< The size of the associated cData.  Set nDataSize to 0 to retrieve the size required for cData. */
268    OMX_U8 cData[1]; /**< The media data info */
269} QOMX_MEDIAINFOTYPE;
270
271
272typedef enum QOMX_RESOLUTIONUNITTYPE {
273    QOMX_ResolutionUnitInch,
274    QOMX_ResolutionCentimeter
275} QOMX_RESOLUTIONUNITTYPE;
276
277typedef struct QOMX_RESOLUTIONTYPE {
278    QOMX_RESOLUTIONUNITTYPE eUnit; /**< The unit of measurement. */
279    OMX_U32 nX; /**< The number of pixels per unit in the width direction. */
280    OMX_U32 nY; /**< The number of pixels per unit in the height direction. */
281} QOMX_RESOLUTIONTYPE;
282
283typedef struct QOMX_TIMESTAMPTYPE {
284    OMX_U32 nHour; /**< The hour portion of the time stamp, based on a 24-hour format. */
285    OMX_U32 nMinute; /**< The minute portion of the time stamp. */
286    OMX_U32 nSecond; /**< The second portion of the time stamp. */
287    OMX_U32 nMillisecond; /**< the millisecond portion of the time stamp. */
288} QOMX_TIMESTAMPTYPE;
289
290typedef struct QOMX_DATESTAMPTYPE {
291    OMX_U32 nYear;  /**< The year portion of the date stamp. */
292    OMX_U32 nMonth; /**< The monthportion of the date stamp. Valid values are 1 to 12.*/
293    OMX_U32 nDay; /**< The day portion of the date stamp. Valid values are 1 to 31 depending on the month specified.*/
294} QOMX_DATESTAMPTYPE;
295
296typedef enum QOMX_GEODETICREFTYPE {
297    QOMX_GeodeticRefNorth,  /**< North latitude. */
298    QOMX_GeodeticRefSouth,  /**< South latitude. */
299    QOMX_GeodeticRefEast,   /**< East longitude. */
300    QOMX_GeodeticRefWest    /**< West longitude. */
301} QOMX_GEODETICREFTYPE;
302
303/** QOMX_GEODETICANGLETYPE is used to set geodetic angle coordinates on an ellipsoid (the Earth),
304and is explicitly used to specify latitude and longitude.  This structure is referenced by QOMX_GEODETICTYPE. */
305typedef struct QOMX_GEODETICANGLETYPE {
306    QOMX_GEODETICREFTYPE eReference; /**< Indicates whether the geodetic angle is a latitude or longitude. */
307    OMX_U32 nDegree; /**< The degree of the latitude or longitude. */
308    OMX_U32 nMinute; /**< The minute of the latitude or longitude. */
309    OMX_U32 nSecond; /**< The second of the latitude or longitude. */
310} QOMX_GEODETICANGLETYPE;
311
312typedef enum QOMX_ALTITUDEREFTYPE {
313    QOMX_AltitudeRefSeaLevel, /**< At sea level. */
314    QOMX_AltitudeRefBelowSeaLevel /**< Below sea level. */
315} QOMX_ALTITUDEREFTYPE;
316
317typedef struct QOMX_ALTITUDETYPE {
318    QOMX_ALTITUDEREFTYPE eReference; /**< The reference point for the altitude. */
319    OMX_U32 nMeter; /**< The absolute value of the number of meters above or below sea level. */
320    OMX_U32 nMillimeter; /**< The absolute value of the number of millimeters above or below sea level. */
321} QOMX_ALTITUDETYPE;
322
323/** QOMX_GEODETICTYPE is used to set geodetic coordinates such as longitude, latitude, and altitude.
324This structure references QOMX_GEODETICANGLETYPE and QOMX_ALTITUDETYPE. */
325typedef struct QOMX_GEODETICTYPE {
326    QOMX_GEODETICANGLETYPE sLatitude; /**< Indicates the latitude.*/
327    QOMX_GEODETICANGLETYPE sLongitude; /**< Indicates the longitude.*/
328    QOMX_ALTITUDETYPE sAltitude; /**< Indicates the altitude.*/
329} QOMX_GEODETICTYPE;
330
331
332typedef struct QOMX_IMAGE_IMAGESIZECONTROLTYPE {
333    OMX_U32 nSize;
334    OMX_VERSIONTYPE nVersion;
335    OMX_U32 nPortIndex; /**< port index on which size control needs to be applied */
336    OMX_U32 nTargetImageSize; /**< expected max target size in Bytes */
337} QOMX_IMAGE_IMAGESIZECONTROLTYPE;
338
339typedef enum QOMX_URITYPE {
340    QOMX_URITYPE_RTSP, /**< RTSP URI Type. */
341    QOMX_URITYPE_HTTP, /**< HTTP URI Type. */
342    QOMX_URITYPE_LOCAL /**< Local URI Type.(i.e Non Network) */
343}QOMX_URITYPE;
344
345
346typedef enum QOMX_STREAMTYPE {
347    QOMX_STREAMTYPE_VOD, /**< Video On demand Stream */
348    QOMX_STREAMTYPE_LIVE,/**< Live Stream */
349    QOMX_STREAMTYPE_FILE /**< File based Stream */
350}QOMX_STREAMTYPE;
351
352
353typedef struct QOMX_MEDIASTREAMTYPE{
354    QOMX_URITYPE eURIType;
355    QOMX_STREAMTYPE eStreamType;
356}QOMX_MEDIASTREAMTYPE;
357
358
359/**
360 * This structure specifies the parameters associated with each
361 * plane of the uncompressed image/video format.
362 */
363typedef struct QOMX_PLANEDEFINITIONTYPE {
364    OMX_U32 nSize;
365    OMX_VERSIONTYPE nVersion;
366    OMX_U32 nPortIndex;               /**< Represents the port that this structure applies to */
367    OMX_U32 nPlaneIndex;              /**< Specifies the plane enumeration index that this structure applies to, starting with a base value of 1 */
368    OMX_U32 nMinStride;               /**< Read-only parameter that specifies the minimum buffer stride */
369    OMX_U32 nMaxStride;               /**< Read-only parameter that specifies the maximum buffer stride */
370    OMX_U32 nStrideMultiples;         /**< Read-only parameter that specifies the buffer stride multiple supported */
371    OMX_S32 nActualStride;            /**< Specifies the actual stride to be applied */
372    OMX_U32 nMinPlaneBufferHeight;    /**< Read-only parameter that specifies the minimum buffer height (number of stride lines) */
373    OMX_U32 nActualPlaneBufferHeight; /**< Specifies the actual buffer height (number of stride lines) to be applied */
374    OMX_U32 nBufferSize;              /**< Read-only parameter that specifies the minimum size of the buffer, in bytes */
375    OMX_U32 nBufferAlignment;         /**< Read-only field that specifies the required alignment of the buffer, in bytes */
376} QOMX_PLANEDEFINITIONTYPE;
377
378/**
379 *  Pause port parameters
380 *
381 *  STRUCT MEMBERS:
382 *  nSize           : Size of the structure in bytes
383 *  nVersion        : OMX specification version information
384 *  nPortIndex      : Index of port that this structure represent
385 *  bPausePort      : Boolean field which indicates if port is paused or resume. By default bPausePort = OMX_FALSE
386 *                    & port will be paused when bPausePort = OMX_TRUE
387 */
388typedef struct QOMX_CONFIG_PAUSEPORTTYPE {
389  OMX_U32 nSize;
390  OMX_VERSIONTYPE nVersion;
391  OMX_U32 nPortIndex;                /**< Represents the port that this structure applies to */
392  OMX_BOOL bPausePort;               /**< Specifies if port need to PAUSE or RESUME */
393} QOMX_CONFIG_PAUSEPORTTYPE;
394
395#if defined( __cplusplus )
396}
397#endif /* end of macro __cplusplus */
398
399#endif /* end of macro __H_QOMX_IVCOMMONEXTENSIONS_H__ */
400