123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921 |
- /**
- * Copyright (c) 2008 The Khronos Group Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject
- * to the following conditions:
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- */
- /**
- * @file OMX_IVCommon.h - OpenMax IL version 1.1.2
- * The structures needed by Video and Image components to exchange
- * parameters and configuration data with the components.
- */
- #ifndef OMX_IVCommon_h
- #define OMX_IVCommon_h
- #ifdef __cplusplus
- extern "C" {
- #endif /* __cplusplus */
- /**
- * Each OMX header must include all required header files to allow the header
- * to compile without errors. The includes below are required for this header
- * file to compile successfully
- */
- #include <OMX_Core.h>
- /** @defgroup iv OpenMAX IL Imaging and Video Domain
- * Common structures for OpenMAX IL Imaging and Video domains
- * @{
- */
- /**
- * Enumeration defining possible uncompressed image/video formats.
- *
- * ENUMS:
- * Unused : Placeholder value when format is N/A
- * Monochrome : black and white
- * 8bitRGB332 : Red 7:5, Green 4:2, Blue 1:0
- * 12bitRGB444 : Red 11:8, Green 7:4, Blue 3:0
- * 16bitARGB4444 : Alpha 15:12, Red 11:8, Green 7:4, Blue 3:0
- * 16bitARGB1555 : Alpha 15, Red 14:10, Green 9:5, Blue 4:0
- * 16bitRGB565 : Red 15:11, Green 10:5, Blue 4:0
- * 16bitBGR565 : Blue 15:11, Green 10:5, Red 4:0
- * 18bitRGB666 : Red 17:12, Green 11:6, Blue 5:0
- * 18bitARGB1665 : Alpha 17, Red 16:11, Green 10:5, Blue 4:0
- * 19bitARGB1666 : Alpha 18, Red 17:12, Green 11:6, Blue 5:0
- * 24bitRGB888 : Red 24:16, Green 15:8, Blue 7:0
- * 24bitBGR888 : Blue 24:16, Green 15:8, Red 7:0
- * 24bitARGB1887 : Alpha 23, Red 22:15, Green 14:7, Blue 6:0
- * 25bitARGB1888 : Alpha 24, Red 23:16, Green 15:8, Blue 7:0
- * 32bitBGRA8888 : Blue 31:24, Green 23:16, Red 15:8, Alpha 7:0
- * 32bitARGB8888 : Alpha 31:24, Red 23:16, Green 15:8, Blue 7:0
- * YUV411Planar : U,Y are subsampled by a factor of 4 horizontally
- * YUV411PackedPlanar : packed per payload in planar slices
- * YUV420Planar : Three arrays Y,U,V.
- * YUV420PackedPlanar : packed per payload in planar slices
- * YUV420SemiPlanar : Two arrays, one is all Y, the other is U and V
- * YUV422Planar : Three arrays Y,U,V.
- * YUV422PackedPlanar : packed per payload in planar slices
- * YUV422SemiPlanar : Two arrays, one is all Y, the other is U and V
- * YCbYCr : Organized as 16bit YUYV (i.e. YCbYCr)
- * YCrYCb : Organized as 16bit YVYU (i.e. YCrYCb)
- * CbYCrY : Organized as 16bit UYVY (i.e. CbYCrY)
- * CrYCbY : Organized as 16bit VYUY (i.e. CrYCbY)
- * YUV444Interleaved : Each pixel contains equal parts YUV
- * RawBayer8bit : SMIA camera output format
- * RawBayer10bit : SMIA camera output format
- * RawBayer8bitcompressed : SMIA camera output format
- */
- typedef enum OMX_COLOR_FORMATTYPE {
- OMX_COLOR_FormatUnused,
- OMX_COLOR_FormatMonochrome,
- OMX_COLOR_Format8bitRGB332,
- OMX_COLOR_Format12bitRGB444,
- OMX_COLOR_Format16bitARGB4444,
- OMX_COLOR_Format16bitARGB1555,
- OMX_COLOR_Format16bitRGB565,
- OMX_COLOR_Format16bitBGR565,
- OMX_COLOR_Format18bitRGB666,
- OMX_COLOR_Format18bitARGB1665,
- OMX_COLOR_Format19bitARGB1666,
- OMX_COLOR_Format24bitRGB888,
- OMX_COLOR_Format24bitBGR888,
- OMX_COLOR_Format24bitARGB1887,
- OMX_COLOR_Format25bitARGB1888,
- OMX_COLOR_Format32bitBGRA8888,
- OMX_COLOR_Format32bitARGB8888,
- OMX_COLOR_FormatYUV411Planar,
- OMX_COLOR_FormatYUV411PackedPlanar,
- OMX_COLOR_FormatYUV420Planar,
- OMX_COLOR_FormatYUV420PackedPlanar,
- OMX_COLOR_FormatYUV420SemiPlanar,
- OMX_COLOR_FormatYUV422Planar,
- OMX_COLOR_FormatYUV422PackedPlanar,
- OMX_COLOR_FormatYUV422SemiPlanar,
- OMX_COLOR_FormatYCbYCr,
- OMX_COLOR_FormatYCrYCb,
- OMX_COLOR_FormatCbYCrY,
- OMX_COLOR_FormatCrYCbY,
- OMX_COLOR_FormatYUV444Interleaved,
- OMX_COLOR_FormatRawBayer8bit,
- OMX_COLOR_FormatRawBayer10bit,
- OMX_COLOR_FormatRawBayer8bitcompressed,
- OMX_COLOR_FormatL2,
- OMX_COLOR_FormatL4,
- OMX_COLOR_FormatL8,
- OMX_COLOR_FormatL16,
- OMX_COLOR_FormatL24,
- OMX_COLOR_FormatL32,
- OMX_COLOR_FormatYUV420PackedSemiPlanar,
- OMX_COLOR_FormatYUV422PackedSemiPlanar,
- OMX_COLOR_Format18BitBGR666,
- OMX_COLOR_Format24BitARGB6666,
- OMX_COLOR_Format24BitABGR6666,
- OMX_COLOR_FormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_COLOR_FormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_COLOR_FormatMax = 0x7FFFFFFF
- } OMX_COLOR_FORMATTYPE;
- /**
- * Defines the matrix for conversion from RGB to YUV or vice versa.
- * iColorMatrix should be initialized with the fixed point values
- * used in converting between formats.
- */
- typedef struct OMX_CONFIG_COLORCONVERSIONTYPE {
- OMX_U32 nSize; /**< Size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version info */
- OMX_U32 nPortIndex; /**< Port that this struct applies to */
- OMX_S32 xColorMatrix[3][3]; /**< Stored in signed Q16 format */
- OMX_S32 xColorOffset[4]; /**< Stored in signed Q16 format */
- }OMX_CONFIG_COLORCONVERSIONTYPE;
- /**
- * Structure defining percent to scale each frame dimension. For example:
- * To make the width 50% larger, use fWidth = 1.5 and to make the width
- * 1/2 the original size, use fWidth = 0.5
- */
- typedef struct OMX_CONFIG_SCALEFACTORTYPE {
- OMX_U32 nSize; /**< Size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version info */
- OMX_U32 nPortIndex; /**< Port that this struct applies to */
- OMX_S32 xWidth; /**< Fixed point value stored as Q16 */
- OMX_S32 xHeight; /**< Fixed point value stored as Q16 */
- }OMX_CONFIG_SCALEFACTORTYPE;
- /**
- * Enumeration of possible image filter types
- */
- typedef enum OMX_IMAGEFILTERTYPE {
- OMX_ImageFilterNone,
- OMX_ImageFilterNoise,
- OMX_ImageFilterEmboss,
- OMX_ImageFilterNegative,
- OMX_ImageFilterSketch,
- OMX_ImageFilterOilPaint,
- OMX_ImageFilterHatch,
- OMX_ImageFilterGpen,
- OMX_ImageFilterAntialias,
- OMX_ImageFilterDeRing,
- OMX_ImageFilterSolarize,
- OMX_ImageFilterKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_ImageFilterVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_ImageFilterMax = 0x7FFFFFFF
- } OMX_IMAGEFILTERTYPE;
- /**
- * Image filter configuration
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * eImageFilter : Image filter type enumeration
- */
- typedef struct OMX_CONFIG_IMAGEFILTERTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_IMAGEFILTERTYPE eImageFilter;
- } OMX_CONFIG_IMAGEFILTERTYPE;
- /**
- * Customized U and V for color enhancement
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * bColorEnhancement : Enable/disable color enhancement
- * nCustomizedU : Practical values: 16-240, range: 0-255, value set for
- * U component
- * nCustomizedV : Practical values: 16-240, range: 0-255, value set for
- * V component
- */
- typedef struct OMX_CONFIG_COLORENHANCEMENTTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_BOOL bColorEnhancement;
- OMX_U8 nCustomizedU;
- OMX_U8 nCustomizedV;
- } OMX_CONFIG_COLORENHANCEMENTTYPE;
- /**
- * Define color key and color key mask
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nARGBColor : 32bit Alpha, Red, Green, Blue Color
- * nARGBMask : 32bit Mask for Alpha, Red, Green, Blue channels
- */
- typedef struct OMX_CONFIG_COLORKEYTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nARGBColor;
- OMX_U32 nARGBMask;
- } OMX_CONFIG_COLORKEYTYPE;
- /**
- * List of color blend types for pre/post processing
- *
- * ENUMS:
- * None : No color blending present
- * AlphaConstant : Function is (alpha_constant * src) +
- * (1 - alpha_constant) * dst)
- * AlphaPerPixel : Function is (alpha * src) + (1 - alpha) * dst)
- * Alternate : Function is alternating pixels from src and dst
- * And : Function is (src & dst)
- * Or : Function is (src | dst)
- * Invert : Function is ~src
- */
- typedef enum OMX_COLORBLENDTYPE {
- OMX_ColorBlendNone,
- OMX_ColorBlendAlphaConstant,
- OMX_ColorBlendAlphaPerPixel,
- OMX_ColorBlendAlternate,
- OMX_ColorBlendAnd,
- OMX_ColorBlendOr,
- OMX_ColorBlendInvert,
- OMX_ColorBlendKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_ColorBlendVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_ColorBlendMax = 0x7FFFFFFF
- } OMX_COLORBLENDTYPE;
- /**
- * Color blend configuration
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nRGBAlphaConstant : Constant global alpha values when global alpha is used
- * eColorBlend : Color blend type enumeration
- */
- typedef struct OMX_CONFIG_COLORBLENDTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nRGBAlphaConstant;
- OMX_COLORBLENDTYPE eColorBlend;
- } OMX_CONFIG_COLORBLENDTYPE;
- /**
- * Hold frame dimension
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nWidth : Frame width in pixels
- * nHeight : Frame height in pixels
- */
- typedef struct OMX_FRAMESIZETYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nWidth;
- OMX_U32 nHeight;
- } OMX_FRAMESIZETYPE;
- /**
- * Rotation configuration
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nRotation : +/- integer rotation value
- */
- typedef struct OMX_CONFIG_ROTATIONTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_S32 nRotation;
- } OMX_CONFIG_ROTATIONTYPE;
- /**
- * Possible mirroring directions for pre/post processing
- *
- * ENUMS:
- * None : No mirroring
- * Vertical : Vertical mirroring, flip on X axis
- * Horizontal : Horizontal mirroring, flip on Y axis
- * Both : Both vertical and horizontal mirroring
- */
- typedef enum OMX_MIRRORTYPE {
- OMX_MirrorNone = 0,
- OMX_MirrorVertical,
- OMX_MirrorHorizontal,
- OMX_MirrorBoth,
- OMX_MirrorKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_MirrorVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_MirrorMax = 0x7FFFFFFF
- } OMX_MIRRORTYPE;
- /**
- * Mirroring configuration
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * eMirror : Mirror type enumeration
- */
- typedef struct OMX_CONFIG_MIRRORTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_MIRRORTYPE eMirror;
- } OMX_CONFIG_MIRRORTYPE;
- /**
- * Position information only
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nX : X coordinate for the point
- * nY : Y coordinate for the point
- */
- typedef struct OMX_CONFIG_POINTTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_S32 nX;
- OMX_S32 nY;
- } OMX_CONFIG_POINTTYPE;
- /**
- * Frame size plus position
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nLeft : X Coordinate of the top left corner of the rectangle
- * nTop : Y Coordinate of the top left corner of the rectangle
- * nWidth : Width of the rectangle
- * nHeight : Height of the rectangle
- */
- typedef struct OMX_CONFIG_RECTTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_S32 nLeft;
- OMX_S32 nTop;
- OMX_U32 nWidth;
- OMX_U32 nHeight;
- } OMX_CONFIG_RECTTYPE;
- /**
- * Deblocking state; it is required to be set up before starting the codec
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * bDeblocking : Enable/disable deblocking mode
- */
- typedef struct OMX_PARAM_DEBLOCKINGTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_BOOL bDeblocking;
- } OMX_PARAM_DEBLOCKINGTYPE;
- /**
- * Stabilization state
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * bStab : Enable/disable frame stabilization state
- */
- typedef struct OMX_CONFIG_FRAMESTABTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_BOOL bStab;
- } OMX_CONFIG_FRAMESTABTYPE;
- /**
- * White Balance control type
- *
- * STRUCT MEMBERS:
- * SunLight : Referenced in JSR-234
- * Flash : Optimal for device's integrated flash
- */
- typedef enum OMX_WHITEBALCONTROLTYPE {
- OMX_WhiteBalControlOff = 0,
- OMX_WhiteBalControlAuto,
- OMX_WhiteBalControlSunLight,
- OMX_WhiteBalControlCloudy,
- OMX_WhiteBalControlShade,
- OMX_WhiteBalControlTungsten,
- OMX_WhiteBalControlFluorescent,
- OMX_WhiteBalControlIncandescent,
- OMX_WhiteBalControlFlash,
- OMX_WhiteBalControlHorizon,
- OMX_WhiteBalControlKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_WhiteBalControlVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_WhiteBalControlMax = 0x7FFFFFFF
- } OMX_WHITEBALCONTROLTYPE;
- /**
- * White Balance control configuration
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * eWhiteBalControl : White balance enumeration
- */
- typedef struct OMX_CONFIG_WHITEBALCONTROLTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_WHITEBALCONTROLTYPE eWhiteBalControl;
- } OMX_CONFIG_WHITEBALCONTROLTYPE;
- /**
- * Exposure control type
- */
- typedef enum OMX_EXPOSURECONTROLTYPE {
- OMX_ExposureControlOff = 0,
- OMX_ExposureControlAuto,
- OMX_ExposureControlNight,
- OMX_ExposureControlBackLight,
- OMX_ExposureControlSpotLight,
- OMX_ExposureControlSports,
- OMX_ExposureControlSnow,
- OMX_ExposureControlBeach,
- OMX_ExposureControlLargeAperture,
- OMX_ExposureControlSmallApperture,
- OMX_ExposureControlKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_ExposureControlVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_ExposureControlMax = 0x7FFFFFFF
- } OMX_EXPOSURECONTROLTYPE;
- /**
- * White Balance control configuration
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * eExposureControl : Exposure control enumeration
- */
- typedef struct OMX_CONFIG_EXPOSURECONTROLTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_EXPOSURECONTROLTYPE eExposureControl;
- } OMX_CONFIG_EXPOSURECONTROLTYPE;
- /**
- * Defines sensor supported mode.
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nFrameRate : Single shot mode is indicated by a 0
- * bOneShot : Enable for single shot, disable for streaming
- * sFrameSize : Framesize
- */
- typedef struct OMX_PARAM_SENSORMODETYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nFrameRate;
- OMX_BOOL bOneShot;
- OMX_FRAMESIZETYPE sFrameSize;
- } OMX_PARAM_SENSORMODETYPE;
- /**
- * Defines contrast level
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nContrast : Values allowed for contrast -100 to 100, zero means no change
- */
- typedef struct OMX_CONFIG_CONTRASTTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_S32 nContrast;
- } OMX_CONFIG_CONTRASTTYPE;
- /**
- * Defines brightness level
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nBrightness : 0-100%
- */
- typedef struct OMX_CONFIG_BRIGHTNESSTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nBrightness;
- } OMX_CONFIG_BRIGHTNESSTYPE;
- /**
- * Defines backlight level configuration for a video sink, e.g. LCD panel
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nBacklight : Values allowed for backlight 0-100%
- * nTimeout : Number of milliseconds before backlight automatically turns
- * off. A value of 0x0 disables backight timeout
- */
- typedef struct OMX_CONFIG_BACKLIGHTTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nBacklight;
- OMX_U32 nTimeout;
- } OMX_CONFIG_BACKLIGHTTYPE;
- /**
- * Defines setting for Gamma
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nGamma : Values allowed for gamma -100 to 100, zero means no change
- */
- typedef struct OMX_CONFIG_GAMMATYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_S32 nGamma;
- } OMX_CONFIG_GAMMATYPE;
- /**
- * Define for setting saturation
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nSaturation : Values allowed for saturation -100 to 100, zero means
- * no change
- */
- typedef struct OMX_CONFIG_SATURATIONTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_S32 nSaturation;
- } OMX_CONFIG_SATURATIONTYPE;
- /**
- * Define for setting Lightness
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nLightness : Values allowed for lightness -100 to 100, zero means no
- * change
- */
- typedef struct OMX_CONFIG_LIGHTNESSTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_S32 nLightness;
- } OMX_CONFIG_LIGHTNESSTYPE;
- /**
- * Plane blend configuration
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Index of input port associated with the plane.
- * nDepth : Depth of the plane in relation to the screen. Higher
- * numbered depths are "behind" lower number depths.
- * This number defaults to the Port Index number.
- * nAlpha : Transparency blending component for the entire plane.
- * See blending modes for more detail.
- */
- typedef struct OMX_CONFIG_PLANEBLENDTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nDepth;
- OMX_U32 nAlpha;
- } OMX_CONFIG_PLANEBLENDTYPE;
- /**
- * Define interlace type
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * bEnable : Enable control variable for this functionality
- * (see below)
- * nInterleavePortIndex : Index of input or output port associated with
- * the interleaved plane.
- * pPlanarPortIndexes[4] : Index of input or output planar ports.
- */
- typedef struct OMX_PARAM_INTERLEAVETYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_BOOL bEnable;
- OMX_U32 nInterleavePortIndex;
- } OMX_PARAM_INTERLEAVETYPE;
- /**
- * Defines the picture effect used for an input picture
- */
- typedef enum OMX_TRANSITIONEFFECTTYPE {
- OMX_EffectNone,
- OMX_EffectFadeFromBlack,
- OMX_EffectFadeToBlack,
- OMX_EffectUnspecifiedThroughConstantColor,
- OMX_EffectDissolve,
- OMX_EffectWipe,
- OMX_EffectUnspecifiedMixOfTwoScenes,
- OMX_EffectKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_EffectVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_EffectMax = 0x7FFFFFFF
- } OMX_TRANSITIONEFFECTTYPE;
- /**
- * Structure used to configure current transition effect
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * eEffect : Effect to enable
- */
- typedef struct OMX_CONFIG_TRANSITIONEFFECTTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_TRANSITIONEFFECTTYPE eEffect;
- } OMX_CONFIG_TRANSITIONEFFECTTYPE;
- /**
- * Defines possible data unit types for encoded video data. The data unit
- * types are used both for encoded video input for playback as well as
- * encoded video output from recording.
- */
- typedef enum OMX_DATAUNITTYPE {
- OMX_DataUnitCodedPicture,
- OMX_DataUnitVideoSegment,
- OMX_DataUnitSeveralSegments,
- OMX_DataUnitArbitraryStreamSection,
- OMX_DataUnitKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_DataUnitVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_DataUnitMax = 0x7FFFFFFF
- } OMX_DATAUNITTYPE;
- /**
- * Defines possible encapsulation types for coded video data unit. The
- * encapsulation information is used both for encoded video input for
- * playback as well as encoded video output from recording.
- */
- typedef enum OMX_DATAUNITENCAPSULATIONTYPE {
- OMX_DataEncapsulationElementaryStream,
- OMX_DataEncapsulationGenericPayload,
- OMX_DataEncapsulationRtpPayload,
- OMX_DataEncapsulationKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_DataEncapsulationVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_DataEncapsulationMax = 0x7FFFFFFF
- } OMX_DATAUNITENCAPSULATIONTYPE;
- /**
- * Structure used to configure the type of being decoded/encoded
- */
- typedef struct OMX_PARAM_DATAUNITTYPE {
- OMX_U32 nSize; /**< Size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< Port that this structure applies to */
- OMX_DATAUNITTYPE eUnitType;
- OMX_DATAUNITENCAPSULATIONTYPE eEncapsulationType;
- } OMX_PARAM_DATAUNITTYPE;
- /**
- * Defines dither types
- */
- typedef enum OMX_DITHERTYPE {
- OMX_DitherNone,
- OMX_DitherOrdered,
- OMX_DitherErrorDiffusion,
- OMX_DitherOther,
- OMX_DitherKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_DitherVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_DitherMax = 0x7FFFFFFF
- } OMX_DITHERTYPE;
- /**
- * Structure used to configure current type of dithering
- */
- typedef struct OMX_CONFIG_DITHERTYPE {
- OMX_U32 nSize; /**< Size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< Port that this structure applies to */
- OMX_DITHERTYPE eDither; /**< Type of dithering to use */
- } OMX_CONFIG_DITHERTYPE;
- typedef struct OMX_CONFIG_CAPTUREMODETYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex; /**< Port that this structure applies to */
- OMX_BOOL bContinuous; /**< If true then ignore frame rate and emit capture
- * data as fast as possible (otherwise obey port's frame rate). */
- OMX_BOOL bFrameLimited; /**< If true then terminate capture after the port emits the
- * specified number of frames (otherwise the port does not
- * terminate the capture until instructed to do so by the client).
- * Even if set, the client may manually terminate the capture prior
- * to reaching the limit. */
- OMX_U32 nFrameLimit; /**< Limit on number of frames emitted during a capture (only
- * valid if bFrameLimited is set). */
- } OMX_CONFIG_CAPTUREMODETYPE;
- typedef enum OMX_METERINGTYPE {
-
- OMX_MeteringModeAverage, /**< Center-weighted average metering. */
- OMX_MeteringModeSpot, /**< Spot (partial) metering. */
- OMX_MeteringModeMatrix, /**< Matrix or evaluative metering. */
-
- OMX_MeteringKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_MeteringVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_EVModeMax = 0x7fffffff
- } OMX_METERINGTYPE;
-
- typedef struct OMX_CONFIG_EXPOSUREVALUETYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_METERINGTYPE eMetering;
- OMX_S32 xEVCompensation; /**< Fixed point value stored as Q16 */
- OMX_U32 nApertureFNumber; /**< e.g. nApertureFNumber = 2 implies "f/2" - Q16 format */
- OMX_BOOL bAutoAperture; /**< Whether aperture number is defined automatically */
- OMX_U32 nShutterSpeedMsec; /**< Shutterspeed in milliseconds */
- OMX_BOOL bAutoShutterSpeed; /**< Whether shutter speed is defined automatically */
- OMX_U32 nSensitivity; /**< e.g. nSensitivity = 100 implies "ISO 100" */
- OMX_BOOL bAutoSensitivity; /**< Whether sensitivity is defined automatically */
- } OMX_CONFIG_EXPOSUREVALUETYPE;
- /**
- * Focus region configuration
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * bCenter : Use center region as focus region of interest
- * bLeft : Use left region as focus region of interest
- * bRight : Use right region as focus region of interest
- * bTop : Use top region as focus region of interest
- * bBottom : Use bottom region as focus region of interest
- * bTopLeft : Use top left region as focus region of interest
- * bTopRight : Use top right region as focus region of interest
- * bBottomLeft : Use bottom left region as focus region of interest
- * bBottomRight : Use bottom right region as focus region of interest
- */
- typedef struct OMX_CONFIG_FOCUSREGIONTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_BOOL bCenter;
- OMX_BOOL bLeft;
- OMX_BOOL bRight;
- OMX_BOOL bTop;
- OMX_BOOL bBottom;
- OMX_BOOL bTopLeft;
- OMX_BOOL bTopRight;
- OMX_BOOL bBottomLeft;
- OMX_BOOL bBottomRight;
- } OMX_CONFIG_FOCUSREGIONTYPE;
- /**
- * Focus Status type
- */
- typedef enum OMX_FOCUSSTATUSTYPE {
- OMX_FocusStatusOff = 0,
- OMX_FocusStatusRequest,
- OMX_FocusStatusReached,
- OMX_FocusStatusUnableToReach,
- OMX_FocusStatusLost,
- OMX_FocusStatusKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_FocusStatusVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_FocusStatusMax = 0x7FFFFFFF
- } OMX_FOCUSSTATUSTYPE;
- /**
- * Focus status configuration
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * eFocusStatus : Specifies the focus status
- * bCenterStatus : Use center region as focus region of interest
- * bLeftStatus : Use left region as focus region of interest
- * bRightStatus : Use right region as focus region of interest
- * bTopStatus : Use top region as focus region of interest
- * bBottomStatus : Use bottom region as focus region of interest
- * bTopLeftStatus : Use top left region as focus region of interest
- * bTopRightStatus : Use top right region as focus region of interest
- * bBottomLeftStatus : Use bottom left region as focus region of interest
- * bBottomRightStatus : Use bottom right region as focus region of interest
- */
- typedef struct OMX_PARAM_FOCUSSTATUSTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_FOCUSSTATUSTYPE eFocusStatus;
- OMX_BOOL bCenterStatus;
- OMX_BOOL bLeftStatus;
- OMX_BOOL bRightStatus;
- OMX_BOOL bTopStatus;
- OMX_BOOL bBottomStatus;
- OMX_BOOL bTopLeftStatus;
- OMX_BOOL bTopRightStatus;
- OMX_BOOL bBottomLeftStatus;
- OMX_BOOL bBottomRightStatus;
- } OMX_PARAM_FOCUSSTATUSTYPE;
- /** @} */
- #ifdef __cplusplus
- }
- #endif /* __cplusplus */
- #endif
- /* File EOF */
|