10c1bc742181ded4930842b46e9507372f0b1b963James Dong/**
20c1bc742181ded4930842b46e9507372f0b1b963James Dong * File: omxtypes.h
30c1bc742181ded4930842b46e9507372f0b1b963James Dong * Brief: Defines basic Data types used in OpenMAX v1.0.2 header files.
40c1bc742181ded4930842b46e9507372f0b1b963James Dong *
50c1bc742181ded4930842b46e9507372f0b1b963James Dong * Copyright � 2005-2008 The Khronos Group Inc. All Rights Reserved.
60c1bc742181ded4930842b46e9507372f0b1b963James Dong *
70c1bc742181ded4930842b46e9507372f0b1b963James Dong * These materials are protected by copyright laws and contain material
80c1bc742181ded4930842b46e9507372f0b1b963James Dong * proprietary to the Khronos Group, Inc.  You may use these materials
90c1bc742181ded4930842b46e9507372f0b1b963James Dong * for implementing Khronos specifications, without altering or removing
100c1bc742181ded4930842b46e9507372f0b1b963James Dong * any trademark, copyright or other notice from the specification.
110c1bc742181ded4930842b46e9507372f0b1b963James Dong *
120c1bc742181ded4930842b46e9507372f0b1b963James Dong * Khronos Group makes no, and expressly disclaims any, representations
130c1bc742181ded4930842b46e9507372f0b1b963James Dong * or warranties, express or implied, regarding these materials, including,
140c1bc742181ded4930842b46e9507372f0b1b963James Dong * without limitation, any implied warranties of merchantability or fitness
150c1bc742181ded4930842b46e9507372f0b1b963James Dong * for a particular purpose or non-infringement of any intellectual property.
160c1bc742181ded4930842b46e9507372f0b1b963James Dong * Khronos Group makes no, and expressly disclaims any, warranties, express
170c1bc742181ded4930842b46e9507372f0b1b963James Dong * or implied, regarding the correctness, accuracy, completeness, timeliness,
180c1bc742181ded4930842b46e9507372f0b1b963James Dong * and reliability of these materials.
190c1bc742181ded4930842b46e9507372f0b1b963James Dong *
200c1bc742181ded4930842b46e9507372f0b1b963James Dong * Under no circumstances will the Khronos Group, or any of its Promoters,
210c1bc742181ded4930842b46e9507372f0b1b963James Dong * Contributors or Members or their respective partners, officers, directors,
220c1bc742181ded4930842b46e9507372f0b1b963James Dong * employees, agents or representatives be liable for any damages, whether
230c1bc742181ded4930842b46e9507372f0b1b963James Dong * direct, indirect, special or consequential damages for lost revenues,
240c1bc742181ded4930842b46e9507372f0b1b963James Dong * lost profits, or otherwise, arising from or in connection with these
250c1bc742181ded4930842b46e9507372f0b1b963James Dong * materials.
260c1bc742181ded4930842b46e9507372f0b1b963James Dong *
270c1bc742181ded4930842b46e9507372f0b1b963James Dong * Khronos and OpenMAX are trademarks of the Khronos Group Inc.
280c1bc742181ded4930842b46e9507372f0b1b963James Dong *
290c1bc742181ded4930842b46e9507372f0b1b963James Dong */
300c1bc742181ded4930842b46e9507372f0b1b963James Dong
310c1bc742181ded4930842b46e9507372f0b1b963James Dong#ifndef _OMXTYPES_H_
320c1bc742181ded4930842b46e9507372f0b1b963James Dong#define _OMXTYPES_H_
330c1bc742181ded4930842b46e9507372f0b1b963James Dong
340c1bc742181ded4930842b46e9507372f0b1b963James Dong#include <limits.h>
350c1bc742181ded4930842b46e9507372f0b1b963James Dong
360c1bc742181ded4930842b46e9507372f0b1b963James Dong#define OMX_IN
370c1bc742181ded4930842b46e9507372f0b1b963James Dong#define OMX_OUT
380c1bc742181ded4930842b46e9507372f0b1b963James Dong#define OMX_INOUT
390c1bc742181ded4930842b46e9507372f0b1b963James Dong
400c1bc742181ded4930842b46e9507372f0b1b963James Dong
410c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef enum {
420c1bc742181ded4930842b46e9507372f0b1b963James Dong
430c1bc742181ded4930842b46e9507372f0b1b963James Dong    /* Mandatory return codes - use cases are explicitly described for each function */
440c1bc742181ded4930842b46e9507372f0b1b963James Dong    OMX_Sts_NoErr                    =  0,    /* No error, the function completed successfully */
450c1bc742181ded4930842b46e9507372f0b1b963James Dong    OMX_Sts_Err                      = -2,    /* Unknown/unspecified error */
460c1bc742181ded4930842b46e9507372f0b1b963James Dong    OMX_Sts_InvalidBitstreamValErr   = -182,  /* Invalid value detected during bitstream processing */
470c1bc742181ded4930842b46e9507372f0b1b963James Dong    OMX_Sts_MemAllocErr              = -9,    /* Not enough memory allocated for the operation */
480c1bc742181ded4930842b46e9507372f0b1b963James Dong    OMX_StsACAAC_GainCtrErr    	     = -159,  /* AAC: Unsupported gain control data detected */
490c1bc742181ded4930842b46e9507372f0b1b963James Dong    OMX_StsACAAC_PrgNumErr           = -167,  /* AAC: Invalid number of elements for one program   */
500c1bc742181ded4930842b46e9507372f0b1b963James Dong    OMX_StsACAAC_CoefValErr          = -163,  /* AAC: Invalid quantized coefficient value          */
510c1bc742181ded4930842b46e9507372f0b1b963James Dong    OMX_StsACAAC_MaxSfbErr           = -162,  /* AAC: Invalid maxSfb value in relation to numSwb */
520c1bc742181ded4930842b46e9507372f0b1b963James Dong	OMX_StsACAAC_PlsDataErr		     = -160,  /* AAC: pulse escape sequence data error */
530c1bc742181ded4930842b46e9507372f0b1b963James Dong
540c1bc742181ded4930842b46e9507372f0b1b963James Dong    /* Optional return codes - use cases are explicitly described for each function*/
550c1bc742181ded4930842b46e9507372f0b1b963James Dong    OMX_Sts_BadArgErr                = -5,    /* Bad Arguments */
560c1bc742181ded4930842b46e9507372f0b1b963James Dong
570c1bc742181ded4930842b46e9507372f0b1b963James Dong    OMX_StsACAAC_TnsNumFiltErr       = -157,  /* AAC: Invalid number of TNS filters  */
580c1bc742181ded4930842b46e9507372f0b1b963James Dong    OMX_StsACAAC_TnsLenErr           = -156,  /* AAC: Invalid TNS region length  */
590c1bc742181ded4930842b46e9507372f0b1b963James Dong    OMX_StsACAAC_TnsOrderErr         = -155,  /* AAC: Invalid order of TNS filter  */
600c1bc742181ded4930842b46e9507372f0b1b963James Dong    OMX_StsACAAC_TnsCoefResErr       = -154,  /* AAC: Invalid bit-resolution for TNS filter coefficients  */
610c1bc742181ded4930842b46e9507372f0b1b963James Dong    OMX_StsACAAC_TnsCoefErr          = -153,  /* AAC: Invalid TNS filter coefficients  */
620c1bc742181ded4930842b46e9507372f0b1b963James Dong    OMX_StsACAAC_TnsDirectErr        = -152,  /* AAC: Invalid TNS filter direction  */
630c1bc742181ded4930842b46e9507372f0b1b963James Dong
640c1bc742181ded4930842b46e9507372f0b1b963James Dong    OMX_StsICJP_JPEGMarkerErr        = -183,  /* JPEG marker encountered within an entropy-coded block; */
650c1bc742181ded4930842b46e9507372f0b1b963James Dong                                              /* Huffman decoding operation terminated early.           */
660c1bc742181ded4930842b46e9507372f0b1b963James Dong    OMX_StsICJP_JPEGMarker           = -181,  /* JPEG marker encountered; Huffman decoding */
670c1bc742181ded4930842b46e9507372f0b1b963James Dong                                              /* operation terminated early.                         */
680c1bc742181ded4930842b46e9507372f0b1b963James Dong    OMX_StsIPPP_ContextMatchErr      = -17,   /* Context parameter doesn't match to the operation */
690c1bc742181ded4930842b46e9507372f0b1b963James Dong
700c1bc742181ded4930842b46e9507372f0b1b963James Dong    OMX_StsSP_EvenMedianMaskSizeErr  = -180,  /* Even size of the Median Filter mask was replaced by the odd one */
710c1bc742181ded4930842b46e9507372f0b1b963James Dong
720c1bc742181ded4930842b46e9507372f0b1b963James Dong    OMX_Sts_MaximumEnumeration       = INT_MAX  /*Placeholder, forces enum of size OMX_INT*/
730c1bc742181ded4930842b46e9507372f0b1b963James Dong
740c1bc742181ded4930842b46e9507372f0b1b963James Dong } OMXResult;          /** Return value or error value returned from a function. Identical to OMX_INT */
750c1bc742181ded4930842b46e9507372f0b1b963James Dong
760c1bc742181ded4930842b46e9507372f0b1b963James Dong
770c1bc742181ded4930842b46e9507372f0b1b963James Dong/* OMX_U8 */
780c1bc742181ded4930842b46e9507372f0b1b963James Dong#if UCHAR_MAX == 0xff
790c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef unsigned char OMX_U8;
800c1bc742181ded4930842b46e9507372f0b1b963James Dong#elif USHRT_MAX == 0xff
810c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef unsigned short int OMX_U8;
820c1bc742181ded4930842b46e9507372f0b1b963James Dong#else
830c1bc742181ded4930842b46e9507372f0b1b963James Dong#error OMX_U8 undefined
840c1bc742181ded4930842b46e9507372f0b1b963James Dong#endif
850c1bc742181ded4930842b46e9507372f0b1b963James Dong
860c1bc742181ded4930842b46e9507372f0b1b963James Dong
870c1bc742181ded4930842b46e9507372f0b1b963James Dong/* OMX_S8 */
880c1bc742181ded4930842b46e9507372f0b1b963James Dong#if SCHAR_MAX == 0x7f
890c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef signed char OMX_S8;
900c1bc742181ded4930842b46e9507372f0b1b963James Dong#elif SHRT_MAX == 0x7f
910c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef signed short int OMX_S8;
920c1bc742181ded4930842b46e9507372f0b1b963James Dong#else
930c1bc742181ded4930842b46e9507372f0b1b963James Dong#error OMX_S8 undefined
940c1bc742181ded4930842b46e9507372f0b1b963James Dong#endif
950c1bc742181ded4930842b46e9507372f0b1b963James Dong
960c1bc742181ded4930842b46e9507372f0b1b963James Dong
970c1bc742181ded4930842b46e9507372f0b1b963James Dong/* OMX_U16 */
980c1bc742181ded4930842b46e9507372f0b1b963James Dong#if USHRT_MAX == 0xffff
990c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef unsigned short int OMX_U16;
1000c1bc742181ded4930842b46e9507372f0b1b963James Dong#elif UINT_MAX == 0xffff
1010c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef unsigned int OMX_U16;
1020c1bc742181ded4930842b46e9507372f0b1b963James Dong#else
1030c1bc742181ded4930842b46e9507372f0b1b963James Dong#error OMX_U16 undefined
1040c1bc742181ded4930842b46e9507372f0b1b963James Dong#endif
1050c1bc742181ded4930842b46e9507372f0b1b963James Dong
1060c1bc742181ded4930842b46e9507372f0b1b963James Dong
1070c1bc742181ded4930842b46e9507372f0b1b963James Dong/* OMX_S16 */
1080c1bc742181ded4930842b46e9507372f0b1b963James Dong#if SHRT_MAX == 0x7fff
1090c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef signed short int OMX_S16;
1100c1bc742181ded4930842b46e9507372f0b1b963James Dong#elif INT_MAX == 0x7fff
1110c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef signed int OMX_S16;
1120c1bc742181ded4930842b46e9507372f0b1b963James Dong#else
1130c1bc742181ded4930842b46e9507372f0b1b963James Dong#error OMX_S16 undefined
1140c1bc742181ded4930842b46e9507372f0b1b963James Dong#endif
1150c1bc742181ded4930842b46e9507372f0b1b963James Dong
1160c1bc742181ded4930842b46e9507372f0b1b963James Dong
1170c1bc742181ded4930842b46e9507372f0b1b963James Dong/* OMX_U32 */
1180c1bc742181ded4930842b46e9507372f0b1b963James Dong#if UINT_MAX == 0xffffffff
1190c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef unsigned int OMX_U32;
1200c1bc742181ded4930842b46e9507372f0b1b963James Dong#elif LONG_MAX == 0xffffffff
1210c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef unsigned long int OMX_U32;
1220c1bc742181ded4930842b46e9507372f0b1b963James Dong#else
1230c1bc742181ded4930842b46e9507372f0b1b963James Dong#error OMX_U32 undefined
1240c1bc742181ded4930842b46e9507372f0b1b963James Dong#endif
1250c1bc742181ded4930842b46e9507372f0b1b963James Dong
1260c1bc742181ded4930842b46e9507372f0b1b963James Dong
1270c1bc742181ded4930842b46e9507372f0b1b963James Dong/* OMX_S32 */
1280c1bc742181ded4930842b46e9507372f0b1b963James Dong#if INT_MAX == 0x7fffffff
1290c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef signed int OMX_S32;
1300c1bc742181ded4930842b46e9507372f0b1b963James Dong#elif LONG_MAX == 0x7fffffff
1310c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef long signed int OMX_S32;
1320c1bc742181ded4930842b46e9507372f0b1b963James Dong#else
1330c1bc742181ded4930842b46e9507372f0b1b963James Dong#error OMX_S32 undefined
1340c1bc742181ded4930842b46e9507372f0b1b963James Dong#endif
1350c1bc742181ded4930842b46e9507372f0b1b963James Dong
1360c1bc742181ded4930842b46e9507372f0b1b963James Dong
1370c1bc742181ded4930842b46e9507372f0b1b963James Dong/* OMX_U64 & OMX_S64 */
1380c1bc742181ded4930842b46e9507372f0b1b963James Dong#if defined( _WIN32 ) || defined ( _WIN64 )
1390c1bc742181ded4930842b46e9507372f0b1b963James Dong    typedef __int64 OMX_S64; /** Signed 64-bit integer */
1400c1bc742181ded4930842b46e9507372f0b1b963James Dong    typedef unsigned __int64 OMX_U64; /** Unsigned 64-bit integer */
1410c1bc742181ded4930842b46e9507372f0b1b963James Dong    #define OMX_MIN_S64			(0x8000000000000000i64)
1420c1bc742181ded4930842b46e9507372f0b1b963James Dong    #define OMX_MIN_U64			(0x0000000000000000i64)
1430c1bc742181ded4930842b46e9507372f0b1b963James Dong    #define OMX_MAX_S64			(0x7FFFFFFFFFFFFFFFi64)
1440c1bc742181ded4930842b46e9507372f0b1b963James Dong    #define OMX_MAX_U64			(0xFFFFFFFFFFFFFFFFi64)
1450c1bc742181ded4930842b46e9507372f0b1b963James Dong#else
1460c1bc742181ded4930842b46e9507372f0b1b963James Dong    typedef long long OMX_S64; /** Signed 64-bit integer */
1470c1bc742181ded4930842b46e9507372f0b1b963James Dong    typedef unsigned long long OMX_U64; /** Unsigned 64-bit integer */
1480c1bc742181ded4930842b46e9507372f0b1b963James Dong    #define OMX_MIN_S64			(0x8000000000000000LL)
1490c1bc742181ded4930842b46e9507372f0b1b963James Dong    #define OMX_MIN_U64			(0x0000000000000000LL)
1500c1bc742181ded4930842b46e9507372f0b1b963James Dong    #define OMX_MAX_S64			(0x7FFFFFFFFFFFFFFFLL)
1510c1bc742181ded4930842b46e9507372f0b1b963James Dong    #define OMX_MAX_U64			(0xFFFFFFFFFFFFFFFFLL)
1520c1bc742181ded4930842b46e9507372f0b1b963James Dong#endif
1530c1bc742181ded4930842b46e9507372f0b1b963James Dong
1540c1bc742181ded4930842b46e9507372f0b1b963James Dong
1550c1bc742181ded4930842b46e9507372f0b1b963James Dong/* OMX_SC8 */
1560c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef struct
1570c1bc742181ded4930842b46e9507372f0b1b963James Dong{
1580c1bc742181ded4930842b46e9507372f0b1b963James Dong  OMX_S8 Re; /** Real part */
1590c1bc742181ded4930842b46e9507372f0b1b963James Dong  OMX_S8 Im; /** Imaginary part */
1600c1bc742181ded4930842b46e9507372f0b1b963James Dong
1610c1bc742181ded4930842b46e9507372f0b1b963James Dong} OMX_SC8; /** Signed 8-bit complex number */
1620c1bc742181ded4930842b46e9507372f0b1b963James Dong
1630c1bc742181ded4930842b46e9507372f0b1b963James Dong
1640c1bc742181ded4930842b46e9507372f0b1b963James Dong/* OMX_SC16 */
1650c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef struct
1660c1bc742181ded4930842b46e9507372f0b1b963James Dong{
1670c1bc742181ded4930842b46e9507372f0b1b963James Dong  OMX_S16 Re; /** Real part */
1680c1bc742181ded4930842b46e9507372f0b1b963James Dong  OMX_S16 Im; /** Imaginary part */
1690c1bc742181ded4930842b46e9507372f0b1b963James Dong
1700c1bc742181ded4930842b46e9507372f0b1b963James Dong} OMX_SC16; /** Signed 16-bit complex number */
1710c1bc742181ded4930842b46e9507372f0b1b963James Dong
1720c1bc742181ded4930842b46e9507372f0b1b963James Dong
1730c1bc742181ded4930842b46e9507372f0b1b963James Dong/* OMX_SC32 */
1740c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef struct
1750c1bc742181ded4930842b46e9507372f0b1b963James Dong{
1760c1bc742181ded4930842b46e9507372f0b1b963James Dong  OMX_S32 Re; /** Real part */
1770c1bc742181ded4930842b46e9507372f0b1b963James Dong  OMX_S32 Im; /** Imaginary part */
1780c1bc742181ded4930842b46e9507372f0b1b963James Dong
1790c1bc742181ded4930842b46e9507372f0b1b963James Dong} OMX_SC32; /** Signed 32-bit complex number */
1800c1bc742181ded4930842b46e9507372f0b1b963James Dong
1810c1bc742181ded4930842b46e9507372f0b1b963James Dong
1820c1bc742181ded4930842b46e9507372f0b1b963James Dong/* OMX_SC64 */
1830c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef struct
1840c1bc742181ded4930842b46e9507372f0b1b963James Dong{
1850c1bc742181ded4930842b46e9507372f0b1b963James Dong  OMX_S64 Re; /** Real part */
1860c1bc742181ded4930842b46e9507372f0b1b963James Dong  OMX_S64 Im; /** Imaginary part */
1870c1bc742181ded4930842b46e9507372f0b1b963James Dong
1880c1bc742181ded4930842b46e9507372f0b1b963James Dong} OMX_SC64; /** Signed 64-bit complex number */
1890c1bc742181ded4930842b46e9507372f0b1b963James Dong
1900c1bc742181ded4930842b46e9507372f0b1b963James Dong
1910c1bc742181ded4930842b46e9507372f0b1b963James Dong/* OMX_F32 */
1920c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef float OMX_F32; /** Single precision floating point,IEEE 754 */
1930c1bc742181ded4930842b46e9507372f0b1b963James Dong
1940c1bc742181ded4930842b46e9507372f0b1b963James Dong
1950c1bc742181ded4930842b46e9507372f0b1b963James Dong/* OMX_F64 */
1960c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef double OMX_F64; /** Double precision floating point,IEEE 754 */
1970c1bc742181ded4930842b46e9507372f0b1b963James Dong
1980c1bc742181ded4930842b46e9507372f0b1b963James Dong
1990c1bc742181ded4930842b46e9507372f0b1b963James Dong/* OMX_INT */
2000c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef int OMX_INT; /** signed integer corresponding to machine word length, has maximum signed value INT_MAX*/
2010c1bc742181ded4930842b46e9507372f0b1b963James Dong
2020c1bc742181ded4930842b46e9507372f0b1b963James Dong
2030c1bc742181ded4930842b46e9507372f0b1b963James Dong#define OMX_MIN_S8  	   	(-128)
2040c1bc742181ded4930842b46e9507372f0b1b963James Dong#define OMX_MIN_U8  		0
2050c1bc742181ded4930842b46e9507372f0b1b963James Dong#define OMX_MIN_S16		 	(-32768)
2060c1bc742181ded4930842b46e9507372f0b1b963James Dong#define OMX_MIN_U16			0
2070c1bc742181ded4930842b46e9507372f0b1b963James Dong#define OMX_MIN_S32			(-2147483647-1)
2080c1bc742181ded4930842b46e9507372f0b1b963James Dong#define OMX_MIN_U32			0
2090c1bc742181ded4930842b46e9507372f0b1b963James Dong
2100c1bc742181ded4930842b46e9507372f0b1b963James Dong#define OMX_MAX_S8			(127)
2110c1bc742181ded4930842b46e9507372f0b1b963James Dong#define OMX_MAX_U8			(255)
2120c1bc742181ded4930842b46e9507372f0b1b963James Dong#define OMX_MAX_S16			(32767)
2130c1bc742181ded4930842b46e9507372f0b1b963James Dong#define OMX_MAX_U16			(0xFFFF)
2140c1bc742181ded4930842b46e9507372f0b1b963James Dong#define OMX_MAX_S32			(2147483647)
2150c1bc742181ded4930842b46e9507372f0b1b963James Dong#define OMX_MAX_U32			(0xFFFFFFFF)
2160c1bc742181ded4930842b46e9507372f0b1b963James Dong
2170c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef void OMXVoid;
2180c1bc742181ded4930842b46e9507372f0b1b963James Dong
2190c1bc742181ded4930842b46e9507372f0b1b963James Dong#ifndef NULL
2200c1bc742181ded4930842b46e9507372f0b1b963James Dong#define NULL ((void*)0)
2210c1bc742181ded4930842b46e9507372f0b1b963James Dong#endif
2220c1bc742181ded4930842b46e9507372f0b1b963James Dong
2230c1bc742181ded4930842b46e9507372f0b1b963James Dong/** Defines the geometric position and size of a rectangle,
2240c1bc742181ded4930842b46e9507372f0b1b963James Dong  * where x,y defines the coordinates of the top left corner
2250c1bc742181ded4930842b46e9507372f0b1b963James Dong  * of the rectangle, with dimensions width in the x-direction
2260c1bc742181ded4930842b46e9507372f0b1b963James Dong  * and height in the y-direction */
2270c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef struct {
2280c1bc742181ded4930842b46e9507372f0b1b963James Dong	OMX_INT x;      /** x-coordinate of top left corner of rectangle */
2290c1bc742181ded4930842b46e9507372f0b1b963James Dong	OMX_INT y;      /** y-coordinate of top left corner of rectangle */
2300c1bc742181ded4930842b46e9507372f0b1b963James Dong	OMX_INT width;  /** Width in the x-direction. */
2310c1bc742181ded4930842b46e9507372f0b1b963James Dong	OMX_INT height; /** Height in the y-direction. */
2320c1bc742181ded4930842b46e9507372f0b1b963James Dong}OMXRect;
2330c1bc742181ded4930842b46e9507372f0b1b963James Dong
2340c1bc742181ded4930842b46e9507372f0b1b963James Dong
2350c1bc742181ded4930842b46e9507372f0b1b963James Dong/** Defines the geometric position of a point, */
2360c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef struct
2370c1bc742181ded4930842b46e9507372f0b1b963James Dong{
2380c1bc742181ded4930842b46e9507372f0b1b963James Dong OMX_INT x; /** x-coordinate */
2390c1bc742181ded4930842b46e9507372f0b1b963James Dong OMX_INT y;	/** y-coordinate */
2400c1bc742181ded4930842b46e9507372f0b1b963James Dong
2410c1bc742181ded4930842b46e9507372f0b1b963James Dong} OMXPoint;
2420c1bc742181ded4930842b46e9507372f0b1b963James Dong
2430c1bc742181ded4930842b46e9507372f0b1b963James Dong
2440c1bc742181ded4930842b46e9507372f0b1b963James Dong/** Defines the dimensions of a rectangle, or region of interest in an image */
2450c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef struct
2460c1bc742181ded4930842b46e9507372f0b1b963James Dong{
2470c1bc742181ded4930842b46e9507372f0b1b963James Dong OMX_INT width;  /** Width of the rectangle, in the x-direction */
2480c1bc742181ded4930842b46e9507372f0b1b963James Dong OMX_INT height; /** Height of the rectangle, in the y-direction */
2490c1bc742181ded4930842b46e9507372f0b1b963James Dong
2500c1bc742181ded4930842b46e9507372f0b1b963James Dong} OMXSize;
2510c1bc742181ded4930842b46e9507372f0b1b963James Dong
2520c1bc742181ded4930842b46e9507372f0b1b963James Dong#endif /* _OMXTYPES_H_ */
253