#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"
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:
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();
}
if (eMetaDataType == METADATA_TYPE_DATA) {
+#ifdef TIZEN_FEATURE_TIZEN_ALLOCATOR
surface = (tbm_surface_h)pBuffer;
bo[0] = tbm_surface_internal_get_bo(surface, 0);
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]);
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;