diff options
-rw-r--r-- | msm8998/mm-core/Android.mk | 8 | ||||
-rw-r--r-- | msm8998/mm-core/inc/OMX_QCOMExtns.h | 17 | ||||
-rw-r--r-- | msm8998/mm-core/src/8909/registry_table.c | 77 | ||||
-rw-r--r-- | msm8998/mm-core/src/8909/registry_table_android.c | 77 | ||||
-rwxr-xr-x | msm8998/mm-core/src/8937/registry_table.c | 97 | ||||
-rwxr-xr-x | msm8998/mm-core/src/8937/registry_table_android.c | 97 | ||||
-rw-r--r-- | msm8998/mm-core/src/msm8996/registry_table.c | 97 | ||||
-rw-r--r-- | msm8998/mm-core/src/msm8996/registry_table_android.c | 97 | ||||
-rw-r--r-- | msm8998/mm-core/src/msm8998/registry_table.c | 559 | ||||
-rw-r--r-- | msm8998/mm-core/src/msm8998/registry_table_android.c | 813 | ||||
-rw-r--r-- | msm8998/mm-core/src/msmcobalt/registry_table.c | 97 | ||||
-rw-r--r-- | msm8998/mm-core/src/msmcobalt/registry_table_android.c | 97 | ||||
-rw-r--r-- | msm8998/mm-video-v4l2/vidc/vdec/Android.mk | 2 | ||||
-rw-r--r-- | msm8998/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp | 92 | ||||
-rw-r--r-- | msm8998/mm-video-v4l2/vidc/venc/Android.mk | 6 | ||||
-rw-r--r-- | msm8998/mm-video-v4l2/vidc/venc/src/omx_swvenc_mpeg4.cpp | 1 |
16 files changed, 2212 insertions, 22 deletions
diff --git a/msm8998/mm-core/Android.mk b/msm8998/mm-core/Android.mk index 8934a48..6584953 100644 --- a/msm8998/mm-core/Android.mk +++ b/msm8998/mm-core/Android.mk @@ -48,8 +48,8 @@ else ifeq ($(TARGET_BOARD_PLATFORM),msm8952) MM_CORE_TARGET = 8952 else ifeq ($(TARGET_BOARD_PLATFORM),msm8953) MM_CORE_TARGET = msm8953 -else ifeq ($(TARGET_BOARD_PLATFORM),msmcobalt) -MM_CORE_TARGET = msmcobalt +else ifeq ($(TARGET_BOARD_PLATFORM),msm8998) +MM_CORE_TARGET = msm8998 else MM_CORE_TARGET = default endif @@ -102,7 +102,7 @@ LOCAL_CFLAGS := $(OMXCORE_CFLAGS) LOCAL_SRC_FILES := src/common/omx_core_cmp.cpp LOCAL_SRC_FILES += src/common/qc_omx_core.c -ifneq (,$(filter msm8916 msm8994 msm8909 msm8937 msm8996 msm8992 msm8952 msm8953 msmcobalt,$(TARGET_BOARD_PLATFORM))) +ifneq (,$(filter msm8916 msm8994 msm8909 msm8937 msm8996 msm8992 msm8952 msm8953 msm8998,$(TARGET_BOARD_PLATFORM))) LOCAL_SRC_FILES += src/$(MM_CORE_TARGET)/registry_table_android.c else LOCAL_SRC_FILES += src/$(MM_CORE_TARGET)/qc_registry_table_android.c @@ -126,7 +126,7 @@ LOCAL_CFLAGS := $(OMXCORE_CFLAGS) LOCAL_SRC_FILES := src/common/omx_core_cmp.cpp LOCAL_SRC_FILES += src/common/qc_omx_core.c -ifneq (,$(filter msm8916 msm8994 msm8909 msm8937 msm8996 msm8992 msm8952 msm8953 msmcobalt,$(TARGET_BOARD_PLATFORM))) +ifneq (,$(filter msm8916 msm8994 msm8909 msm8937 msm8996 msm8992 msm8952 msm8953 msm8998,$(TARGET_BOARD_PLATFORM))) LOCAL_SRC_FILES += src/$(MM_CORE_TARGET)/registry_table.c else LOCAL_SRC_FILES += src/$(MM_CORE_TARGET)/qc_registry_table.c diff --git a/msm8998/mm-core/inc/OMX_QCOMExtns.h b/msm8998/mm-core/inc/OMX_QCOMExtns.h index ddb3810..5d81f1b 100644 --- a/msm8998/mm-core/inc/OMX_QCOMExtns.h +++ b/msm8998/mm-core/inc/OMX_QCOMExtns.h @@ -632,6 +632,10 @@ enum OMX_QCOM_EXTN_INDEXTYPE /* Configure to disable PQ*/ OMX_QTIIndexParamDisablePQ = 0x7F000068, + + /* Dither control for 10bit */ + OMX_QTIIndexParamDitherControl = 0x7F000069, + }; /** @@ -2090,6 +2094,19 @@ private: #endif // __cplusplus +typedef enum QOMX_VIDEO_DITHERTYPE { + QOMX_DITHER_DISABLE = 0, + QOMX_DITHER_COLORSPACE_EXCEPT_BT2020 = 0x01, + QOMX_DITHER_ALL_COLORSPACE = 0x02, +} QOMX_VIDEO_DITHERTYPE; + +typedef struct QOMX_VIDEO_DITHER_CONTROL { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + QOMX_VIDEO_DITHERTYPE eDitherType; +} QOMX_VIDEO_DITHER_CONTROL; + #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/msm8998/mm-core/src/8909/registry_table.c b/msm8998/mm-core/src/8909/registry_table.c index 4c9924f..b6b0c0f 100644 --- a/msm8998/mm-core/src/8909/registry_table.c +++ b/msm8998/mm-core/src/8909/registry_table.c @@ -248,6 +248,83 @@ omx_core_cb_type core[] = "audio_decoder.aac" } }, + { + "OMX.qti.audio.decoder.alac.sw", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxAlacDecSw.so", + { + "audio_decoder.alac" + } + }, + { + "OMX.qcom.audio.decoder.alac", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxAlacDec.so", + { + "audio_decoder.alac" + } + }, + { + "OMX.qcom.audio.decoder.ape", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxApeDec.so", + { + "audio_decoder.ape" + } + }, + { + "OMX.qti.audio.decoder.ape.sw", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxApeDecSw.so", + { + "audio_decoder.ape" + } + }, + { + "OMX.qti.audio.decoder.flac.sw", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxFlacDecSw.so", + { + "audio_decoder.flac" + } + } }; const unsigned int SIZE_OF_CORE = sizeof(core) / sizeof(omx_core_cb_type); diff --git a/msm8998/mm-core/src/8909/registry_table_android.c b/msm8998/mm-core/src/8909/registry_table_android.c index 226518a..94cbead 100644 --- a/msm8998/mm-core/src/8909/registry_table_android.c +++ b/msm8998/mm-core/src/8909/registry_table_android.c @@ -312,6 +312,83 @@ omx_core_cb_type core[] = { "container_muxer.mp2" } + }, + { + "OMX.qti.audio.decoder.alac.sw", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxAlacDecSw.so", + { + "audio_decoder.alac" + } + }, + { + "OMX.qcom.audio.decoder.alac", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxAlacDec.so", + { + "audio_decoder.alac" + } + }, + { + "OMX.qcom.audio.decoder.ape", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxApeDec.so", + { + "audio_decoder.ape" + } + }, + { + "OMX.qti.audio.decoder.ape.sw", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxApeDecSw.so", + { + "audio_decoder.ape" + } + }, + { + "OMX.qti.audio.decoder.flac.sw", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxFlacDecSw.so", + { + "audio_decoder.flac" + } } }; diff --git a/msm8998/mm-core/src/8937/registry_table.c b/msm8998/mm-core/src/8937/registry_table.c index ce928db..d3aee99 100755 --- a/msm8998/mm-core/src/8937/registry_table.c +++ b/msm8998/mm-core/src/8937/registry_table.c @@ -235,6 +235,103 @@ omx_core_cb_type core[] = "video_encoder.h263" } }, + { + "OMX.qcom.audio.encoder.g711mlaw", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxG711Enc.so", + { + "audio_encoder.g711" + } + }, + { + "OMX.qcom.audio.encoder.g711alaw", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxG711Enc.so", + { + "audio_encoder.g711" + } + }, + { + "OMX.qcom.audio.encoder.amrwb", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxAmrEnc.so", + { + "audio_encoder.amrwb" + } + }, + { + "OMX.qcom.audio.decoder.g711mlaw", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxG711Dec.so", + { + "audio_decoder.g711" + } + }, + { + "OMX.qcom.audio.decoder.g711alaw", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxG711Dec.so", + { + "audio_decoder.g711" + } + }, + { + "OMX.qcom.audio.decoder.amrwb", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxAmrDec.so", + { + "audio_decoder.amrwb" + } + }, + { + "OMX.qcom.audio.decoder.amrnb", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxAmrDec.so", + { + "audio_decoder.amrnb" + } + }, { "OMX.qcom.audio.decoder.Qcelp13", NULL, // Create instance function diff --git a/msm8998/mm-core/src/8937/registry_table_android.c b/msm8998/mm-core/src/8937/registry_table_android.c index 6ecb499..b835af5 100755 --- a/msm8998/mm-core/src/8937/registry_table_android.c +++ b/msm8998/mm-core/src/8937/registry_table_android.c @@ -222,6 +222,103 @@ omx_core_cb_type core[] = "video_encoder.h263" } }, + { + "OMX.qcom.audio.encoder.g711mlaw", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxG711Enc.so", + { + "audio_encoder.g711" + } + }, + { + "OMX.qcom.audio.encoder.g711alaw", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxG711Enc.so", + { + "audio_encoder.g711" + } + }, + { + "OMX.qcom.audio.encoder.amrwb", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxAmrEnc.so", + { + "audio_encoder.amrwb" + } + }, + { + "OMX.qcom.audio.decoder.g711mlaw", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxG711Dec.so", + { + "audio_decoder.g711" + } + }, + { + "OMX.qcom.audio.decoder.g711alaw", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxG711Dec.so", + { + "audio_decoder.g711" + } + }, + { + "OMX.qcom.audio.decoder.amrwb", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxAmrDec.so", + { + "audio_decoder.amrwb" + } + }, + { + "OMX.qcom.audio.decoder.amrnb", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxAmrDec.so", + { + "audio_decoder.amrnb" + } + }, { "OMX.qcom.audio.decoder.Qcelp13", NULL, // Create instance function diff --git a/msm8998/mm-core/src/msm8996/registry_table.c b/msm8998/mm-core/src/msm8996/registry_table.c index fbfe2c8..914ea3c 100644 --- a/msm8998/mm-core/src/msm8996/registry_table.c +++ b/msm8998/mm-core/src/msm8996/registry_table.c @@ -518,6 +518,103 @@ omx_core_cb_type core[] = "audio_encoder.amrnb" } }, + { + "OMX.qcom.audio.encoder.g711mlaw", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxG711Enc.so", + { + "audio_encoder.g711" + } + }, + { + "OMX.qcom.audio.encoder.g711alaw", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxG711Enc.so", + { + "audio_encoder.g711" + } + }, + { + "OMX.qcom.audio.encoder.amrwb", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxAmrEnc.so", + { + "audio_encoder.amrwb" + } + }, + { + "OMX.qcom.audio.decoder.g711mlaw", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxG711Dec.so", + { + "audio_decoder.g711" + } + }, + { + "OMX.qcom.audio.decoder.g711alaw", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxG711Dec.so", + { + "audio_decoder.g711" + } + }, + { + "OMX.qcom.audio.decoder.amrwb", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxAmrDec.so", + { + "audio_decoder.amrwb" + } + }, + { + "OMX.qcom.audio.decoder.amrnb", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxAmrDec.so", + { + "audio_decoder.amrnb" + } + }, { "OMX.qcom.audio.decoder.aac", NULL, // Create instance function diff --git a/msm8998/mm-core/src/msm8996/registry_table_android.c b/msm8998/mm-core/src/msm8996/registry_table_android.c index f574ad4..fdcb1a1 100644 --- a/msm8998/mm-core/src/msm8996/registry_table_android.c +++ b/msm8998/mm-core/src/msm8996/registry_table_android.c @@ -710,6 +710,103 @@ omx_core_cb_type core[] = "audio_encoder.amrnb" } }, + { + "OMX.qcom.audio.encoder.g711mlaw", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxG711Enc.so", + { + "audio_encoder.g711" + } + }, + { + "OMX.qcom.audio.encoder.g711alaw", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxG711Enc.so", + { + "audio_encoder.g711" + } + }, + { + "OMX.qcom.audio.encoder.amrwb", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxAmrEnc.so", + { + "audio_encoder.amrwb" + } + }, + { + "OMX.qcom.audio.decoder.g711mlaw", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxG711Dec.so", + { + "audio_decoder.g711" + } + }, + { + "OMX.qcom.audio.decoder.g711alaw", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxG711Dec.so", + { + "audio_decoder.g711" + } + }, + { + "OMX.qcom.audio.decoder.amrwb", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxAmrDec.so", + { + "audio_decoder.amrwb" + } + }, + { + "OMX.qcom.audio.decoder.amrnb", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxAmrDec.so", + { + "audio_decoder.amrnb" + } + }, { "OMX.qcom.audio.decoder.aac", NULL, // Create instance function diff --git a/msm8998/mm-core/src/msm8998/registry_table.c b/msm8998/mm-core/src/msm8998/registry_table.c new file mode 100644 index 0000000..627d1e7 --- /dev/null +++ b/msm8998/mm-core/src/msm8998/registry_table.c @@ -0,0 +1,559 @@ +/*-------------------------------------------------------------------------- +Copyright (c) 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: + * 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 "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. + +--------------------------------------------------------------------------*/ +/*============================================================================ + O p e n M A X w r a p p e r s + O p e n M A X C o r e + + This module contains the registry table for the OpenMAX core. + +*//*========================================================================*/ + +#include "qc_omx_core.h" + +omx_core_cb_type core[] = +{ + { + "OMX.qcom.video.decoder.avc", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVdec.so", + { + "video_decoder.avc" + } + }, + { + "OMX.qcom.video.decoder.avc.dsmode", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVideoDSMode.so", + { + "video_decoder.avc" + } + }, + { + "OMX.qcom.video.decoder.mpeg4", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVdec.so", + { + "video_decoder.mpeg4" + } + }, + { + "OMX.qcom.video.decoder.vc1", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVdec.so", + { + "video_decoder.vc1" + } + }, + { + "OMX.qcom.video.decoder.wmv", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVdec.so", + { + "video_decoder.vc1" + } + }, + { + "OMX.qcom.file.muxer", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + + "libOmxMux.so", + { + "container_muxer.mp2" + } + }, + { + "OMX.qcom.video.decoder.divx4", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVdec.so", + { + "video_decoder.divx" + } + }, + { + "OMX.qcom.video.decoder.divx", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVdec.so", + { + "video_decoder.divx" + } + }, + { + "OMX.qcom.video.decoder.divx311", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVdec.so", + { + "video_decoder.divx" + } + }, + { + "OMX.qcom.video.decoder.h263", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVdec.so", + { + "video_decoder.h263" + } + }, + { + "OMX.qcom.video.decoder.hevc", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVdec.so", + { + "video_decoder.hevc" + } + }, + { + "OMX.qcom.video.decoder.vp8", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVdec.so", + { + "video_decoder.vp8" + } + }, + { + "OMX.qcom.video.decoder.vp9", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVdec.so", + { + "video_decoder.vp9" + } + }, + { + "OMX.qcom.video.encoder.mpeg4", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVenc.so", + { + "video_encoder.mpeg4" + } + }, + { + "OMX.qcom.video.encoder.h263", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVenc.so", + { + "video_encoder.h263", + } + }, + { + "OMX.qcom.video.encoder.avc", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVenc.so", + { + "video_encoder.avc" + } + }, + { + "OMX.qcom.video.encoder.vp8", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVenc.so", + { + "video_encoder.vp8", + } + }, + { + "OMX.qcom.video.encoder.hevc", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVenc.so", + { + "video_encoder.hevc" + } + }, + { + "OMX.qcom.audio.decoder.Qcelp13", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxQcelp13Dec.so", + { + "audio_decoder.Qcelp13" + } + }, + { + "OMX.qcom.audio.decoder.evrc", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxEvrcDec.so", + { + "audio_decoder.evrc" + } + }, + { + "OMX.qcom.audio.decoder.wma", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxWmaDec.so", + { + "audio_decoder.wma" + } + }, + { + "OMX.qcom.audio.decoder.wma10Pro", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxWmaDec.so", + { + "audio_decoder.wma" + } + }, + { + "OMX.qcom.audio.decoder.alac", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxAlacDec.so", + { + "audio_decoder.alac" + } + }, + { + "OMX.qcom.audio.decoder.ape", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxApeDec.so", + { + "audio_decoder.ape" + } + }, + { + "OMX.qti.audio.decoder.dsd", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxDsdDec.so", + { + "audio_decoder.dsd" + } + }, + { + "OMX.qcom.audio.encoder.aac", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxAacEnc.so", + { + "audio_encoder.aac" + } + }, + { + "OMX.qcom.audio.encoder.qcelp13", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxQcelp13Enc.so", + { + "audio_encoder.qcelp13" + } + }, + { + "OMX.qcom.audio.encoder.evrc", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxEvrcEnc.so", + { + "audio_encoder.evrc" + } + }, + { + "OMX.qcom.audio.encoder.amrnb", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxAmrEnc.so", + { + "audio_encoder.amrnb" + } + }, + { + "OMX.qcom.audio.decoder.aac", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxAacDec.so", + { + "audio_decoder.aac" + } + }, + { + "OMX.qcom.audio.decoder.multiaac", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxAacDec.so", + { + "audio_decoder.aac" + } + }, + { + "OMX.qti.vdec.vpp", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVpp.so", + { + "video_decoder.vpp" + } + } +}; + +const unsigned int SIZE_OF_CORE = sizeof(core) / sizeof(omx_core_cb_type); + + diff --git a/msm8998/mm-core/src/msm8998/registry_table_android.c b/msm8998/mm-core/src/msm8998/registry_table_android.c new file mode 100644 index 0000000..fbd9829 --- /dev/null +++ b/msm8998/mm-core/src/msm8998/registry_table_android.c @@ -0,0 +1,813 @@ +/*-------------------------------------------------------------------------- +Copyright (c) 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: + * 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 "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. +--------------------------------------------------------------------------*/ +/*============================================================================ + O p e n M A X w r a p p e r s + O p e n M A X C o r e + + This module contains the registry table for the OpenMAX core. + +*//*========================================================================*/ + + +#include "qc_omx_core.h" + +omx_core_cb_type core[] = +{ + { + "OMX.qcom.video.decoder.avc", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVdec.so", + { + "video_decoder.avc" + } + }, + { + "OMX.qcom.video.decoder.avc.dsmode", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVideoDSMode.so", + { + "video_decoder.avc" + } + }, + { + "OMX.qcom.video.decoder.avc.secure", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVdec.so", + { + "video_decoder.avc" + } + }, + { + "OMX.qcom.video.decoder.avc.secure.dsmode", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVideoDSMode.so", + { + "video_decoder.avc" + } + }, + + { + "OMX.qcom.video.decoder.divx4", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVdec.so", + { + "video_decoder.divx" + } + }, + { + "OMX.qcom.video.decoder.divx", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVdec.so", + { + "video_decoder.divx" + } + }, + { + "OMX.qcom.video.decoder.divx311", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVdec.so", + { + "video_decoder.divx" + } + }, + { + "OMX.qcom.video.decoder.mpeg4", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVdec.so", + { + "video_decoder.mpeg4" + } + }, + { + "OMX.qcom.video.decoder.mpeg4.secure", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVdec.so", + { + "video_decoder.mpeg4" + } + }, + { + "OMX.qcom.video.decoder.mpeg2", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVdec.so", + { + "video_decoder.mpeg2" + } + }, + { + "OMX.qcom.video.decoder.mpeg2.secure", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVdec.so", + { + "video_decoder.mpeg2" + } + }, + { + "OMX.qcom.video.decoder.vc1", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVdec.so", + { + "video_decoder.vc1" + } + }, + { + "OMX.qcom.video.decoder.vc1.secure", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVdec.so", + { + "video_decoder.vc1" + } + }, + { + "OMX.qcom.video.decoder.wmv", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVdec.so", + { + "video_decoder.vc1" + } + }, + { + "OMX.qcom.video.decoder.wmv.secure", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVdec.so", + { + "video_decoder.vc1" + } + }, + { + "OMX.qcom.video.decoder.h263", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVdec.so", + { + "video_decoder.h263" + } + }, + { + "OMX.qcom.video.decoder.hevc", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVdec.so", + { + "video_decoder.hevc" + } + }, + { + "OMX.qcom.video.decoder.hevc.secure", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVdec.so", + { + "video_decoder.hevc" + } + }, + { + "OMX.qcom.video.decoder.vp8", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVdec.so", + { + "video_decoder.vp8" + } + }, + { + "OMX.qcom.video.decoder.vp9", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVdec.so", + { + "video_decoder.vp9" + } + }, + { + "OMX.qcom.video.decoder.vp9.secure", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVdec.so", + { + "video_decoder.vp9" + } + }, + { + "OMX.qcom.video.encoder.mpeg4", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVenc.so", + { + "video_encoder.mpeg4" + } + }, + { + "OMX.qcom.video.encoder.h263", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVenc.so", + { + "video_encoder.h263" + } + }, + { + "OMX.qcom.video.encoder.avc", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVenc.so", + { + "video_encoder.avc" + } + }, + { + "OMX.qcom.video.encoder.avc.secure", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVenc.so", + { + "video_encoder.avc" + } + }, + { + "OMX.qcom.video.encoder.vp8", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVenc.so", + { + "video_encoder.vp8" + } + }, + { + "OMX.qcom.video.encoder.hevc", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVenc.so", + { + "video_encoder.hevc" + } + }, + { + "OMX.qcom.video.encoder.hevc.secure", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVenc.so", + { + "video_encoder.hevc" + } + }, + { + "OMX.qcom.audio.decoder.Qcelp13", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxQcelp13Dec.so", + { + "audio_decoder.Qcelp13" + } + }, + { + "OMX.qcom.audio.decoder.evrc", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxEvrcDec.so", + { + "audio_decoder.evrc" + } + }, + { + "OMX.qcom.audio.decoder.wma", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxWmaDec.so", + { + "audio_decoder.wma" + } + }, + { + "OMX.qcom.audio.decoder.wma10Pro", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxWmaDec.so", + { + "audio_decoder.wma" + } + }, + { + "OMX.qcom.audio.decoder.wmaLossLess", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxWmaDec.so", + { + "audio_decoder.wma" + } + }, + { + "OMX.qcom.audio.decoder.amrwbplus", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxAmrwbplusDec.so", + { + "audio_decoder.awbplus" + } + }, + { + "OMX.qcom.audio.decoder.alac", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxAlacDec.so", + { + "audio_decoder.alac" + } + }, + { + "OMX.qti.audio.decoder.alac.sw", + NULL, // Create instance function + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxAlacDecSw.so", + { + "audio_decoder.alac" + } + }, + { + "OMX.qcom.audio.decoder.ape", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxApeDec.so", + { + "audio_decoder.ape" + } + }, + { + "OMX.qti.audio.decoder.ape.sw", + NULL, // Create instance function + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxApeDecSw.so", + { + "audio_decoder.ape" + } + }, + { + "OMX.qti.audio.decoder.dsd", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxDsdDec.so", + { + "audio_decoder.dsd" + } + }, + { + "OMX.qcom.audio.encoder.aac", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxAacEnc.so", + { + "audio_encoder.aac" + } + }, + { + "OMX.qcom.audio.encoder.qcelp13", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxQcelp13Enc.so", + { + "audio_encoder.qcelp13" + } + }, + { + "OMX.qcom.audio.encoder.evrc", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxEvrcEnc.so", + { + "audio_encoder.evrc" + } + }, + { + "OMX.qcom.audio.encoder.amrnb", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxAmrEnc.so", + { + "audio_encoder.amrnb" + } + }, + { + "OMX.qcom.audio.decoder.aac", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxAacDec.so", + { + "audio_decoder.aac" + } + }, + { + "OMX.qcom.audio.decoder.multiaac", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxAacDec.so", + { + "audio_decoder.aac" + } + }, + { + "AIV.play.generic", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libAivPlay.so", + { + "AIV.play.role.generic" + } + }, + { + "OMX.qcom.file.muxer", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxMux.so", + { + "container_muxer.mp2" + } + }, + { + "OMX.qti.vdec.vpp", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxVpp.so", + { + "video_decoder.vpp" + } + } +}; + +const unsigned int SIZE_OF_CORE = sizeof(core) / sizeof(omx_core_cb_type); + + diff --git a/msm8998/mm-core/src/msmcobalt/registry_table.c b/msm8998/mm-core/src/msmcobalt/registry_table.c index 627d1e7..7381960 100644 --- a/msm8998/mm-core/src/msmcobalt/registry_table.c +++ b/msm8998/mm-core/src/msmcobalt/registry_table.c @@ -504,6 +504,103 @@ omx_core_cb_type core[] = "audio_encoder.amrnb" } }, + { + "OMX.qcom.audio.encoder.g711mlaw", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxG711Enc.so", + { + "audio_encoder.g711" + } + }, + { + "OMX.qcom.audio.encoder.g711alaw", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxG711Enc.so", + { + "audio_encoder.g711" + } + }, + { + "OMX.qcom.audio.encoder.amrwb", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxAmrEnc.so", + { + "audio_encoder.amrwb" + } + }, + { + "OMX.qcom.audio.decoder.g711mlaw", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxG711Dec.so", + { + "audio_decoder.g711" + } + }, + { + "OMX.qcom.audio.decoder.g711alaw", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxG711Dec.so", + { + "audio_decoder.g711" + } + }, + { + "OMX.qcom.audio.decoder.amrwb", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxAmrDec.so", + { + "audio_decoder.amrwb" + } + }, + { + "OMX.qcom.audio.decoder.amrnb", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxAmrDec.so", + { + "audio_decoder.amrnb" + } + }, { "OMX.qcom.audio.decoder.aac", NULL, // Create instance function diff --git a/msm8998/mm-core/src/msmcobalt/registry_table_android.c b/msm8998/mm-core/src/msmcobalt/registry_table_android.c index fbd9829..4997afe 100644 --- a/msm8998/mm-core/src/msmcobalt/registry_table_android.c +++ b/msm8998/mm-core/src/msmcobalt/registry_table_android.c @@ -726,6 +726,103 @@ omx_core_cb_type core[] = "audio_encoder.amrnb" } }, + { + "OMX.qcom.audio.encoder.g711mlaw", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxG711Enc.so", + { + "audio_encoder.g711" + } + }, + { + "OMX.qcom.audio.encoder.g711alaw", + NULL, // Create instance function + // Unique instance handle + { + NULL, + NULL, + NULL, + NULL + }, + NULL, // Shared object library handle + "libOmxG711Enc.so", + { + "audio_encoder.g711" + } + }, + { + "OMX.qcom.audio.encoder.amrwb", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxAmrEnc.so", + { + "audio_encoder.amrwb" + } + }, + { + "OMX.qcom.audio.decoder.g711mlaw", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxG711Dec.so", + { + "audio_decoder.g711" + } + }, + { + "OMX.qcom.audio.decoder.g711alaw", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxG711Dec.so", + { + "audio_decoder.g711" + } + }, + { + "OMX.qcom.audio.decoder.amrwb", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxAmrDec.so", + { + "audio_decoder.amrwb" + } + }, + { + "OMX.qcom.audio.decoder.amrnb", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxAmrDec.so", + { + "audio_decoder.amrnb" + } + }, { "OMX.qcom.audio.decoder.aac", NULL, // Create instance function diff --git a/msm8998/mm-video-v4l2/vidc/vdec/Android.mk b/msm8998/mm-video-v4l2/vidc/vdec/Android.mk index 287bba7..c29710d 100644 --- a/msm8998/mm-video-v4l2/vidc/vdec/Android.mk +++ b/msm8998/mm-video-v4l2/vidc/vdec/Android.mk @@ -28,7 +28,7 @@ libmm-vdec-def += -DMAX_RES_1080P_EBI TARGETS_THAT_USE_HEVC_ADSP_HEAP := msm8226 msm8974 TARGETS_THAT_HAVE_VENUS_HEVC := apq8084 msm8994 msm8996 -TARGETS_THAT_SUPPORT_UBWC := msm8996 msm8953 msmcobalt +TARGETS_THAT_SUPPORT_UBWC := msm8996 msm8953 msm8998 TARGETS_THAT_NEED_SW_VDEC := msm8937 ifeq ($(call is-board-platform-in-list, $(TARGETS_THAT_USE_HEVC_ADSP_HEAP)),true) diff --git a/msm8998/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp b/msm8998/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp index ae02358..99b0c6e 100644 --- a/msm8998/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp +++ b/msm8998/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp @@ -148,6 +148,8 @@ extern "C" { #define SECURE_FLAGS_OUTPUT_BUFFER ION_SECURE #endif +#define LUMINANCE_DIV_FACTOR 10000.0 + static OMX_U32 maxSmoothStreamingWidth = 1920; static OMX_U32 maxSmoothStreamingHeight = 1088; @@ -237,6 +239,14 @@ void* async_message_thread (void *input) omx->m_progressive = ptr[4]; DEBUG_PRINT_HIGH("VIDC Port Reconfig PicStruct change - %d", ptr[4]); } + if(ptr[2] & V4L2_EVENT_COLOUR_SPACE_FLAG) { + if (ptr[5] == MSM_VIDC_BT2020) { + omx->m_color_space = omx_vdec::BT2020; + } else { + omx->m_color_space = omx_vdec::EXCEPT_BT2020; + } + DEBUG_PRINT_HIGH("VIDC Port Reconfig ColorSpace change - %d", omx->m_color_space); + } if (omx->async_message_process(input,&vdec_msg) < 0) { DEBUG_PRINT_HIGH("async_message_thread Exited"); break; @@ -559,7 +569,7 @@ bool is_platform_tp10capture_supported() { char platform_name[PROPERTY_VALUE_MAX] = {0}; property_get("ro.board.platform", platform_name, "0"); - if (!strncmp(platform_name, "msmcobalt", 9)) { + if (!strncmp(platform_name, "msm8998", 9)) { DEBUG_PRINT_HIGH("TP10 on capture port is supported"); return true; } @@ -828,7 +838,17 @@ omx_vdec::omx_vdec(): m_error_propogated(false), m_internal_hdr_info.nPortIndex = (OMX_U32)OMX_CORE_OUTPUT_PORT_INDEX; m_change_client_hdr_info = false; pthread_mutex_init(&m_hdr_info_client_lock, NULL); - m_dither_config = is_platform_tp10capture_supported() ? DITHER_DISABLE : DITHER_ALL_COLORSPACE; + + char dither_value[PROPERTY_VALUE_MAX] = {0}; + property_get("vidc.dec.dither", dither_value, "0"); + if ((atoi(dither_value) > DITHER_ALL_COLORSPACE) || + (atoi(dither_value) < DITHER_DISABLE)) { + m_dither_config = DITHER_ALL_COLORSPACE; + } else { + m_dither_config = is_platform_tp10capture_supported() ? (dither_type)atoi(dither_value) : DITHER_ALL_COLORSPACE; + } + + DEBUG_PRINT_HIGH("Dither config is %d", m_dither_config); m_color_space = EXCEPT_BT2020; } @@ -3925,6 +3945,16 @@ OMX_ERRORTYPE omx_vdec::get_parameter(OMX_IN OMX_HANDLETYPE hComp, eRet = OMX_ErrorNone; break; } + case OMX_QTIIndexParamDitherControl: + { + VALIDATE_OMX_PARAM_DATA(paramData, QOMX_VIDEO_DITHER_CONTROL); + DEBUG_PRINT_LOW("get_parameter: QOMX_VIDEO_DITHER_CONTROL"); + QOMX_VIDEO_DITHER_CONTROL *pParam = + (QOMX_VIDEO_DITHER_CONTROL *) paramData; + pParam->eDitherType = (QOMX_VIDEO_DITHERTYPE) m_dither_config; + eRet = OMX_ErrorNone; + break; + } default: { DEBUG_PRINT_ERROR("get_parameter: unknown param %08x", paramIndex); eRet =OMX_ErrorUnsupportedIndex; @@ -5107,7 +5137,22 @@ OMX_ERRORTYPE omx_vdec::set_parameter(OMX_IN OMX_HANDLETYPE hComp, } break; } - + case OMX_QTIIndexParamDitherControl: + { + VALIDATE_OMX_PARAM_DATA(paramData, QOMX_VIDEO_DITHER_CONTROL); + DEBUG_PRINT_LOW("set_parameter: OMX_QTIIndexParamDitherControl"); + QOMX_VIDEO_DITHER_CONTROL *pParam = (QOMX_VIDEO_DITHER_CONTROL *)paramData; + DEBUG_PRINT_LOW("set_parameter: Dither Config from client is: %d", pParam->eDitherType); + if (( pParam->eDitherType < QOMX_DITHER_DISABLE ) || + ( pParam->eDitherType > QOMX_DITHER_ALL_COLORSPACE)) { + DEBUG_PRINT_ERROR("set_parameter: DitherType outside the range"); + eRet = OMX_ErrorBadParameter; + break; + } + m_dither_config = is_platform_tp10capture_supported() ? (dither_type)pParam->eDitherType : DITHER_ALL_COLORSPACE; + DEBUG_PRINT_LOW("set_parameter: Final Dither Config is: %d", m_dither_config); + break; + } default: { DEBUG_PRINT_ERROR("Setparameter: unknown param %d", paramIndex); eRet = OMX_ErrorUnsupportedIndex; @@ -8460,21 +8505,35 @@ OMX_ERRORTYPE omx_vdec::fill_buffer_done(OMX_HANDLETYPE hComp, } // add current framerate to gralloc meta data - if (buffer->nFilledLen > 0 && m_drc_enable && m_enable_android_native_buffers && m_out_mem_ptr) { - //If valid fps was received, directly send it to display for the 1st fbd. - //Otherwise, calculate fps using fbd timestamps, - // when received 2 fbds, send a coarse fps, - // when received 30 fbds, update fps again as it should be - // more accurate than the one when only 2 fbds received. - //For other frames, set value 0 to inform that refresh rate has no update + if ((buffer->nFilledLen > 0) && m_enable_android_native_buffers && m_out_mem_ptr) { + // If valid fps was received, directly send it to display for the 1st fbd. + // Otherwise, calculate fps using fbd timestamps float refresh_rate = m_fps_prev; if (m_fps_received) { if (1 == proc_frms) { refresh_rate = m_fps_received / (float)(1<<16); } } else { - if (2 == proc_frms || 30 == proc_frms) { - refresh_rate = drv_ctx.frame_rate.fps_numerator / (float) drv_ctx.frame_rate.fps_denominator; + // check if dynamic refresh rate change feature enabled or not + if (m_drc_enable) { + // set coarse fps when 2 fbds received and + // set fps again when 30 fbds received as it should be + // more accurate than the one set when only 2 fbds received. + if (2 == proc_frms || 30 == proc_frms) { + if (drv_ctx.frame_rate.fps_denominator) { + refresh_rate = drv_ctx.frame_rate.fps_numerator / + (float) drv_ctx.frame_rate.fps_denominator; + } + } + } else { + // calculate and set refresh rate for every frame from second frame onwards + // display will assume the default refresh rate for first frame (which is 60 fps) + if (m_fps_prev) { + if (drv_ctx.frame_rate.fps_denominator) { + refresh_rate = drv_ctx.frame_rate.fps_numerator / + (float) drv_ctx.frame_rate.fps_denominator; + } + } } } if (refresh_rate > 60) { @@ -10833,7 +10892,12 @@ bool omx_vdec::handle_mastering_display_color_info(void* data) internal_disp_changed_flag |= (hdr_info->sType1.mW.x != mastering_display_payload->nWhitePointX) || (hdr_info->sType1.mW.y != mastering_display_payload->nWhitePointY); - internal_disp_changed_flag != (hdr_info->sType1.mMaxDisplayLuminance != mastering_display_payload->nMaxDisplayMasteringLuminance) || + /* Maximum Display Luminance from the bitstream is in 0.0001 cd/m2 while the HDRStaticInfo extension + requires it in cd/m2, so dividing by 10000 and rounding the value after division + */ + uint16_t max_display_luminance_cd_m2 = + static_cast<int>((mastering_display_payload->nMaxDisplayMasteringLuminance / LUMINANCE_DIV_FACTOR) + 0.5); + internal_disp_changed_flag |= (hdr_info->sType1.mMaxDisplayLuminance != max_display_luminance_cd_m2) || (hdr_info->sType1.mMinDisplayLuminance != mastering_display_payload->nMinDisplayMasteringLuminance); if (internal_disp_changed_flag) { @@ -10846,7 +10910,7 @@ bool omx_vdec::handle_mastering_display_color_info(void* data) hdr_info->sType1.mW.x = mastering_display_payload->nWhitePointX; hdr_info->sType1.mW.y = mastering_display_payload->nWhitePointY; - hdr_info->sType1.mMaxDisplayLuminance = mastering_display_payload->nMaxDisplayMasteringLuminance; + hdr_info->sType1.mMaxDisplayLuminance = max_display_luminance_cd_m2; hdr_info->sType1.mMinDisplayLuminance = mastering_display_payload->nMinDisplayMasteringLuminance; } diff --git a/msm8998/mm-video-v4l2/vidc/venc/Android.mk b/msm8998/mm-video-v4l2/vidc/venc/Android.mk index bf74532..e1cd555 100644 --- a/msm8998/mm-video-v4l2/vidc/venc/Android.mk +++ b/msm8998/mm-video-v4l2/vidc/venc/Android.mk @@ -24,9 +24,9 @@ libmm-venc-def += -D_MSM8974_ TARGETS_THAT_USE_FLAG_MSM8226 := msm8226 msm8916 msm8909 TARGETS_THAT_NEED_SW_VENC_MPEG4 := msm8909 msm8937 TARGETS_THAT_NEED_SW_VENC_HEVC := msm8992 -TARGETS_THAT_SUPPORT_UBWC := msm8996 msmcobalt -TARGETS_THAT_SUPPORT_VQZIP := msm8996 msmcobalt -TARGETS_THAT_SUPPORT_PQ := msm8996 msmcobalt +TARGETS_THAT_SUPPORT_UBWC := msm8996 msm8998 +TARGETS_THAT_SUPPORT_VQZIP := msm8996 msm8998 +TARGETS_THAT_SUPPORT_PQ := msm8996 msm8998 ifeq ($(TARGET_BOARD_PLATFORM),msm8610) libmm-venc-def += -DMAX_RES_720P diff --git a/msm8998/mm-video-v4l2/vidc/venc/src/omx_swvenc_mpeg4.cpp b/msm8998/mm-video-v4l2/vidc/venc/src/omx_swvenc_mpeg4.cpp index b6c6160..358f797 100644 --- a/msm8998/mm-video-v4l2/vidc/venc/src/omx_swvenc_mpeg4.cpp +++ b/msm8998/mm-video-v4l2/vidc/venc/src/omx_swvenc_mpeg4.cpp @@ -2379,6 +2379,7 @@ int omx_venc::swvenc_input_log_buffers(const char *buffer, int bufferlen) fwrite(temp, width, 1, m_debug.infile); temp += stride; } + temp = (char*)(buffer + (stride * scanlines)); for(int i = 0; i < height/2; i++) { fwrite(temp, width, 1, m_debug.infile); |