aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTao Tao <tao.q.tao@intel.com>2010-11-22 18:30:53 -0800
committerPatrick Tjin <pattjin@google.com>2014-07-21 22:03:37 -0700
commit0a2a5077ddedf3cd7d14c20b4adab32d9009214a (patch)
treec946f79aed27288418f339486a29372e901cf94c
parentd5174df80f21e83a589dc59925d587b9e54d690f (diff)
downloadwrs_omxil_core-0a2a5077ddedf3cd7d14c20b4adab32d9009214a.tar.gz
Video conferencing use case feature support: added parameter/config indexes and related structures for dynamic bitrate control(bitrate, bitrate percentage, window, minQP and initQP), slice number setting for I/P frames, dynamic resolution change, AIR and decode/encode error types
Change-Id: Iaef3a26b0da18d9460312f72285a031ba1b8e79b
-rw-r--r--core/inc/khronos/openmax/include/OMX_IndexExt.h21
-rw-r--r--core/inc/khronos/openmax/include/OMX_IntelErrorTypes.h24
-rw-r--r--core/inc/khronos/openmax/include/OMX_VideoExt.h58
3 files changed, 94 insertions, 9 deletions
diff --git a/core/inc/khronos/openmax/include/OMX_IndexExt.h b/core/inc/khronos/openmax/include/OMX_IndexExt.h
index 38c949e..366b0c6 100644
--- a/core/inc/khronos/openmax/include/OMX_IndexExt.h
+++ b/core/inc/khronos/openmax/include/OMX_IndexExt.h
@@ -1,28 +1,28 @@
/*
- * Copyright (c) 2010 The Khronos Group Inc.
- *
+ * Copyright (c) 2010 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:
+ * to the following conditions:
* The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
+ * 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.
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
*/
/** @file OMX_IndexExt.h - OpenMax IL version 1.1.2
- * The OMX_IndexExt header file contains extensions to the definitions
+ * The OMX_IndexExt header file contains extensions to the definitions
* for both applications and components .
*/
@@ -66,7 +66,12 @@ typedef enum OMX_INDEXEXTTYPE {
OMX_IndexParamNalStreamFormatSupported, /**< reference: OMX_NALSTREAMFORMATTYPE */
OMX_IndexParamNalStreamFormat, /**< reference: OMX_NALSTREAMFORMATTYPE */
OMX_IndexParamNalStreamFormatSelect, /**< reference: OMX_NALSTREAMFORMATTYPE */
- OMX_IndexParamVideoBytestream, /**< reference: OMX_VIDEO_PARAM_BYTESTREAMTYPE */
+ OMX_IndexParamVideoBytestream, /**< reference: OMX_VIDEO_PARAM_BYTESTREAMTYPE */
+ OMX_IndexParamIntelBitrate, /**< reference: OMX_VIDEO_PARAM_INTEL_BITRATETYPE */
+ OMX_IndexConfigIntelBitrate, /**< reference: OMX_VIDEO_CONFIG_INTEL_BITRATETYPE */
+ OMX_IndexParamIntelAVCDecodeSettings, /**< reference: OMX_VIDEO_PARAM_INTEL_AVC_DECODE_SETTINGS */
+ OMX_IndexConfigIntelSliceNumbers, /**< reference: OMX_VIDEO_CONFIG_INTEL_SLICE_NUMBERS */
+ OMX_IndexConfigIntelAIR, /**< reference: OMX_VIDEO_CONFIG_INTEL_AIR */
/* Image & Video common configurations */
OMX_IndexExtCommonStartUnused = OMX_IndexKhronosExtensions + 0x00700000,
diff --git a/core/inc/khronos/openmax/include/OMX_IntelErrorTypes.h b/core/inc/khronos/openmax/include/OMX_IntelErrorTypes.h
new file mode 100644
index 0000000..a2af96a
--- /dev/null
+++ b/core/inc/khronos/openmax/include/OMX_IntelErrorTypes.h
@@ -0,0 +1,24 @@
+#ifndef OMX_IntelErrorTypes_h
+#define OMX_IntelErrorTypes_h
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+#include <OMX_Core.h>
+
+typedef enum OMX_INTELERRORTYPE
+{
+ OMX_ErrorIntelExtSliceSizeOverflow = OMX_ErrorVendorStartUnused + (OMX_S32)0x00001001,
+ OMX_ErrorIntelVideoNotPermitted = OMX_ErrorVendorStartUnused + (OMX_S32)0x00001002,
+ OMX_ErrorIntelProcessStream = OMX_ErrorVendorStartUnused + (OMX_S32)0x00001003,
+ OMX_ErrorIntelMissingConfig = OMX_ErrorVendorStartUnused + (OMX_S32)0x00001004,
+
+} OMX_INTELERRORTYPE;
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
+/* File EOF */
+
diff --git a/core/inc/khronos/openmax/include/OMX_VideoExt.h b/core/inc/khronos/openmax/include/OMX_VideoExt.h
index a32144b..964d08f 100644
--- a/core/inc/khronos/openmax/include/OMX_VideoExt.h
+++ b/core/inc/khronos/openmax/include/OMX_VideoExt.h
@@ -64,9 +64,65 @@ typedef struct OMX_VIDEO_PARAM_BYTESTREAMTYPE {
OMX_U32 nSize; // Size of the structure
OMX_VERSIONTYPE nVersion; // OMX specification version
OMX_U32 nPortIndex; // Port that this structure applies to
- OMX_BOOL bBytestream; // Enable/disable bytestream support
+ OMX_BOOL bBytestream; // Enable/disable bytestream support
} OMX_VIDEO_PARAM_BYTESTREAMTYPE;
+typedef struct OMX_VIDEO_CONFIG_INTEL_BITRATETYPE {
+ OMX_U32 nSize;
+ OMX_VERSIONTYPE nVersion;
+ OMX_U32 nPortIndex;
+ OMX_U32 nMaxEncodeBitrate; // Maximum bitrate
+ OMX_U32 nTargetPercentage; // Target bitrate as percentage of maximum bitrate; e.g. 95 is 95%
+ OMX_U32 nWindowSize; // Window size in milliseconds allowed for bitrate to reach target
+ OMX_U32 nInitialQP; // Initial QP for I frames
+ OMX_U32 nMinQP;
+} OMX_VIDEO_CONFIG_INTEL_BITRATETYPE;
+
+typedef enum OMX_VIDEO_INTEL_CONTROLRATETYPE {
+ OMX_Video_Intel_ControlRateDisable,
+ OMX_Video_Intel_ControlRateVariable,
+ OMX_Video_Intel_ControlRateConstant,
+ OMX_Video_Intel_ControlRateVideoConferencingMode,
+ OMX_Video_Intel_ControlRateMax = 0x7FFFFFFF
+} OMX_VIDEO_INTEL_CONTROLRATETYPE;
+
+typedef struct OMX_VIDEO_PARAM_INTEL_BITRATETYPE {
+ OMX_U32 nSize;
+ OMX_VERSIONTYPE nVersion;
+ OMX_U32 nPortIndex;
+ OMX_VIDEO_INTEL_CONTROLRATETYPE eControlRate;
+ OMX_U32 nTargetBitrate;
+} OMX_VIDEO_PARAM_INTEL_BITRATETYPE;
+
+typedef struct OMX_VIDEO_PARAM_INTEL_AVC_DECODE_SETTINGS {
+ OMX_U32 nSize; // Size of the structure
+ OMX_VERSIONTYPE nVersion; // OMX specification version
+ OMX_U32 nPortIndex; // Port that this structure applies to
+ OMX_U32 nMaxNumberOfReferenceFrame; // Maximum number of reference frames
+ OMX_U32 nMaxWidth; // Maximum width of video
+ OMX_U32 nMaxHeight; // Maximum height of video
+} OMX_VIDEO_PARAM_INTEL_AVC_DECODE_SETTINGS;
+
+
+typedef struct OMX_VIDEO_CONFIG_INTEL_SLICE_NUMBERS {
+ OMX_U32 nSize; // Size of the structure
+ OMX_VERSIONTYPE nVersion; // OMX specification version
+ OMX_U32 nPortIndex; // Port that this structure applies to
+ OMX_U32 nISliceNumber; // I frame slice number
+ OMX_U32 nPSliceNumber; // P frame slice number
+} OMX_VIDEO_CONFIG_INTEL_SLICE_NUMBERS;
+
+
+typedef struct OMX_VIDEO_CONFIG_INTEL_AIR {
+ OMX_U32 nSize; // Size of the structure
+ OMX_VERSIONTYPE nVersion; // OMX specification version
+ OMX_U32 nPortIndex; // Port that this structure applies to
+ OMX_BOOL bAirEnable; // Enable AIR
+ OMX_BOOL bAirAuto; // AIR auto
+ OMX_U32 nAirMBs; // Number of AIR MBs
+ OMX_U32 nAirThreshold; // AIR Threshold
+
+} OMX_VIDEO_CONFIG_INTEL_AIR;
#ifdef __cplusplus
}