blob: e9f1fd53eb58baa42c903c3203e5ad6246b77e7c [file] [log] [blame]
/*--------------------------------------------------------------------------
Copyright (c) 2011-2013, The Linux Foundation. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of The Linux Foundation nor
the names of its contributors may be used to endorse or promote
products derived from this software without specific prior written
permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------------------------*/
#ifndef __H_QOMX_IVCOMMONEXTENSIONS_H__
#define __H_QOMX_IVCOMMONEXTENSIONS_H__
/*========================================================================
*//** @file QOMX_CommonExtensions.h
@par FILE SERVICES:
common extensions API for OpenMax IL.
This file contains the description of the Qualcomm OpenMax IL
common extention interface, through which the IL client and OpenMax
components can access additional capabilities.
*//*====================================================================== */
/*========================================================================
INCLUDE FILES FOR MODULE
========================================================================== */
#include <OMX_Core.h>
/*========================================================================
DEFINITIONS AND DECLARATIONS
========================================================================== */
#if defined( __cplusplus )
extern "C"
{
#endif /* end of macro __cplusplus */
/* IV common extension strings */
#define OMX_QCOM_INDEX_CONFIG_MEDIAINFO "OMX.QCOM.index.config.mediainfo" /**< reference: QOMX_MEDIAINFOTYPE */
#define OMX_QCOM_INDEX_CONFIG_CONTENTURI "OMX.QCOM.index.config.contenturi" /**< reference: OMX_PARAM_CONTENTURITYPE */
#define OMX_QCOM_INDEX_PARAM_IMAGESIZECONTROL "OMX.Qualcomm.index.param.ImageSizeControl" /**< reference: QOMX_IMAGE_IMAGESIZECONTROLTYPE */
#define OMX_QCOM_INDEX_CONFIG_PAUSEPORT "OMX.QCOM.index.config.PausePort" /**< reference: QOMX_CONFIG_PAUSEPORTTYPE */
/** reference: QOMX_URANGETYPE
* nMin, nMax, nStepSize give width in pixels */
#define OMX_QCOM_INDEX_PARAM_FRAMEWIDTHRANGESUPPORTED "OMX.QCOM.index.param.FrameWidthRangeSupported"
/** reference: QOMX_URANGETYPE
* nMin, nMax, nStepSize give height in pixels */
#define OMX_QCOM_INDEX_PARAM_FRAMEHEIGHTRANGESUPPORTED "OMX.QCOM.index.param.FrameHeightRangeSupported"
/** reference: QOMX_URANGETYPE
* nMin, nMax, nStepSize give the number of macroblocks per
* frame. */
#define OMX_QCOM_INDEX_PARAM_MACROBLOCKSPERFRAMERANGESUPPORTED "OMX.QCOM.index.param.MacroblocksPerFrameRangeSupported"
/** reference: QOMX_URANGETYPE
* nMin, nMax, nStepSize give the number of macroblocks per
* second. */
#define OMX_QCOM_INDEX_PARAM_MACROBLOCKSPERSECONDRANGESUPPORTED "OMX.QCOM.index.param.MacroblocksPerSecondRangeSupported"
/** reference: QOMX_URANGETYPE
* nMin, nMax, nStepSize give frame rate in frames per second
* in Q16 format. */
#define OMX_QCOM_INDEX_PARAM_FRAMERATERANGESUPPORTED "OMX.QCOM.index.param.FrameRateRangeSupported"
#define OMX_QCOM_INDEX_PARAM_PLANEDEFINITION "OMX.QCOM.index.param.PlaneDefinition" /** reference: QOMX_PLANEDEFINITIONTYPE */
/** reference: QOMX_URANGETYPE
* nMin, nMax, nStepSize give the crop width in pixels */
#define OMX_QOMX_INDEX_PARAM_CROPWIDTHRANGESUPPORTED "OMX.QCOM.index.param.CropWidthRangeSupported"
/** reference: QOMX_URANGETYPE
* nMin, nMax, nStepSize give the crop height in pixels */
#define OMX_QOMX_INDEX_PARAM_CROPHEIGHTRANGESUPPORTED "OMX.QCOM.index.param.CropHeightRangeSupported"
/** reference: QOMX_URANGETYPE
* nMin, nMax, nStepSize give the digital zoom factor on width
* in Q16 format. */
#define OMX_QCOM_INDEX_PARAM_DIGITALZOOMWIDTHRANGESUPPORTED "OMX.QCOM.index.param.DigitalZoomWidthRangeSupported"
/** reference: QOMX_URANGETYPE
* nMin, nMax, nStepSize give the digital zoom factor on height
* in Q16 format. */
#define OMX_QCOM_INDEX_PARAM_DIGITALZOOMHEIGHTRANGESUPPORTED "OMX.QCOM.index.param.DigitalZoomHeightRangeSupported"
// new externsions for vidpp
#define OMX_QCOM_INDEX_CONFIG_ACTIVE_REGION_DETECTION "OMX.QCOM.index.config.activeregiondetection"
#define OMX_QCOM_INDEX_CONFIG_ACTIVE_REGION_DETECTION_STATUS "OMX.QCOM.index.config.activeregiondetectionstatus"
#define OMX_QCOM_INDEX_CONFIG_SCALING_MODE "OMX.QCOM.index.config.scalingmode"
#define OMX_QCOM_INDEX_CONFIG_NOISEREDUCTION "OMX.QCOM.index.config.noisereduction"
#define OMX_QCOM_INDEX_CONFIG_IMAGEENHANCEMENT "OMX.QCOM.index.config.imageenhancement"
/**
* Enumeration defining the extended uncompressed image/video
* formats.
*
* ENUMS:
* YVU420PackedSemiPlanar : Buffer containing all Y, and then V and U
* interleaved.
* YVU420PackedSemiPlanar32m4ka : YUV planar format, similar to the
* YVU420PackedSemiPlanar format, but with the
* following restrictions:
*
* 1. The width and height of both plane must
* be a multiple of 32 texels.
*
* 2. The base address of both planes must be
* aligned to a 4kB boundary.
*
* YUV420PackedSemiPlanar16m2ka : YUV planar format, similar to the
* YUV420PackedSemiPlanar format, but with the
* following restrictions:
*
* 1. The width of the luma plane must be a
* multiple of 16 pixels.
*
* 2. The address of both planes must be
* aligned to a 2kB boundary.
*
* YUV420PackedSemiPlanar64x32Tile2m8ka : YUV planar format, similar to the
* YUV420PackedSemiPlanar format, but with the
* following restrictions:
*
* 1. The data is laid out in a 4x2 MB tiling
* memory structure
*
* 2. The width of each plane is a multiple of
* 2 4x2 MB tiles.
*
* 3. The height of each plan is a multiple of
* a 4x2 MB tile.
*
* 4. The base address of both planes must be
* aligned to an 8kB boundary.
*
* 5. The tiles are scanned in the order
* defined in the MFCV5.1 User's Manual.
*/
typedef enum QOMX_COLOR_FORMATTYPE
{
QOMX_COLOR_FormatYVU420PackedSemiPlanar = 0x7F000001,
QOMX_COLOR_FormatYVU420PackedSemiPlanar32m4ka,
QOMX_COLOR_FormatYUV420PackedSemiPlanar16m2ka,
QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka,
QOMX_COLOR_FORMATYUV420PackedSemiPlanar32m,
} QOMX_COLOR_FORMATTYPE;
typedef enum QOMX_MEDIAINFOTAGTYPE {
QOMX_MediaInfoTagVersion, /**< OMX_VERSIONTYPE. Version of the standard specifying the media information.*/
QOMX_MediaInfoTagUID, /**< OMX_U8*. Unique ID of the media data, ie image unique ID.*/
QOMX_MediaInfoTagDescription, /**< OMX_U8*. Comments about the media.*/
QOMX_MediaInfoTagTitle, /**< OMX_U8*. Title of the media.*/
QOMX_MediaInfoTagAuthor, /**< OMX_U8*. Author of the media.*/
QOMX_MediaInfoTagCopyright, /**< OMX_U8*. Copyright information.*/
QOMX_MediaInfoTagTrackNum, /**< OMX_U32. Track number.*/
QOMX_MediaInfoTagGenre, /**< OMX_U8*. The genre of the media.*/
QOMX_MediaInfoTagEquipmentMake, /**< OMX_U8*. Manufacturer of recording equipment.*/
QOMX_MediaInfoTagEquipmentModel,/**< OMX_U8*. Model or name of the recording equipment.*/
QOMX_MediaInfoTagSoftware, /**< OMX_U8*. Name and version of the software or firmware of the device generating the media.*/
QOMX_MediaInfoTagAssociatedFile,/**< OMX_U8*. The name of the file related to the media. For example, an audio file related to an image file.*/
QOMX_MediaInfoTagResolution, /**< QOMX_RESOLUTIONTYPE. Number of pixels per resolution unit.*/
QOMX_MediaInfoTagDateCreated, /**< QOMX_DATESTAMPTYPE. Date when media was created.*/
QOMX_MediaInfoTagTimeCreated, /**< QOMX_TIMESTAMPTYPE. Time when media was created.*/
QOMX_MediaInfoTagDateModified, /**< QOMX_DATESTAMPETYPE. Date when file was last modified.*/
QOMX_MediaInfoTagTimeModified, /**< QOMX_TIMESTAMPTYPE. Time when file was last modified.*/
QOMX_MediaInfoTagGPSAreaName, /**< OMX_U8*. The name of the location.*/
QOMX_MediaInfoTagGPSVersion, /**< OMX_VERSIONTYPE. GPS version.*/
QOMX_MediaInfoTagGPSCoordinates,/**< QOMX_GEODETICTYPE. The longitude, latitude, and altitude.*/
QOMX_MediaInfoTagGPSSatellites, /**< OMX_U8*. The GPS satellites used for measurements.*/
QOMX_MediaInfoTagGPSPrecision, /**< OMX_U32. GPS degree of precision.*/
QOMX_MediaInfoTagGPSDateStamp, /**< QOMX_DATESTAMPTYPE. Date of the GPS data.*/
QOMX_MediaInfoTagGPSTimeStamp, /**< QOMX_TIMESTAMPTYPE. Time of the GPS data.*/
QOMX_MediaInfoTagMediaStreamType,/**< QOMX_MEDIASTREAMTYPE. Type of the stream. */
QOMX_MediaInfoDuration, /**< OMX_TICKS. Total duration of the media.*/
QOMX_MediaInfoSize, /**< OMX_U32. Total size of the media in bytes.*/
QOMX_MediaInfoTagAlbum, /**< OMX_U8*. Name of album/movie/show.*/
QOMX_MediaInfoTagLocation, /**< OMX_U8*. Recording location information.*/
QOMX_MediaInfoTagClassification, /**< OMX_U8*. Classification information of media.*/
QOMX_MediaInfoTagRatings, /**< OMX_U8*. Media Ratings based on popularity & rating criteria.*/
QOMX_MediaInfoTagKeyword, /**< OMX_U8*. Keyword associated with media which are intended to reflect mood of the A/V.*/
QOMX_MediaInfoTagPerformance, /**< OMX_U8*. Media Performer information..*/
QOMX_MediaInfoTagYear, /**< OMX_U8*. Production year information of media.*/
QOMX_MediaInfoTagComposer, /**< OMX_U8*. Name of the composer of media i.e. audio.*/
QOMX_MediaInfoTagEncoderName, /**< OMX_U8*. Name of the person or organisation who encoded media.*/
QOMX_MediaInfoTagCopyProhibitFlag, /**< OMX_U8*. Flag to indicate if copy is allowed or not.*/
QOMX_MediaInfoTagLyricist, /**< OMX_U8*. Name of the lyricist or text writer in recording. Specific to ID3 tag.*/
QOMX_MediaInfoTagSubtitle, /**< OMX_U8*. Subtitle/Description used for informaton directly related to title of media.*/
QOMX_MediaInfoTagOriginalFileName, /**< OMX_U8*. Original file name.*/
QOMX_MediaInfoTagOriginalLyricist, /**< OMX_U8*. Name of the original lyricist/text writer of original recording.*/
QOMX_MediaInfoTagOriginalArtist, /**< OMX_U8*. Name of the original artist.*/
QOMX_MediaInfoTagOriginalReleaseYear, /**< OMX_U8*. Original release year of recorded media.*/
QOMX_MediaInfoTagFileOwner, /**< OMX_U8*. Licensee or name of the file owner.*/
QOMX_MediaInfoTagOrchestra, /**< OMX_U8*. Name of the orchestra or performers during recording.*/
QOMX_MediaInfoTagConductor, /**< OMX_U8*. Name of the conductor.*/
QOMX_MediaInfoTagRemixedBy, /**< OMX_U8*. Person or organization name who did the remix.*/
QOMX_MediaInfoTagAlbumArtist, /**< OMX_U8*. Name of the album artist.*/
QOMX_MediaInfoTagPublisher, /**< OMX_U8*. Name of the publisher or label.*/
QOMX_MediaInfoTagRecordingDates, /**< OMX_U8*. Recording date of media.*/
QOMX_MediaInfoTagInternetRadioStationName, /**< OMX_U8*. Name of the Internet radio station from which the audio is streamed.*/
QOMX_MediaInfoTagInternetRadioStationOwner, /**< OMX_U8*. Name of the owner of the Internet radio station from which the audio is streamed.*/
QOMX_MediaInfoTagInternationalRecordingCode,/**< OMX_U8*. International standard recording code.*/
QOMX_MediaInfoTagEncoderSwHwSettings, /**< OMX_U8*. Software,hardware settings used by encoder.*/
QOMX_MediaInfoTagInvolvedPeopleList, /**< OMX_U8*. List of people involved. Specific to ID3 tag.*/
QOMX_MediaInfoTagComments, /**< OMX_U8*. Comments about the media. It can be any kind of full text informaton.*/
QOMX_MediaInfoTagCommissioned, /**< OMX_U8*. Commissioned information of media.*/
QOMX_MediaInfoTagSubject, /**< OMX_U8*. Subject associated with media.*/
QOMX_MediaInfoTagContact, /**< OMX_U8*. Conatct information. URL information of the seller.*/
QOMX_MediaInfoTagValidityPeriod, /**< OMX_U8*. Length or period of validity of media.*/
QOMX_MediaInfoTagValidityEffectiveDate, /**< OMX_U8*. Validity effective date of media*/
QOMX_MediaInfoTagNumberOfAllowedPlaybacks, /**< OMX_U8*. Number of allowed playbacks for this media*/
QOMX_MediaInfoTagPlayCounter, /**< OMX_U8*. Current play counter of the media.Its number of times a file has been played.*/
QOMX_MediaInfoTagMemo, /**< OMX_U8*. Memo associatd with media.*/
QOMX_MediaInfoTagDeviceName, /**< OMX_U8*. Name of the devices used in creating media.*/
QOMX_MediaInfoTagURL, /**< OMX_U8*. List artist /genre /movie sites URL.*/
QOMX_MediaInfoTagFileType, /**< OMX_U8*. Indicates type of audio track.*/
QOMX_MediaInfoTagContentGroupDesc, /**< OMX_U8*. Content group description if the sound belongs to a larger category of of music /sound.*/
QOMX_MediaInfoTagInitialKeys, /**< OMX_U8*. Contains the musical key in which media starts.*/
QOMX_MediaInfoTagLanguages, /**< OMX_U8*. Languages of the text or lyrics spoken or sung in the media.*/
QOMX_MediaInfoTagMediaType, /**< OMX_U8*. Describes from which media the media sound originated.*/
QOMX_MediaInfoTagPlaylistDelay, /**< OMX_U8*. Denotes number of milliseconds between each song of the playlist.*/
QOMX_MediaInfoTagBeatsPerMinute, /**< OMX_U8*. Number of beats per minute in main part of audio.*/
QOMX_MediaInfoTagPartOfSet, /**< OMX_U8*. Describes part of the set selected or played. */
QOMX_MediaInfoTagInstrumentName, /**< OMX_U8*. Name of the instrument used in creating media.*/
QOMX_MediaInfoTagLyrics, /**< OMX_U8*. Lyrics of the media/audio track.*/
QOMX_MediaInfoTagTrackName, /**< OMX_U8*. Name of the media/audio track.*/
QOMX_MediaInfoTagMarker, /**< OMX_U8*. Text string cotnents placed at a specific location to denote information about the music at that point.*/
QOMX_MediaInfoTagCuePoint, /**< OMX_U8*. Subset of the content which can be optionally played.*/
QOMX_MediaInfoTagGPSPositioningName, /**< OMX_U8*. GPS positioning name. */
QOMX_MediaInfoTagGPSPositioningMethod, /**< OMX_U8*. GPS positioning method.*/
QOMX_MediaInfoTagGPSSurveyData, /**< OMX_U8*. GPS survey data. */
QOMX_MediaInfoTagGPSByteOrder, /**< OMX_U16.GPS byte order. */
QOMX_MediaInfoTagGPSLatitudeRef, /**< OMX_U32.Reference GPS latitude. */
QOMX_MediaInfoTagGPSLongitudeRef, /**< OMX_U32.Reference GPS longitude */
QOMX_MediaInfoTagGPSAltitudeRef, /**< OMX_U32. Reference GPS altitude.*/
QOMX_MediaInfoTagGPSExtensionMapScaleInfo, /**< OMX_U64. GPS extension map scale information.*/
QOMX_MediaInfoTagUUIDAtomInfo, /**< OMX_U8*. The user defined data associated with UUID.*/
QOMX_MediaInfoTagUUIDAtomCount, /**< OMX_U32 UUID atom count.*/
QOMX_MediaInfoTagLocationRole, /**< OMX_32. Indicates the role of the place. i.e. ‘0’ indicate ‘shooting location'. ‘1’ ‘real location’.*/
QOMX_MediaInfoTagAstronomicalBody, /**< OMX_U8*. Astronomical body on which the location exists.*/
QOMX_MediaInfoTagUserInfoData /**< OMX_U8*. The user defined tag informaton.*/
} QOMX_MEDIAINFOTAGTYPE;
typedef struct QOMX_MEDIAINFOTYPE {
OMX_U32 nSize;
OMX_VERSIONTYPE nVersion;
OMX_U32 nPortIndex; /**< Read-only value containing the index of the output port. */
QOMX_MEDIAINFOTAGTYPE eTag; /**< The type of media info being specified. */
OMX_U32 nDataSize; /**< The size of the associated cData. Set nDataSize to 0 to retrieve the size required for cData. */
OMX_U8 cData[1]; /**< The media data info */
} QOMX_MEDIAINFOTYPE;
typedef enum QOMX_RESOLUTIONUNITTYPE {
QOMX_ResolutionUnitInch,
QOMX_ResolutionCentimeter
} QOMX_RESOLUTIONUNITTYPE;
typedef struct QOMX_RESOLUTIONTYPE {
QOMX_RESOLUTIONUNITTYPE eUnit; /**< The unit of measurement. */
OMX_U32 nX; /**< The number of pixels per unit in the width direction. */
OMX_U32 nY; /**< The number of pixels per unit in the height direction. */
} QOMX_RESOLUTIONTYPE;
typedef struct QOMX_TIMESTAMPTYPE {
OMX_U32 nHour; /**< The hour portion of the time stamp, based on a 24-hour format. */
OMX_U32 nMinute; /**< The minute portion of the time stamp. */
OMX_U32 nSecond; /**< The second portion of the time stamp. */
OMX_U32 nMillisecond; /**< the millisecond portion of the time stamp. */
} QOMX_TIMESTAMPTYPE;
typedef struct QOMX_DATESTAMPTYPE {
OMX_U32 nYear; /**< The year portion of the date stamp. */
OMX_U32 nMonth; /**< The monthportion of the date stamp. Valid values are 1 to 12.*/
OMX_U32 nDay; /**< The day portion of the date stamp. Valid values are 1 to 31 depending on the month specified.*/
} QOMX_DATESTAMPTYPE;
typedef enum QOMX_GEODETICREFTYPE {
QOMX_GeodeticRefNorth, /**< North latitude. */
QOMX_GeodeticRefSouth, /**< South latitude. */
QOMX_GeodeticRefEast, /**< East longitude. */
QOMX_GeodeticRefWest /**< West longitude. */
} QOMX_GEODETICREFTYPE;
/** QOMX_GEODETICANGLETYPE is used to set geodetic angle coordinates on an ellipsoid (the Earth),
and is explicitly used to specify latitude and longitude. This structure is referenced by QOMX_GEODETICTYPE. */
typedef struct QOMX_GEODETICANGLETYPE {
QOMX_GEODETICREFTYPE eReference; /**< Indicates whether the geodetic angle is a latitude or longitude. */
OMX_U32 nDegree; /**< The degree of the latitude or longitude. */
OMX_U32 nMinute; /**< The minute of the latitude or longitude. */
OMX_U32 nSecond; /**< The second of the latitude or longitude. */
} QOMX_GEODETICANGLETYPE;
typedef enum QOMX_ALTITUDEREFTYPE {
QOMX_AltitudeRefSeaLevel, /**< At sea level. */
QOMX_AltitudeRefBelowSeaLevel /**< Below sea level. */
} QOMX_ALTITUDEREFTYPE;
typedef struct QOMX_ALTITUDETYPE {
QOMX_ALTITUDEREFTYPE eReference; /**< The reference point for the altitude. */
OMX_U32 nMeter; /**< The absolute value of the number of meters above or below sea level. */
OMX_U32 nMillimeter; /**< The absolute value of the number of millimeters above or below sea level. */
} QOMX_ALTITUDETYPE;
/** QOMX_GEODETICTYPE is used to set geodetic coordinates such as longitude, latitude, and altitude.
This structure references QOMX_GEODETICANGLETYPE and QOMX_ALTITUDETYPE. */
typedef struct QOMX_GEODETICTYPE {
QOMX_GEODETICANGLETYPE sLatitude; /**< Indicates the latitude.*/
QOMX_GEODETICANGLETYPE sLongitude; /**< Indicates the longitude.*/
QOMX_ALTITUDETYPE sAltitude; /**< Indicates the altitude.*/
} QOMX_GEODETICTYPE;
typedef struct QOMX_IMAGE_IMAGESIZECONTROLTYPE {
OMX_U32 nSize;
OMX_VERSIONTYPE nVersion;
OMX_U32 nPortIndex; /**< port index on which size control needs to be applied */
OMX_U32 nTargetImageSize; /**< expected max target size in Bytes */
} QOMX_IMAGE_IMAGESIZECONTROLTYPE;
typedef enum QOMX_URITYPE {
QOMX_URITYPE_RTSP, /**< RTSP URI Type. */
QOMX_URITYPE_HTTP, /**< HTTP URI Type. */
QOMX_URITYPE_LOCAL /**< Local URI Type.(i.e Non Network) */
}QOMX_URITYPE;
typedef enum QOMX_STREAMTYPE {
QOMX_STREAMTYPE_VOD, /**< Video On demand Stream */
QOMX_STREAMTYPE_LIVE,/**< Live Stream */
QOMX_STREAMTYPE_FILE /**< File based Stream */
}QOMX_STREAMTYPE;
typedef struct QOMX_MEDIASTREAMTYPE{
QOMX_URITYPE eURIType;
QOMX_STREAMTYPE eStreamType;
}QOMX_MEDIASTREAMTYPE;
/**
* This structure specifies the parameters associated with each
* plane of the uncompressed image/video format.
*/
typedef struct QOMX_PLANEDEFINITIONTYPE {
OMX_U32 nSize;
OMX_VERSIONTYPE nVersion;
OMX_U32 nPortIndex; /**< Represents the port that this structure applies to */
OMX_U32 nPlaneIndex; /**< Specifies the plane enumeration index that this structure applies to, starting with a base value of 1 */
OMX_U32 nMinStride; /**< Read-only parameter that specifies the minimum buffer stride */
OMX_U32 nMaxStride; /**< Read-only parameter that specifies the maximum buffer stride */
OMX_U32 nStrideMultiples; /**< Read-only parameter that specifies the buffer stride multiple supported */
OMX_S32 nActualStride; /**< Specifies the actual stride to be applied */
OMX_U32 nMinPlaneBufferHeight; /**< Read-only parameter that specifies the minimum buffer height (number of stride lines) */
OMX_U32 nActualPlaneBufferHeight; /**< Specifies the actual buffer height (number of stride lines) to be applied */
OMX_U32 nBufferSize; /**< Read-only parameter that specifies the minimum size of the buffer, in bytes */
OMX_U32 nBufferAlignment; /**< Read-only field that specifies the required alignment of the buffer, in bytes */
} QOMX_PLANEDEFINITIONTYPE;
/**
* Pause port parameters
*
* STRUCT MEMBERS:
* nSize : Size of the structure in bytes
* nVersion : OMX specification version information
* nPortIndex : Index of port that this structure represent
* bPausePort : Boolean field which indicates if port is paused or resume. By default bPausePort = OMX_FALSE
* & port will be paused when bPausePort = OMX_TRUE
*/
typedef struct QOMX_CONFIG_PAUSEPORTTYPE {
OMX_U32 nSize;
OMX_VERSIONTYPE nVersion;
OMX_U32 nPortIndex; /**< Represents the port that this structure applies to */
OMX_BOOL bPausePort; /**< Specifies if port need to PAUSE or RESUME */
} QOMX_CONFIG_PAUSEPORTTYPE;
typedef struct QOMX_RECTTYPE {
OMX_S32 nLeft;
OMX_S32 nTop;
OMX_U32 nWidth;
OMX_U32 nHeight;
} QOMX_RECTTYPE;
typedef struct QOMX_ACTIVEREGIONDETECTIONTYPE {
OMX_U32 nSize;
OMX_VERSIONTYPE nVersion;
OMX_U32 nPortIndex;
OMX_BOOL bEnable;
QOMX_RECTTYPE sROI;
OMX_U32 nNumExclusionRegions;
QOMX_RECTTYPE sExclusionRegions[1];
} QOMX_ACTIVEREGIONDETECTIONTYPE;
typedef struct QOMX_ACTIVEREGIONDETECTION_STATUSTYPE {
OMX_U32 nSize;
OMX_VERSIONTYPE nVersion;
OMX_U32 nPortIndex;
OMX_BOOL bDetected;
QOMX_RECTTYPE sDetectedRegion;
} QOMX_ACTIVEREGIONDETECTION_STATUSTYPE;
typedef enum QOMX_SCALE_MODETYPE {
QOMX_SCALE_MODE_Normal,
QOMX_SCALE_MODE_Anamorphic,
QOMX_SCALE_MODE_Max = 0x7FFFFFFF
} QOMX_SCALE_MODETYPE;
typedef struct QOMX_SCALINGMODETYPE {
OMX_U32 nSize;
OMX_VERSIONTYPE nVersion;
QOMX_SCALE_MODETYPE eScaleMode;
} QOMX_SCALINGMODETYPE;
typedef struct QOMX_NOISEREDUCTIONTYPE {
OMX_U32 nSize;
OMX_VERSIONTYPE nVersion;
OMX_U32 nPortIndex;
OMX_BOOL bEnable;
OMX_BOOL bAutoMode;
OMX_S32 nNoiseReduction;
} QOMX_NOISEREDUCTIONTYPE;
typedef struct QOMX_IMAGEENHANCEMENTTYPE {
OMX_U32 nSize;
OMX_VERSIONTYPE nVersion;
OMX_U32 nPortIndex;
OMX_BOOL bEnable;
OMX_BOOL bAutoMode;
OMX_S32 nImageEnhancement;
} QOMX_IMAGEENHANCEMENTTYPE;
/*
* these are part of OMX1.2 but JB MR2 branch doesn't have them defined
* OMX_IndexParamInterlaceFormat
* OMX_INTERLACEFORMATTYPE
*/
#ifndef OMX_IndexParamInterlaceFormat
#define OMX_IndexParamInterlaceFormat (0x7FF00000)
typedef enum OMX_INTERLACETYPE
{
OMX_InterlaceFrameProgressive,
OMX_InterlaceInterleaveFrameTopFieldFirst,
OMX_InterlaceInterleaveFrameBottomFieldFirst,
OMX_InterlaceFrameTopFieldFirst,
OMX_InterlaceFrameBottomFieldFirst
}OMX_INTERLACEs;
typedef struct OMX_INTERLACEFORMATTYPE {
OMX_U32 nSize;
OMX_VERSIONTYPE nVersion;
OMX_U32 nPortIndex;
OMX_U32 nFormat;
OMX_TICKS nTimeStamp;
} OMX_INTERLACEFORMATTYPE;
#endif
#if defined( __cplusplus )
}
#endif /* end of macro __cplusplus */
#endif /* end of macro __H_QOMX_IVCOMMONEXTENSIONS_H__ */