1bebc99d6fa433c04139294a5057f8439d772dbd9James Dong/**
2bebc99d6fa433c04139294a5057f8439d772dbd9James Dong * File: omxtypes.h
3bebc99d6fa433c04139294a5057f8439d772dbd9James Dong * Brief: Defines basic Data types used in OpenMAX v1.0.2 header files.
4bebc99d6fa433c04139294a5057f8439d772dbd9James Dong *
5bebc99d6fa433c04139294a5057f8439d772dbd9James Dong * Copyright � 2005-2008 The Khronos Group Inc. All Rights Reserved.
6bebc99d6fa433c04139294a5057f8439d772dbd9James Dong *
7bebc99d6fa433c04139294a5057f8439d772dbd9James Dong * These materials are protected by copyright laws and contain material
8bebc99d6fa433c04139294a5057f8439d772dbd9James Dong * proprietary to the Khronos Group, Inc.  You may use these materials
9bebc99d6fa433c04139294a5057f8439d772dbd9James Dong * for implementing Khronos specifications, without altering or removing
10bebc99d6fa433c04139294a5057f8439d772dbd9James Dong * any trademark, copyright or other notice from the specification.
11bebc99d6fa433c04139294a5057f8439d772dbd9James Dong *
12bebc99d6fa433c04139294a5057f8439d772dbd9James Dong * Khronos Group makes no, and expressly disclaims any, representations
13bebc99d6fa433c04139294a5057f8439d772dbd9James Dong * or warranties, express or implied, regarding these materials, including,
14bebc99d6fa433c04139294a5057f8439d772dbd9James Dong * without limitation, any implied warranties of merchantability or fitness
15bebc99d6fa433c04139294a5057f8439d772dbd9James Dong * for a particular purpose or non-infringement of any intellectual property.
16bebc99d6fa433c04139294a5057f8439d772dbd9James Dong * Khronos Group makes no, and expressly disclaims any, warranties, express
17bebc99d6fa433c04139294a5057f8439d772dbd9James Dong * or implied, regarding the correctness, accuracy, completeness, timeliness,
18bebc99d6fa433c04139294a5057f8439d772dbd9James Dong * and reliability of these materials.
19bebc99d6fa433c04139294a5057f8439d772dbd9James Dong *
20bebc99d6fa433c04139294a5057f8439d772dbd9James Dong * Under no circumstances will the Khronos Group, or any of its Promoters,
21bebc99d6fa433c04139294a5057f8439d772dbd9James Dong * Contributors or Members or their respective partners, officers, directors,
22bebc99d6fa433c04139294a5057f8439d772dbd9James Dong * employees, agents or representatives be liable for any damages, whether
23bebc99d6fa433c04139294a5057f8439d772dbd9James Dong * direct, indirect, special or consequential damages for lost revenues,
24bebc99d6fa433c04139294a5057f8439d772dbd9James Dong * lost profits, or otherwise, arising from or in connection with these
25bebc99d6fa433c04139294a5057f8439d772dbd9James Dong * materials.
26bebc99d6fa433c04139294a5057f8439d772dbd9James Dong *
27bebc99d6fa433c04139294a5057f8439d772dbd9James Dong * Khronos and OpenMAX are trademarks of the Khronos Group Inc.
28bebc99d6fa433c04139294a5057f8439d772dbd9James Dong *
29bebc99d6fa433c04139294a5057f8439d772dbd9James Dong */
30bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
31bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#ifndef _OMXTYPES_H_
32bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#define _OMXTYPES_H_
33bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
34bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#include <limits.h>
35bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
36bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#define OMX_IN
37bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#define OMX_OUT
38bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#define OMX_INOUT
39bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
40bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
41bebc99d6fa433c04139294a5057f8439d772dbd9James Dongtypedef enum {
42bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
43bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    /* Mandatory return codes - use cases are explicitly described for each function */
44bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    OMX_Sts_NoErr                    =  0,    /* No error, the function completed successfully */
45bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    OMX_Sts_Err                      = -2,    /* Unknown/unspecified error */
46bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    OMX_Sts_InvalidBitstreamValErr   = -182,  /* Invalid value detected during bitstream processing */
47bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    OMX_Sts_MemAllocErr              = -9,    /* Not enough memory allocated for the operation */
48bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    OMX_StsACAAC_GainCtrErr    	     = -159,  /* AAC: Unsupported gain control data detected */
49bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    OMX_StsACAAC_PrgNumErr           = -167,  /* AAC: Invalid number of elements for one program   */
50bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    OMX_StsACAAC_CoefValErr          = -163,  /* AAC: Invalid quantized coefficient value          */
51bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    OMX_StsACAAC_MaxSfbErr           = -162,  /* AAC: Invalid maxSfb value in relation to numSwb */
52bebc99d6fa433c04139294a5057f8439d772dbd9James Dong	OMX_StsACAAC_PlsDataErr		     = -160,  /* AAC: pulse escape sequence data error */
53bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
54bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    /* Optional return codes - use cases are explicitly described for each function*/
55bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    OMX_Sts_BadArgErr                = -5,    /* Bad Arguments */
56bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
57bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    OMX_StsACAAC_TnsNumFiltErr       = -157,  /* AAC: Invalid number of TNS filters  */
58bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    OMX_StsACAAC_TnsLenErr           = -156,  /* AAC: Invalid TNS region length  */
59bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    OMX_StsACAAC_TnsOrderErr         = -155,  /* AAC: Invalid order of TNS filter  */
60bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    OMX_StsACAAC_TnsCoefResErr       = -154,  /* AAC: Invalid bit-resolution for TNS filter coefficients  */
61bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    OMX_StsACAAC_TnsCoefErr          = -153,  /* AAC: Invalid TNS filter coefficients  */
62bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    OMX_StsACAAC_TnsDirectErr        = -152,  /* AAC: Invalid TNS filter direction  */
63bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
64bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    OMX_StsICJP_JPEGMarkerErr        = -183,  /* JPEG marker encountered within an entropy-coded block; */
65bebc99d6fa433c04139294a5057f8439d772dbd9James Dong                                              /* Huffman decoding operation terminated early.           */
66bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    OMX_StsICJP_JPEGMarker           = -181,  /* JPEG marker encountered; Huffman decoding */
67bebc99d6fa433c04139294a5057f8439d772dbd9James Dong                                              /* operation terminated early.                         */
68bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    OMX_StsIPPP_ContextMatchErr      = -17,   /* Context parameter doesn't match to the operation */
69bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
70bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    OMX_StsSP_EvenMedianMaskSizeErr  = -180,  /* Even size of the Median Filter mask was replaced by the odd one */
71bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
72bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    OMX_Sts_MaximumEnumeration       = INT_MAX  /*Placeholder, forces enum of size OMX_INT*/
73bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
74bebc99d6fa433c04139294a5057f8439d772dbd9James Dong } OMXResult;          /** Return value or error value returned from a function. Identical to OMX_INT */
75bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
76bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
77bebc99d6fa433c04139294a5057f8439d772dbd9James Dong/* OMX_U8 */
78bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#if UCHAR_MAX == 0xff
79bebc99d6fa433c04139294a5057f8439d772dbd9James Dongtypedef unsigned char OMX_U8;
80bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#elif USHRT_MAX == 0xff
81bebc99d6fa433c04139294a5057f8439d772dbd9James Dongtypedef unsigned short int OMX_U8;
82bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#else
83bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#error OMX_U8 undefined
84bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#endif
85bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
86bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
87bebc99d6fa433c04139294a5057f8439d772dbd9James Dong/* OMX_S8 */
88bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#if SCHAR_MAX == 0x7f
89bebc99d6fa433c04139294a5057f8439d772dbd9James Dongtypedef signed char OMX_S8;
90bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#elif SHRT_MAX == 0x7f
91bebc99d6fa433c04139294a5057f8439d772dbd9James Dongtypedef signed short int OMX_S8;
92bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#else
93bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#error OMX_S8 undefined
94bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#endif
95bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
96bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
97bebc99d6fa433c04139294a5057f8439d772dbd9James Dong/* OMX_U16 */
98bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#if USHRT_MAX == 0xffff
99bebc99d6fa433c04139294a5057f8439d772dbd9James Dongtypedef unsigned short int OMX_U16;
100bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#elif UINT_MAX == 0xffff
101bebc99d6fa433c04139294a5057f8439d772dbd9James Dongtypedef unsigned int OMX_U16;
102bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#else
103bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#error OMX_U16 undefined
104bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#endif
105bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
106bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
107bebc99d6fa433c04139294a5057f8439d772dbd9James Dong/* OMX_S16 */
108bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#if SHRT_MAX == 0x7fff
109bebc99d6fa433c04139294a5057f8439d772dbd9James Dongtypedef signed short int OMX_S16;
110bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#elif INT_MAX == 0x7fff
111bebc99d6fa433c04139294a5057f8439d772dbd9James Dongtypedef signed int OMX_S16;
112bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#else
113bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#error OMX_S16 undefined
114bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#endif
115bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
116bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
117bebc99d6fa433c04139294a5057f8439d772dbd9James Dong/* OMX_U32 */
118bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#if UINT_MAX == 0xffffffff
119bebc99d6fa433c04139294a5057f8439d772dbd9James Dongtypedef unsigned int OMX_U32;
120bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#elif LONG_MAX == 0xffffffff
121bebc99d6fa433c04139294a5057f8439d772dbd9James Dongtypedef unsigned long int OMX_U32;
122bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#else
123bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#error OMX_U32 undefined
124bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#endif
125bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
126bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
127bebc99d6fa433c04139294a5057f8439d772dbd9James Dong/* OMX_S32 */
128bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#if INT_MAX == 0x7fffffff
129bebc99d6fa433c04139294a5057f8439d772dbd9James Dongtypedef signed int OMX_S32;
130bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#elif LONG_MAX == 0x7fffffff
131bebc99d6fa433c04139294a5057f8439d772dbd9James Dongtypedef long signed int OMX_S32;
132bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#else
133bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#error OMX_S32 undefined
134bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#endif
135bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
136bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
137bebc99d6fa433c04139294a5057f8439d772dbd9James Dong/* OMX_U64 & OMX_S64 */
138bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#if defined( _WIN32 ) || defined ( _WIN64 )
139bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    typedef __int64 OMX_S64; /** Signed 64-bit integer */
140bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    typedef unsigned __int64 OMX_U64; /** Unsigned 64-bit integer */
141bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    #define OMX_MIN_S64			(0x8000000000000000i64)
142bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    #define OMX_MIN_U64			(0x0000000000000000i64)
143bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    #define OMX_MAX_S64			(0x7FFFFFFFFFFFFFFFi64)
144bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    #define OMX_MAX_U64			(0xFFFFFFFFFFFFFFFFi64)
145bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#else
146bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    typedef long long OMX_S64; /** Signed 64-bit integer */
147bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    typedef unsigned long long OMX_U64; /** Unsigned 64-bit integer */
148bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    #define OMX_MIN_S64			(0x8000000000000000LL)
149bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    #define OMX_MIN_U64			(0x0000000000000000LL)
150bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    #define OMX_MAX_S64			(0x7FFFFFFFFFFFFFFFLL)
151bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    #define OMX_MAX_U64			(0xFFFFFFFFFFFFFFFFLL)
152bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#endif
153bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
154bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
155bebc99d6fa433c04139294a5057f8439d772dbd9James Dong/* OMX_SC8 */
156bebc99d6fa433c04139294a5057f8439d772dbd9James Dongtypedef struct
157bebc99d6fa433c04139294a5057f8439d772dbd9James Dong{
158bebc99d6fa433c04139294a5057f8439d772dbd9James Dong  OMX_S8 Re; /** Real part */
159bebc99d6fa433c04139294a5057f8439d772dbd9James Dong  OMX_S8 Im; /** Imaginary part */
160bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
161bebc99d6fa433c04139294a5057f8439d772dbd9James Dong} OMX_SC8; /** Signed 8-bit complex number */
162bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
163bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
164bebc99d6fa433c04139294a5057f8439d772dbd9James Dong/* OMX_SC16 */
165bebc99d6fa433c04139294a5057f8439d772dbd9James Dongtypedef struct
166bebc99d6fa433c04139294a5057f8439d772dbd9James Dong{
167bebc99d6fa433c04139294a5057f8439d772dbd9James Dong  OMX_S16 Re; /** Real part */
168bebc99d6fa433c04139294a5057f8439d772dbd9James Dong  OMX_S16 Im; /** Imaginary part */
169bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
170bebc99d6fa433c04139294a5057f8439d772dbd9James Dong} OMX_SC16; /** Signed 16-bit complex number */
171bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
172bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
173bebc99d6fa433c04139294a5057f8439d772dbd9James Dong/* OMX_SC32 */
174bebc99d6fa433c04139294a5057f8439d772dbd9James Dongtypedef struct
175bebc99d6fa433c04139294a5057f8439d772dbd9James Dong{
176bebc99d6fa433c04139294a5057f8439d772dbd9James Dong  OMX_S32 Re; /** Real part */
177bebc99d6fa433c04139294a5057f8439d772dbd9James Dong  OMX_S32 Im; /** Imaginary part */
178bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
179bebc99d6fa433c04139294a5057f8439d772dbd9James Dong} OMX_SC32; /** Signed 32-bit complex number */
180bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
181bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
182bebc99d6fa433c04139294a5057f8439d772dbd9James Dong/* OMX_SC64 */
183bebc99d6fa433c04139294a5057f8439d772dbd9James Dongtypedef struct
184bebc99d6fa433c04139294a5057f8439d772dbd9James Dong{
185bebc99d6fa433c04139294a5057f8439d772dbd9James Dong  OMX_S64 Re; /** Real part */
186bebc99d6fa433c04139294a5057f8439d772dbd9James Dong  OMX_S64 Im; /** Imaginary part */
187bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
188bebc99d6fa433c04139294a5057f8439d772dbd9James Dong} OMX_SC64; /** Signed 64-bit complex number */
189bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
190bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
191bebc99d6fa433c04139294a5057f8439d772dbd9James Dong/* OMX_F32 */
192bebc99d6fa433c04139294a5057f8439d772dbd9James Dongtypedef float OMX_F32; /** Single precision floating point,IEEE 754 */
193bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
194bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
195bebc99d6fa433c04139294a5057f8439d772dbd9James Dong/* OMX_F64 */
196bebc99d6fa433c04139294a5057f8439d772dbd9James Dongtypedef double OMX_F64; /** Double precision floating point,IEEE 754 */
197bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
198bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
199bebc99d6fa433c04139294a5057f8439d772dbd9James Dong/* OMX_INT */
200bebc99d6fa433c04139294a5057f8439d772dbd9James Dongtypedef int OMX_INT; /** signed integer corresponding to machine word length, has maximum signed value INT_MAX*/
201bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
202bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
203bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#define OMX_MIN_S8  	   	(-128)
204bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#define OMX_MIN_U8  		0
205bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#define OMX_MIN_S16		 	(-32768)
206bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#define OMX_MIN_U16			0
207bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#define OMX_MIN_S32			(-2147483647-1)
208bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#define OMX_MIN_U32			0
209bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
210bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#define OMX_MAX_S8			(127)
211bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#define OMX_MAX_U8			(255)
212bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#define OMX_MAX_S16			(32767)
213bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#define OMX_MAX_U16			(0xFFFF)
214bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#define OMX_MAX_S32			(2147483647)
215bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#define OMX_MAX_U32			(0xFFFFFFFF)
216bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
217bebc99d6fa433c04139294a5057f8439d772dbd9James Dongtypedef void OMXVoid;
218bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
219bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#ifndef NULL
220bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#define NULL ((void*)0)
221bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#endif
222bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
223bebc99d6fa433c04139294a5057f8439d772dbd9James Dong/** Defines the geometric position and size of a rectangle,
224bebc99d6fa433c04139294a5057f8439d772dbd9James Dong  * where x,y defines the coordinates of the top left corner
225bebc99d6fa433c04139294a5057f8439d772dbd9James Dong  * of the rectangle, with dimensions width in the x-direction
226bebc99d6fa433c04139294a5057f8439d772dbd9James Dong  * and height in the y-direction */
227bebc99d6fa433c04139294a5057f8439d772dbd9James Dongtypedef struct {
228bebc99d6fa433c04139294a5057f8439d772dbd9James Dong	OMX_INT x;      /** x-coordinate of top left corner of rectangle */
229bebc99d6fa433c04139294a5057f8439d772dbd9James Dong	OMX_INT y;      /** y-coordinate of top left corner of rectangle */
230bebc99d6fa433c04139294a5057f8439d772dbd9James Dong	OMX_INT width;  /** Width in the x-direction. */
231bebc99d6fa433c04139294a5057f8439d772dbd9James Dong	OMX_INT height; /** Height in the y-direction. */
232bebc99d6fa433c04139294a5057f8439d772dbd9James Dong}OMXRect;
233bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
234bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
235bebc99d6fa433c04139294a5057f8439d772dbd9James Dong/** Defines the geometric position of a point, */
236bebc99d6fa433c04139294a5057f8439d772dbd9James Dongtypedef struct
237bebc99d6fa433c04139294a5057f8439d772dbd9James Dong{
238bebc99d6fa433c04139294a5057f8439d772dbd9James Dong OMX_INT x; /** x-coordinate */
239bebc99d6fa433c04139294a5057f8439d772dbd9James Dong OMX_INT y;	/** y-coordinate */
240bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
241bebc99d6fa433c04139294a5057f8439d772dbd9James Dong} OMXPoint;
242bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
243bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
244bebc99d6fa433c04139294a5057f8439d772dbd9James Dong/** Defines the dimensions of a rectangle, or region of interest in an image */
245bebc99d6fa433c04139294a5057f8439d772dbd9James Dongtypedef struct
246bebc99d6fa433c04139294a5057f8439d772dbd9James Dong{
247bebc99d6fa433c04139294a5057f8439d772dbd9James Dong OMX_INT width;  /** Width of the rectangle, in the x-direction */
248bebc99d6fa433c04139294a5057f8439d772dbd9James Dong OMX_INT height; /** Height of the rectangle, in the y-direction */
249bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
250bebc99d6fa433c04139294a5057f8439d772dbd9James Dong} OMXSize;
251bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
252bebc99d6fa433c04139294a5057f8439d772dbd9James Dong#endif /* _OMXTYPES_H_ */
253