apply tizen allocator to encoder 52/184052/2 accepted/tizen/unified/20180903.062535 submit/tizen/20180831.043334 submit/tizen/20180831.080817
authorSejun Park <sejun79.park@samsung.com>
Fri, 13 Jul 2018 08:16:59 +0000 (17:16 +0900)
committerSejun Park <sejun79.park@samsung.com>
Thu, 23 Aug 2018 04:53:17 +0000 (13:53 +0900)
Change-Id: I4a1830aa18a5af32c6dc4753aad3127e5502ec05

openmax/component/video/dec/Exynos_OMX_VdecControl.c
openmax/component/video/enc/Exynos_OMX_VencControl.c

index 96272adadef1b4f41774b84655ef42631ecfe111..88a6303d8cdf01e2813969a9e2b01ec04db0b585 100755 (executable)
@@ -151,10 +151,8 @@ OMX_ERRORTYPE Exynos_OMX_UseBuffer(
                         i, pExynosPort->extendBufferHeader[i].pYUVBuf[0], pExynosPort->extendBufferHeader[i].pYUVBuf[1]);
             } else if ((pVideoDec->bDRMPlayerMode == OMX_TRUE) && (nPortIndex == INPUT_PORT_INDEX)) {
                 pExynosPort->extendBufferHeader[i].buf_fd[0] = (int)pBuffer;
-            } else if(nPortIndex == INPUT_PORT_INDEX) {
-                //tbm_surface_h surface = (tbm_surface_h) pBuffer;
-                //temp_bufferHeader->pBuffer  = tbm_bo_get_handle (tbm_surface_internal_get_bo(surface, 0), TBM_DEVICE_CPU).ptr;;
-                temp_bufferHeader->pBuffer  = pBuffer;
+            } else if (nPortIndex == INPUT_PORT_INDEX) {
+                temp_bufferHeader->pBuffer = tbm_bo_get_handle (tbm_surface_internal_get_bo((tbm_surface_h)pBuffer, 0), TBM_DEVICE_CPU).ptr;
             }
 #endif
             *ppBufferHdr = temp_bufferHeader;
index 22da15f513a293ccb8912f763e61998ec6423964..2750f18e58409b69aafc755c063e2bd6a251de55 100755 (executable)
@@ -38,6 +38,9 @@
 #include "Exynos_OSAL_Mutex.h"
 #include "Exynos_OSAL_ETC.h"
 #include "Exynos_OSAL_SharedMemory.h"
+#include <tbm_bufmgr.h>
+#include <tbm_surface.h>
+#include <tbm_surface_internal.h>
 
 #ifdef USE_PB
 #include "Exynos_OSAL_Platform_Specific.h"
@@ -65,6 +68,7 @@ OMX_ERRORTYPE Exynos_OMX_UseBuffer(
     EXYNOS_OMX_BASEPORT             *pExynosPort       = NULL;
     OMX_BUFFERHEADERTYPE            *pTempBufferHdr    = NULL;
     OMX_U32 i = 0;
+    tbm_bo bo[2];
 
     FunctionIn();
 
@@ -130,31 +134,28 @@ OMX_ERRORTYPE Exynos_OMX_UseBuffer(
             if (nPortIndex == OUTPUT_PORT_INDEX && pVideoEnc->bSharedOutputFD == OMX_TRUE)
                 pExynosPort->extendBufferHeader[i].buf_fd[0] = (int)(pBuffer); /*IL Client provides only FD value*/
 
-            MMVideoBuffer * pSlpOutBuf = (MMVideoBuffer *)pBuffer;
+            tbm_surface_h surface = (tbm_surface_h)pBuffer;
+            bo[0] = tbm_surface_internal_get_bo(surface, 0);
+            bo[1] = tbm_surface_internal_get_bo(surface, 1);
 
-            Exynos_OSAL_Log(EXYNOS_LOG_ERROR, "fd[0] =%d, fd[1] =%d, vaddr[0] =%p, vaddr[1] = %p, y_size=%d, uv_size=%d\n",
-                pSlpOutBuf->handle.dmabuf_fd[0], pSlpOutBuf->handle.dmabuf_fd[1], pSlpOutBuf->data[0], pSlpOutBuf->data[1],
-                pSlpOutBuf->size[0],pSlpOutBuf->size[1]);
             if(nPortIndex == OUTPUT_PORT_INDEX )
-                  pTempBufferHdr->pBuffer  = pSlpOutBuf->data[0];
+                pTempBufferHdr->pBuffer  = tbm_bo_get_handle((tbm_bo)pBuffer, TBM_DEVICE_CPU).ptr;
 
-            pExynosPort->extendBufferHeader[i].buf_fd[0] = pSlpOutBuf->handle.dmabuf_fd[0];
-            pExynosPort->extendBufferHeader[i].buf_fd[1] = pSlpOutBuf->handle.dmabuf_fd[1];
+            pExynosPort->extendBufferHeader[i].buf_fd[0] = tbm_bo_get_handle (bo[0], TBM_DEVICE_MM).u32;
+            pExynosPort->extendBufferHeader[i].buf_fd[1] = tbm_bo_get_handle (bo[1], TBM_DEVICE_MM).u32;;
             pExynosPort->extendBufferHeader[i].buf_fd[2] = 0;
 
-            pExynosPort->extendBufferHeader[i].pYUVBuf[0] = pSlpOutBuf->data[0];
-            pExynosPort->extendBufferHeader[i].pYUVBuf[1] = pSlpOutBuf->data[1];
+            pExynosPort->extendBufferHeader[i].pYUVBuf[0] = tbm_bo_get_handle(bo[0], TBM_DEVICE_CPU).ptr;
+            pExynosPort->extendBufferHeader[i].pYUVBuf[1] = tbm_bo_get_handle(bo[1], TBM_DEVICE_CPU).ptr;
             pExynosPort->extendBufferHeader[i].pYUVBuf[2] = NULL;
 
-            pExynosPort->extendBufferHeader[i].tbm_bo[0] = pSlpOutBuf->handle.bo[0];
-            pExynosPort->extendBufferHeader[i].tbm_bo[1] = pSlpOutBuf->handle.bo[1];
+            pExynosPort->extendBufferHeader[i].tbm_bo[0] = bo[0];
+            pExynosPort->extendBufferHeader[i].tbm_bo[1] = bo[1];
             pExynosPort->extendBufferHeader[i].tbm_bo[2] = NULL;
 
-            pExynosPort->extendBufferHeader[i].size[0] = pSlpOutBuf->size[0];
-            pExynosPort->extendBufferHeader[i].size[1] = pSlpOutBuf->size[1];
+            pExynosPort->extendBufferHeader[i].size[0] = tbm_bo_size(bo[0]);
+            pExynosPort->extendBufferHeader[i].size[1] = tbm_bo_size(bo[1]);
             pExynosPort->extendBufferHeader[i].size[2] = 0;
-
-
 #endif
             pExynosPort->assignedBufferNum++;
             if (pExynosPort->assignedBufferNum == pExynosPort->portDefinition.nBufferCountActual) {