summaryrefslogtreecommitdiff
path: root/mm-core/inc/OMX_QCOMExtns.h
diff options
context:
space:
mode:
Diffstat (limited to 'mm-core/inc/OMX_QCOMExtns.h')
-rw-r--r--[-rwxr-xr-x]mm-core/inc/OMX_QCOMExtns.h121
1 files changed, 114 insertions, 7 deletions
diff --git a/mm-core/inc/OMX_QCOMExtns.h b/mm-core/inc/OMX_QCOMExtns.h
index 1c85a80..eb1b990 100755..100644
--- a/mm-core/inc/OMX_QCOMExtns.h
+++ b/mm-core/inc/OMX_QCOMExtns.h
@@ -1,5 +1,5 @@
/*--------------------------------------------------------------------------
-Copyright (c) 2009-2014, The Linux Foundation. All rights reserved.
+Copyright (c) 2009-2016, 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:
@@ -229,7 +229,7 @@ typedef struct OMX_QCOM_PLATFORM_PRIVATE_ENTRY
OMX_QCOM_PLATFORM_PRIVATE_ENTRY_TYPE type;
/** Pointer to platform specific entry */
- void* entry;
+ OMX_PTR entry;
}OMX_QCOM_PLATFORM_PRIVATE_ENTRY;
typedef struct OMX_QCOM_PLATFORM_PRIVATE_LIST
@@ -461,18 +461,79 @@ enum OMX_QCOM_EXTN_INDEXTYPE
OMX_QcomIndexParamPeakBitrate = 0x7F00003A,
- /*"OMX.QCOM.index.config.video.LTRMark"*/
- OMX_QcomIndexConfigVideoLTRMark = QOMX_IndexConfigVideoLTRMark,
-
/* Enable InitialQP index */
QOMX_IndexParamVideoInitialQp = 0x7F00003B,
OMX_QcomIndexParamSetMVSearchrange = 0x7F00003C,
- OMX_QcomIndexFlexibleYUVDescription = 0x7F00003D,
+ OMX_QcomIndexConfigPerfLevel = 0x7F00003D,
+
+ /*"OMX.QCOM.index.param.video.LTRCount"*/
+ OMX_QcomIndexParamVideoLTRCount = QOMX_IndexParamVideoLTRCount,
+
+ /*"OMX.QCOM.index.config.video.LTRUse"*/
+ OMX_QcomIndexConfigVideoLTRUse = QOMX_IndexConfigVideoLTRUse,
+
+ /*"OMX.QCOM.index.config.video.LTRMark"*/
+ OMX_QcomIndexConfigVideoLTRMark = QOMX_IndexConfigVideoLTRMark,
+
+ /*"OMX.QCOM.index.param.video.CustomBufferSize"*/
+ OMX_QcomIndexParamVideoCustomBufferSize = 0x7F00003E,
+
+ /*"OMX.QCOM.index.param.video.Mpeg2SeqDispExtraData"*/
+ OMX_QcomIndexParamMpeg2SeqDispExtraData = 0x7F000040,
+
+ /* Max Hierarchical P layers */
+ OMX_QcomIndexMaxHierarchicallayers = 0x7F000041,
+
+ /* Set Encoder Performance Index */
+ OMX_QcomIndexConfigVideoVencPerfMode = 0x7F000042,
+
+ /* Set Hybrid Hier-p layers */
+ OMX_QcomIndexParamVideoHybridHierpMode = 0x7F000043,
+
+ OMX_QcomIndexFlexibleYUVDescription = 0x7F000044,
};
/**
+* This is custom extension to configure Hybrid Hier-p settings.
+* This mode is different from enabling Hier-p mode. This
+* property enables Hier-p encoding with LTR referencing in each
+* sub-GOP.
+*
+* STRUCT MEMBERS
+*
+* nSize : Size of Structure in bytes
+* nVersion : OpenMAX IL specification version information
+* nHpLayers : Set the number of Hier-p layers for the session
+* - This should be <= 6. (1 Base layer +
+* 5 Enhancement layers)
+*/
+
+typedef struct QOMX_EXTNINDEX_VIDEO_HYBRID_HP_MODE {
+ OMX_U32 nSize;
+ OMX_VERSIONTYPE nVersion;
+ OMX_U32 nHpLayers;
+} QOMX_EXTNINDEX_VIDEO_HYBRID_HP_MODE;
+
+/**
+ * Encoder Performance Mode. This structure is used to set
+ * performance mode or power save mode when encoding. The search
+ * range is modified to save power or improve quality.
+ *
+ * STRUCT MEMBERS:
+ * OMX_U32 nPerfMode : Performance mode:
+ * 1: MAX_QUALITY
+ * 2: POWER_SAVE
+ */
+
+typedef struct QOMX_EXTNINDEX_VIDEO_PERFMODE {
+ OMX_U32 nSize;
+ OMX_VERSIONTYPE nVersion;
+ OMX_U32 nPerfMode;
+} QOMX_EXTNINDEX_VIDEO_PERFMODE;
+
+/**
* Initial QP parameter. This structure is used to enable
* vendor specific extension to let client enable setting
* initial QP values to I P B Frames
@@ -610,6 +671,12 @@ typedef struct QOMX_VIDEO_PARAM_LTRCOUNT_TYPE {
OMX_U32 nCount;
} QOMX_VIDEO_PARAM_LTRCOUNT_TYPE;
+
+/**
+ * This should be used with OMX_QcomIndexParamVideoLTRCount extension.
+ */
+typedef QOMX_VIDEO_PARAM_LTRCOUNT_TYPE OMX_QCOM_VIDEO_PARAM_LTRCOUNT_TYPE;
+
/**
* LTR period index parameter. This structure is used
* to enable vendor specific extension on output port
@@ -635,14 +702,22 @@ typedef struct QOMX_VIDEO_CONFIG_LTRPERIOD_TYPE {
* nSize : Size of Structure in bytes
* nVersion : OpenMAX IL specification version information
* nPortIndex : Index of the port to which this structure applies
+ * nID : Specifies the identifier of the LTR frame to be marked
+ * as reference frame for encoding subsequent frames.
*/
typedef struct QOMX_VIDEO_CONFIG_LTRMARK_TYPE {
OMX_U32 nSize;
OMX_VERSIONTYPE nVersion;
OMX_U32 nPortIndex;
+ OMX_U32 nID;
} QOMX_VIDEO_CONFIG_LTRMARK_TYPE;
/**
+ * This should be used with OMX_QcomIndexConfigVideoLTRMark extension.
+ */
+typedef QOMX_VIDEO_CONFIG_LTRMARK_TYPE OMX_QCOM_VIDEO_CONFIG_LTRMARK_TYPE;
+
+/**
* Specifies an LTR frame to encode subsequent frames.
* STRUCT MEMBERS:
* nSize : Size of Structure in bytes
@@ -666,6 +741,11 @@ typedef struct QOMX_VIDEO_CONFIG_LTRUSE_TYPE {
} QOMX_VIDEO_CONFIG_LTRUSE_TYPE;
/**
+ * This should be used with OMX_QcomIndexConfigVideoLTRUse extension.
+ */
+typedef QOMX_VIDEO_CONFIG_LTRUSE_TYPE OMX_QCOM_VIDEO_CONFIG_LTRUSE_TYPE;
+
+/**
* Enumeration used to define the video encoder modes
*
* ENUMS:
@@ -832,6 +912,17 @@ typedef struct OMX_QCOM_VIDEO_PARAM_PERF_LEVEL {
/**
* This structure describes the parameters corresponding
+ * to OMX_QcomIndexConfigPerfLevel extension. It will set
+ * the performance mode specified as QOMX_VIDEO_PERF_LEVEL.
+ */
+typedef struct OMX_QCOM_VIDEO_CONFIG_PERF_LEVEL {
+ OMX_U32 nSize; /** Size of the structure in bytes */
+ OMX_VERSIONTYPE nVersion; /** OMX specification version information */
+ QOMX_VIDEO_PERF_LEVEL ePerfLevel; /** Performance level */
+} OMX_QCOM_VIDEO_CONFIG_PERF_LEVEL;
+
+/**
+ * This structure describes the parameters corresponding
* to OMX_QcomIndexParamH264VUITimingInfo extension. It
* will enable/disable the VUI timing info.
*/
@@ -1026,6 +1117,11 @@ typedef struct OMX_QCOM_EXTRADATA_MBINFO
OMX_U8 data[0];
} OMX_QCOM_EXTRADATA_MBINFO;
+typedef struct OMX_QCOM_EXTRADATA_MPEG2SEQDISPLAY {
+ OMX_U32 disp_width;
+ OMX_U32 disp_height;
+} OMX_QCOM_EXTRADATA_MPEG2SEQDISPLAY;
+
typedef enum OMX_QCOM_EXTRADATATYPE
{
OMX_ExtraDataFrameInfo = 0x7F000001,
@@ -1043,6 +1139,7 @@ typedef enum OMX_QCOM_EXTRADATATYPE
OMX_ExtraDataQP = 0x7F00000d,
OMX_ExtraDataInputBitsInfo = 0x7F00000e,
OMX_ExtraDataVideoEncoderMBInfo = 0x7F00000f,
+ OMX_ExtraDataMpeg2SeqDisplay = 0x7F000010,
} OMX_QCOM_EXTRADATATYPE;
typedef struct OMX_STREAMINTERLACEFORMATTYPE {
@@ -1251,6 +1348,8 @@ typedef struct QOMX_VIDEO_QUERY_DECODER_INSTANCES {
} QOMX_VIDEO_QUERY_DECODER_INSTANCES;
typedef struct QOMX_ENABLETYPE {
+ OMX_U32 nSize;
+ OMX_VERSIONTYPE nVersion;
OMX_BOOL bEnable;
} QOMX_ENABLETYPE;
@@ -1292,6 +1391,12 @@ typedef struct QOMX_INDEXDOWNSCALAR {
OMX_BOOL bEnable;
} QOMX_INDEXDOWNSCALAR;
+typedef struct QOMX_VIDEO_CUSTOM_BUFFERSIZE {
+ OMX_U32 nSize;
+ OMX_VERSIONTYPE nVersion;
+ OMX_U32 nPortIndex;
+ OMX_U32 nBufferSize;
+} QOMX_VIDEO_CUSTOM_BUFFERSIZE;
#define OMX_QCOM_INDEX_PARAM_VIDEO_SYNCFRAMEDECODINGMODE "OMX.QCOM.index.param.video.SyncFrameDecodingMode"
#define OMX_QCOM_INDEX_PARAM_INDEXEXTRADATA "OMX.QCOM.index.param.IndexExtraData"
@@ -1301,6 +1406,7 @@ typedef struct QOMX_INDEXDOWNSCALAR {
#define OMX_QCOM_INDEX_PARAM_VIDEO_INPUTBITSINFO_EXTRADATA "OMX.QCOM.index.param.video.InputBitsInfoExtradata"
#define OMX_QCOM_INDEX_PARAM_VIDEO_EXTNUSER_EXTRADATA "OMX.QCOM.index.param.video.ExtnUserExtraData"
#define OMX_QCOM_INDEX_CONFIG_VIDEO_FRAMEPACKING_INFO "OMX.QCOM.index.config.video.FramePackingInfo"
+#define OMX_QCOM_INDEX_PARAM_VIDEO_MPEG2SEQDISP_EXTRADATA "OMX.QCOM.index.param.video.Mpeg2SeqDispExtraData"
typedef enum {
QOMX_VIDEO_FRAME_PACKING_CHECKERBOARD = 0,
@@ -1347,6 +1453,8 @@ typedef enum QOMX_VIDEO_PICTURETYPE {
typedef struct QOMX_RECTTYPE {
+ OMX_U32 nSize;
+ OMX_VERSIONTYPE nVersion;
OMX_S32 nLeft;
OMX_S32 nTop;
OMX_U32 nWidth;
@@ -1447,7 +1555,6 @@ typedef struct QOMX_VIDEO_HIERARCHICALLAYERS {
QOMX_VIDEO_HIERARCHICALCODINGTYPE eHierarchicalCodingType;
} QOMX_VIDEO_HIERARCHICALLAYERS;
-
#ifdef __cplusplus
}
#endif /* __cplusplus */