a1ae5a4fe5
Bug: 18285408 Change-Id: I7893cbf0b13514e0fe9001c90db3c8387c1920c0
958 lines
33 KiB
C
958 lines
33 KiB
C
/* ------------------------------------------------------------------
|
|
* Copyright (C) 1998-2009 PacketVideo
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
|
|
* express or implied.
|
|
* See the License for the specific language governing permissions
|
|
* and limitations under the License.
|
|
* -------------------------------------------------------------------
|
|
*/
|
|
/**
|
|
* 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 */
|
|
/**<Reserved android opaque colorformat. Tells the encoder that
|
|
* the actual colorformat will be relayed by the
|
|
* Gralloc Buffers.
|
|
* FIXME: In the process of reserving some enum values for
|
|
* Android-specific OMX IL colorformats. Change this enum to
|
|
* an acceptable range once that is done.
|
|
* */
|
|
OMX_COLOR_FormatAndroidOpaque = 0x7F000789,
|
|
/** Flexible 8-bit YUV format. Codec should report this format
|
|
* as being supported if it supports any YUV420 packed planar
|
|
* or semiplanar formats. When port is set to use this format,
|
|
* codec can substitute any YUV420 packed planar or semiplanar
|
|
* format for it. */
|
|
OMX_COLOR_FormatYUV420Flexible = 0x7F420888,
|
|
|
|
OMX_TI_COLOR_FormatYUV420PackedSemiPlanar = 0x7F000100,
|
|
OMX_QCOM_COLOR_FormatYVU420SemiPlanar = 0x7FA30C00,
|
|
OMX_QCOM_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka = 0x7FA30C03,
|
|
OMX_SEC_COLOR_FormatNV12Tiled = 0x7FC00002,
|
|
OMX_QCOM_COLOR_FormatYUV420PackedSemiPlanar32m = 0x7FA30C04,
|
|
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 */
|