diff options
author | Jeongmo Yang <jm80.yang@samsung.com> | 2019-09-24 17:07:06 +0900 |
---|---|---|
committer | Jeongmo Yang <jm80.yang@samsung.com> | 2019-09-24 17:08:03 +0900 |
commit | 1c6389c4ca1058345c1465f0f48d5763ef575573 (patch) | |
tree | 2ec5e094680aef2455707955ee5bcee0e58fb9ba | |
parent | 91d3cf6b18488133bf6de5dee04c3414ac7c8d75 (diff) | |
download | libomxil-e9110-v4l2-1c6389c4ca1058345c1465f0f48d5763ef575573.tar.gz libomxil-e9110-v4l2-1c6389c4ca1058345c1465f0f48d5763ef575573.tar.bz2 libomxil-e9110-v4l2-1c6389c4ca1058345c1465f0f48d5763ef575573.zip |
Add feature for tizen allocatortizen_6.0.m2_releasetizen_5.5.m2_releasesubmit/tizen_6.0_hotfix/20201103.114801submit/tizen_6.0_hotfix/20201102.192501submit/tizen_6.0/20201029.205101submit/tizen_5.5_wearable_hotfix/20201026.184301submit/tizen_5.5_mobile_hotfix/20201026.185101submit/tizen_5.5/20191031.000009submit/tizen/20190930.022114submit/tizen/20190927.025928accepted/tizen/unified/20190930.234553accepted/tizen/6.0/unified/hotfix/20201103.052728accepted/tizen/6.0/unified/20201030.123046accepted/tizen/5.5/unified/wearable/hotfix/20201027.123737accepted/tizen/5.5/unified/mobile/hotfix/20201027.082646accepted/tizen/5.5/unified/20191031.004550tizen_6.0_hotfixtizen_6.0tizen_5.5_wearable_hotfixtizen_5.5_tvtizen_5.5_mobile_hotfixtizen_5.5accepted/tizen_6.0_unified_hotfixaccepted/tizen_6.0_unifiedaccepted/tizen_5.5_unified_wearable_hotfixaccepted/tizen_5.5_unified_mobile_hotfixaccepted/tizen_5.5_unified
[Version] 0.0.2-4
[Profile] Common
[Issue Type] Featuring
Change-Id: I014a52767e9579021d75cb4d25efb9f75d2db25a
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
-rwxr-xr-x | configure.ac | 20 | ||||
-rwxr-xr-x | openmax/osal/Exynos_OSAL_Tizen.c | 26 | ||||
-rwxr-xr-x | openmax/osal/Makefile.am | 11 | ||||
-rwxr-xr-x | packaging/libomxil-e9110-v4l2.spec | 4 |
4 files changed, 53 insertions, 8 deletions
diff --git a/configure.ac b/configure.ac index b4528d6..2d81630 100755 --- a/configure.ac +++ b/configure.ac @@ -81,9 +81,23 @@ PKG_CHECK_MODULES(EXYNOSCOMMON,exynos-common) AC_SUBST(EXYNOSCOMMON_CFLAGS) AC_SUBST(EXYNOSCOMMON_LIBS) -PKG_CHECK_MODULES(TBM, libtbm) -AC_SUBST(TBM_CFLAGS) -AC_SUBST(TBM_LIBS) +dnl Tizen allocator(since 5.0) +AC_ARG_ENABLE([tizen-allocator], AC_HELP_STRING([--enable-tizen-allocator], [Enable tizen allocator specific code]), + [ + case "${enableval}" in + yes) TIZEN_ALLOCATOR=yes ;; + no) TIZEN_ALLOCATOR=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for --enable-tizen-allocator) ;; + esac + ], + [TIZEN_ALLOCATOR=no]) +if test "x$TIZEN_ALLOCATOR" = "xyes"; then + PKG_CHECK_MODULES(TBM, libtbm) + AC_SUBST(TBM_CFLAGS) + AC_SUBST(TBM_LIBS) +fi +AM_CONDITIONAL([TIZEN_ALLOCATOR], [test "x$TIZEN_ALLOCATOR" = "xyes"]) + dnl use dlog ------------------------------------------------------------------ AC_ARG_ENABLE(dlog, AC_HELP_STRING([--enable-dlog], [using dlog]), diff --git a/openmax/osal/Exynos_OSAL_Tizen.c b/openmax/osal/Exynos_OSAL_Tizen.c index d959bc1..4aecf3c 100755 --- a/openmax/osal/Exynos_OSAL_Tizen.c +++ b/openmax/osal/Exynos_OSAL_Tizen.c @@ -36,9 +36,13 @@ #include "ExynosVideoApi.h" +#ifdef TIZEN_FEATURE_TIZEN_ALLOCATOR #include <tbm_bufmgr.h> #include <tbm_surface.h> #include <tbm_surface_internal.h> +#else +#include <mmf/mm_types.h> +#endif #undef EXYNOS_LOG_TAG #define EXYNOS_LOG_TAG "Exynos_OSAL_Tizen" @@ -161,8 +165,12 @@ OMX_ERRORTYPE Exynos_OSAL_GetParameter( EXYNOS_OMX_BASEPORT *pExynosPort = &pExynosComponent->pExynosPort[pPortDef->nPortIndex]; if (pExynosPort->eMetaDataType == METADATA_TYPE_DATA) +#ifdef TIZEN_FEATURE_TIZEN_ALLOCATOR pPortDef->nBufferSize = (ALIGN(pExynosPort->portDefinition.format.video.nFrameWidth, 16) * ALIGN(pExynosPort->portDefinition.format.video.nFrameHeight, 16) * 3) / 2; +#else + pPortDef->nBufferSize = sizeof(MMVideoBuffer); +#endif } break; default: @@ -361,8 +369,13 @@ OMX_ERRORTYPE Exynos_OSAL_GetInfoFromMetaData( OMX_IN EXYNOS_METADATA_TYPE eMetaDataType) { OMX_ERRORTYPE ret = OMX_ErrorNone; +#ifdef TIZEN_FEATURE_TIZEN_ALLOCATOR tbm_surface_h surface; tbm_bo bo[2]; +#else + MMVideoBuffer *pMetaBuffer = NULL; +#endif + int i; FunctionIn(); @@ -376,6 +389,7 @@ OMX_ERRORTYPE Exynos_OSAL_GetInfoFromMetaData( } if (eMetaDataType == METADATA_TYPE_DATA) { +#ifdef TIZEN_FEATURE_TIZEN_ALLOCATOR surface = (tbm_surface_h)pBuffer; bo[0] = tbm_surface_internal_get_bo(surface, 0); @@ -384,6 +398,13 @@ OMX_ERRORTYPE Exynos_OSAL_GetInfoFromMetaData( for (i = 0; i < 2; i++) { pBufferInfo->fd[i] = (unsigned long)(tbm_bo_get_handle (bo[i], TBM_DEVICE_MM).u32); pBufferInfo->addr[i] = (OMX_PTR)(tbm_bo_get_handle (bo[i], TBM_DEVICE_CPU).ptr); +#else + pMetaBuffer = (MMVideoBuffer *)pBuffer; + + for (i = 0; i < pMetaBuffer->plane_num; i++) { + pBufferInfo->fd[i] = (unsigned long)(pMetaBuffer->handle.dmabuf_fd[i]); + pBufferInfo->addr[i] = (OMX_PTR)(pMetaBuffer->data[i]); +#endif Exynos_OSAL_Log(EXYNOS_LOG_ESSENTIAL, "[%s] Plane[%d]: FD(%u), VA(%p)", __FUNCTION__, i, pBufferInfo->fd[i], pBufferInfo->addr[i]); @@ -436,8 +457,11 @@ OMX_PTR Exynos_OSAL_AllocMetaDataBuffer( FunctionIn(); if (eMetaDataType == METADATA_TYPE_DATA) { +#ifdef TIZEN_FEATURE_TIZEN_ALLOCATOR pBuffer = Exynos_OSAL_Malloc(sizeof(tbm_surface_h)); - +#else + pBuffer = Exynos_OSAL_Malloc(sizeof(MMVideoBuffer)); +#endif if (pBuffer == NULL) { Exynos_OSAL_Log(EXYNOS_LOG_ERROR, "[%s] Failed to allocate metadata buffer", __FUNCTION__); goto EXIT; diff --git a/openmax/osal/Makefile.am b/openmax/osal/Makefile.am index ba32311..fd73153 100755 --- a/openmax/osal/Makefile.am +++ b/openmax/osal/Makefile.am @@ -12,8 +12,10 @@ libExynosOMX_OSAL_la_SOURCES = Exynos_OSAL_Event.c \ Exynos_OSAL_Tizen.c \ Exynos_OSAL_SharedMemory.c -libExynosOMX_OSAL_la_LIBADD = $(top_builddir)/exynos/libvideocodec/libExynosVideoApi.la \ - $(TBM_LIBS) +libExynosOMX_OSAL_la_LIBADD = $(top_builddir)/exynos/libvideocodec/libExynosVideoApi.la +if TIZEN_ALLOCATOR +libExynosOMX_OSAL_la_LIBADD += $(TBM_LIBS) +endif libExynosOMX_OSAL_la_CFLAGS = -I$(top_srcdir)/openmax/include/khronos \ -I$(top_srcdir)/openmax/include/exynos \ @@ -28,3 +30,8 @@ if USE_DLOG libExynosOMX_OSAL_la_CFLAGS += $(DLOG_CFLAGS) -DUSE_DLOG libExynosOMX_OSAL_la_LIBADD += $(DLOG_LIBS) endif + +if TIZEN_ALLOCATOR +libExynosOMX_OSAL_la_CFLAGS += $(TBM_CFLAGS) -DTIZEN_FEATURE_TIZEN_ALLOCATOR +endif + diff --git a/packaging/libomxil-e9110-v4l2.spec b/packaging/libomxil-e9110-v4l2.spec index 02d4a5c..cb4c6e3 100755 --- a/packaging/libomxil-e9110-v4l2.spec +++ b/packaging/libomxil-e9110-v4l2.spec @@ -3,7 +3,7 @@ Summary: OpenMAX IL for e9110-v4l2 Version: 0.0.2 License: Apache-2.0 Group: Development/Libraries -Release: 3 +Release: 4 ExclusiveArch: %arm Source: %{name}-%{version}.tar.gz Requires(post): /sbin/ldconfig @@ -37,7 +37,7 @@ export CFLAGS+=" -mfpu=neon\ -DGST_EXT_TIME_ANALYSIS" LDFLAGS+="-Wl,--rpath=%{_prefix}/lib -Wl,--hash-style=both -Wl,--as-needed"; export LDFLAGS -%configure --prefix=%{_prefix} --disable-static --enable-dlog --enable-exynos9110 +%configure --prefix=%{_prefix} --disable-static --enable-dlog --enable-exynos9110 --enable-tizen-allocator #make %{?jobs:-j%jobs} make |