omxil/omxilapi/shai/OMX_Symbian_VideoExt.h
branchOpenMAX-IL_SHAI
changeset 16 eedf2dcd43c6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/omxil/omxilapi/shai/OMX_Symbian_VideoExt.h	Fri May 07 16:25:23 2010 +0100
@@ -0,0 +1,253 @@
+/*
+  OMX_Symbian_VideoExt.h
+  
+  Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+  All rights reserved.
+
+  This program and the accompanying materials are made available 
+  under the terms of the Eclipse Public License v1.0 which accompanies 
+  this distribution, and is available at 
+  http://www.eclipse.org/legal/epl-v10.html
+
+  Initial Contributors:
+  Nokia Corporation - initial contribution.
+*/
+
+/** @file
+@brief Symbian OpenMAX IL Extension Data Structures in the Video Domain.
+
+This file contains the extension structures for the Symbian IL extensions that
+pertain to video components.
+
+@publishedDeviceAbstraction
+*/
+
+#ifndef OMX_Symbian_VideoExt_h
+#define OMX_Symbian_VideoExt_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_Types.h>
+#include <OMX_Video.h>
+
+
+/** Video format extensions. */
+typedef enum OMX_SYMBIAN_VIDEO_CODINGTYPE {
+    OMX_SYMBIAN_VIDEO_CodingVC1 = OMX_VIDEO_CodingVendorStartUnused + 0x1,
+    OMX_SYMBIAN_VIDEO_CodingVP6,
+    OMX_SYMBIAN_VIDEO_CodingMax = 0x7FFFFFFF
+} OMX_SYMBIAN_VIDEO_CODINGTYPE;
+
+/** Sequence Headers.
+
+The index specified for this structure is retrieved using 
+OMX_GetExtensionIndex() with the extension string 
+"OMX.Symbian.Index.Param.Video.SequenceHeader".
+ */
+typedef struct OMX_SYMBIAN_VIDEO_PARAM_SEQUENCEHEADERTYPE
+{ 
+    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_U32 nSequenceHeaderSize;    /**< Size of the sequence header in bytes */
+    OMX_U8 SequenceHeader[1];       /**< Sequence header. VOS, VO and VOL for MPEG-4. SPS and PPS for AVC */
+} OMX_SYMBIAN_VIDEO_PARAM_SEQUENCEHEADERTYPE;
+
+
+typedef enum OMX_SYMBIAN_VIDEO_AVCSEITYPE {
+    OMX_SYMBIAN_VIDEO_AvcSeiBufferinPeriod = 0x01,
+    OMX_SYMBIAN_VIDEO_AvcSeiPictureTiming = 0x02,
+    OMX_SYMBIAN_VIDEO_AvcSeiPanScanRectangle = 0x04,
+    OMX_SYMBIAN_VIDEO_AvcSeiFillerPayload = 0x08,
+    OMX_SYMBIAN_VIDEO_AvcSeiUserDataRegisteredByITUT35 = 0x10,
+    OMX_SYMBIAN_VIDEO_AvcSeiUserDataUnregistered = 0x20,
+    OMX_SYMBIAN_VIDEO_AvcSeiRecoveryPoint = 0x40,
+    OMX_SYMBIAN_VIDEO_AvcSeiDecReferencePictureMarkingRepetition = 0x80,
+    OMX_SYMBIAN_VIDEO_AvcSeiSparePicture = 0x100,
+    OMX_SYMBIAN_VIDEO_AvcSeiSceneInformation = 0x200,
+    OMX_SYMBIAN_VIDEO_AvcSeiSubSequenceInformation = 0x400,
+    OMX_SYMBIAN_VIDEO_AvcSeiSubSequenceLayerCharacteristics = 0x800,
+    OMX_SYMBIAN_VIDEO_AvcSeiSubSequenceCharacteristics = 0x1000,
+    OMX_SYMBIAN_VIDEO_AvcSeiFullFrameFreeze = 0x2000,
+    OMX_SYMBIAN_VIDEO_AvcSeiFullFrameFreezeRelease = 0x4000,
+    OMX_SYMBIAN_VIDEO_AvcSeiFullFrameSnaphot = 0x8000,
+    OMX_SYMBIAN_VIDEO_AvcSeiProgressiveRefinementSegmentStart = 0x10000,
+    OMX_SYMBIAN_VIDEO_AvcSeiProgressiveRefinementSegmentEnd = 0x20000,
+    OMX_SYMBIAN_VIDEO_AvcSeiMotionContstrainedSliceGroup = 0x40000,
+    OMX_SYMBIAN_VIDEO_AvcSeiFilmGrainCharacteristics = 0x80000,
+    OMX_SYMBIAN_VIDEO_AvcSeiDeblockingFilterDispPreference = 0x100000,
+    OMX_SYMBIAN_VIDEO_AvcSeiStereoVideoInformation = 0x200000,
+    OMX_SYMBIAN_VIDEO_AvcSeiMax = 0x7FFFFFFF
+} OMX_SYMBIAN_VIDEO_AVCSEITYPE;
+
+/** SEI messages.
+
+The index specified for this structure is retrieved using 
+OMX_GetExtensionIndex() with the extension string 
+"OMX.Symbian.Index.Param.Video.AVCSei".
+*/
+typedef struct OMX_SYMBIAN_VIDEO_PARAM_AVCSEITYPE
+{
+    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_BOOL bEnableSEI;        /**< Enable SEI messages */
+    OMX_SYMBIAN_VIDEO_AVCSEITYPE eSEI;  /**< Requested SEI messages. Several messages can be requested. */
+} OMX_SYMBIAN_VIDEO_PARAM_AVCSEITYPE;
+
+/** AVC output order.
+
+The index specified for this structure is retrieved using 
+OMX_GetExtensionIndex() with the extension string 
+"OMX.Symbian.Index.Param.Video.AVCOutputOrder".
+*/
+typedef struct OMX_SYMBIAN_VIDEO_PARAM_AVCOUTPUTORDERTYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_BOOL bOutputInDisplayOrder;
+} OMX_SYMBIAN_VIDEO_PARAM_AVCOUTPUTORDERTYPE;
+
+
+/** Refresh mode.
+
+The index specified for this structure is retrieved using 
+OMX_GetExtensionIndex() with the extension string 
+"OMX.Symbian.Index.Config.Video.RefreshMode".
+*/
+typedef struct OMX_SYMBIAN_VIDEO_CONFIG_REFRESHMODETYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_BOOL bRefreshLatestOutputFrame;
+} OMX_SYMBIAN_VIDEO_CONFIG_REFRESHMODETYPE;
+
+/** VC1 profile enum. */
+typedef enum OMX_SYMBIAN_VIDEO_VC1PROFILETYPE {
+    OMX_SYMBIAN_VIDEO_VC1ProfileSimple,
+    OMX_SYMBIAN_VIDEO_VC1ProfileMain,
+    OMX_SYMBIAN_VIDEO_VC1ProfileAdvanced,
+    OMX_SYMBIAN_VIDEO_VC1ProfileMax = 0x7FFFFFFF
+} OMX_SYMBIAN_VIDEO_VC1PROFILETYPE;
+
+/** VC1 level enum. */
+typedef enum OMX_SYMBIAN_VIDEO_VC1LEVELTYPE {
+    OMX_SYMBIAN_VIDEO_VC1LevelLow,
+    OMX_SYMBIAN_VIDEO_VC1LevelMedium,
+    OMX_SYMBIAN_VIDEO_VC1LevelHigh,
+    OMX_SYMBIAN_VIDEO_VC1LevelL0,
+    OMX_SYMBIAN_VIDEO_VC1LevelL1,
+    OMX_SYMBIAN_VIDEO_VC1LevelL2,
+    OMX_SYMBIAN_VIDEO_VC1LevelL3,
+    OMX_SYMBIAN_VIDEO_VC1LevelL4,
+    OMX_SYMBIAN_VIDEO_VC1LevelMax = 0x7FFFFFFF
+} OMX_SYMBIAN_VIDEO_VC1LEVELTYPE;
+
+/** VC1 parameters for simple and main profiles. */
+typedef struct OMX_SYMBIAN_VIDEO_VC1SIMPLEMAINPROFILETYPE {
+    OMX_U32 nHRDBufferSize;
+    OMX_U32 nHRDBufferRate;
+    OMX_BOOL bEnableLoopFilter;
+    OMX_BOOL bEnableMultiRes;
+    OMX_BOOL bEnableFastUVMC;
+    OMX_BOOL bEnableExtendedMV;
+    OMX_U32 bDQuant;
+    OMX_BOOL bEnableVSTransform;
+    OMX_BOOL bEnableOverlap;
+    OMX_BOOL bEnableSyncMarker;
+    OMX_BOOL bEnableRangeRed;
+    OMX_U32 nMaxBFrames;
+    OMX_U32 bQuantizer;
+} OMX_SYMBIAN_VIDEO_VC1SIMPLEMAINPROFILETYPE;
+
+/** VC1 parameters for the advaanced profile. */
+typedef struct OMX_SYMBIAN_VIDEO_VC1ADVANCEDPROFILETYPE {
+    OMX_U32 nColorDifferenceFormat;
+    OMX_BOOL bPostProcFlag;
+    OMX_U32 nMaxCodedWidth;
+    OMX_U32 nMaxCodedHeight;
+    OMX_BOOL bPullDown;
+    OMX_BOOL bInterlace;
+    OMX_BOOL bTFCounterFlag;
+    OMX_BOOL bProgressiveSegmentedFrame;
+    OMX_BOOL bDisplayExtensionFlag;
+    OMX_U32 nDisplayHorizontalSize;
+    OMX_U32 nDisplayVerticalSize;
+    OMX_BOOL bAspectRatioFlag;
+    OMX_U32 nAspectRatio;
+    OMX_U32 nAspectHorizontalSize;
+    OMX_U32 nAspectVerticalSize;
+    OMX_BOOL bFrameRateFlag;
+    OMX_BOOL bFrameRateIndicator;
+    OMX_U32 nFrameRateNumerator;
+    OMX_U32 nFrameRateDenominator;
+    OMX_U32 nFrameRateExplicit;
+    OMX_BOOL bColorFormatFlag;
+    OMX_U32 nColorPrimaries;
+    OMX_U32 nTransferCharacteristics;
+    OMX_U32 nMatrixCoefficients;
+    OMX_BOOL bHRDIndicatorFlag;
+    OMX_U32 nHRDNumberOfLeakyBuckets;
+    OMX_U32 nHRDRateExponent;
+    OMX_U32 nHRDBufferExponent;
+} OMX_SYMBIAN_VIDEO_VC1ADVANCEDPROFILETYPE;
+
+/** VC1 settings.
+
+The index specified for this structure is retrieved using 
+OMX_GetExtensionIndex() with the extension string 
+"OMX.Symbian.Index.Config.Video.Vc1".
+*/
+typedef struct OMX_SYMBIAN_VIDEO_PARAM_VC1TYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_SYMBIAN_VIDEO_VC1PROFILETYPE eProfile;
+    OMX_SYMBIAN_VIDEO_VC1LEVELTYPE eLevel;
+    OMX_U32 bFrmRtQPostProc;
+    OMX_U32 bBitRtQPostProc;
+    OMX_BOOL bEnableFInterpFlag;
+    union {
+        OMX_SYMBIAN_VIDEO_VC1SIMPLEMAINPROFILETYPE simple;
+        OMX_SYMBIAN_VIDEO_VC1ADVANCEDPROFILETYPE advanced;
+    } profile;
+} OMX_SYMBIAN_VIDEO_PARAM_VC1TYPE;
+
+/** VP6 profile enum. */
+typedef enum OMX_SYMBIAN_VIDEO_VP6PROFILETYPE {
+    OMX_SYMBIAN_VIDEO_VP6ProfileSimple,
+    OMX_SYMBIAN_VIDEO_VP6ProfileAdvanced,
+    OMX_SYMBIAN_VIDEO_VP6ProfileHeightenedSharpness,
+    OMX_SYMBIAN_VIDEO_VP6ProfileMax = 0x7FFFFFFF
+} OMX_SYMBIAN_VIDEO_VP6PROFILETYPE;
+
+/** VP6 level enum. */
+typedef enum OMX_SYMBIAN_VIDEO_VP6LEVELTYPE {
+    OMX_SYMBIAN_VIDEO_VP6LevelMax = 0x7FFFFFFF
+} OMX_SYMBIAN_VIDEO_VP6LEVELTYPE;
+
+/** VP6 settings.
+
+The index specified for this structure is retrieved using 
+OMX_GetExtensionIndex() with the extension string 
+"OMX.Symbian.Index.Config.Video.Vc6".
+*/
+typedef struct OMX_SYMBIAN_VIDEO_PARAM_VP6TYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_SYMBIAN_VIDEO_VP6PROFILETYPE eProfile;
+    OMX_SYMBIAN_VIDEO_VP6LEVELTYPE eLevel;
+} OMX_SYMBIAN_VIDEO_PARAM_VP6TYPE;
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* OMX_Symbian_VideoExt_h */