exynos_omx: multi_thread: Fix the bug of decode buffer Queuing.
authorSeungBeom Kim <sbcrux.kim@samsung.com>
Thu, 19 Jul 2012 04:18:00 +0000 (13:18 +0900)
committerDima Zavin <dima@android.com>
Tue, 24 Jul 2012 23:13:23 +0000 (16:13 -0700)
The case of output Buffer Share,
Destination buffer Enqueue argument is wrong in all Decode Component.
Fix wrong argument.

Change-Id: I380ddd1d468bb130c78678a81d5fa401f2ecda7f
Signed-off-by: SeungBeom Kim <sbcrux.kim@samsung.com>
exynos_omx/openmax/exynos_omx/component/video/dec/h264/Exynos_OMX_H264dec.c
exynos_omx/openmax/exynos_omx/component/video/dec/mpeg4/Exynos_OMX_Mpeg4dec.c
exynos_omx/openmax/exynos_omx/component/video/dec/vp8/Exynos_OMX_Vp8dec.c

index b6c53bb53184cc175e829add653760a91be51441..d855a3c7ee7a4a4def7740a2e6c5e40efc1c9afa 100644 (file)
@@ -915,7 +915,8 @@ OMX_ERRORTYPE H264CodecDstSetup(OMX_COMPONENTTYPE *pOMXComponent)
                     ret = OMX_ErrorInsufficientResources;
                     goto EXIT;
                 }
-                pOutbufOps->Enqueue(hMFCHandle, planes, (unsigned int *)dataLen, MFC_OUTPUT_BUFFER_PLANE, NULL);
+                pOutbufOps->Enqueue(hMFCHandle, (unsigned char **)pExynosOutputPort->extendBufferHeader[i].pYUVBuf,
+                               (unsigned int *)dataLen, MFC_OUTPUT_BUFFER_PLANE, NULL);
             }
         } else {
             ret = OMX_ErrorNotImplemented;
index 2a3d1af31f38c81c2f0c155b1465b77f00a87c0b..1b6884a9b86a7772ba8189fac1817aba27b758c9 100644 (file)
@@ -992,7 +992,8 @@ OMX_ERRORTYPE Mpeg4CodecDstSetup(OMX_COMPONENTTYPE *pOMXComponent)
                     ret = OMX_ErrorInsufficientResources;
                     goto EXIT;
                 }
-                pOutbufOps->Enqueue(hMFCHandle, planes, (unsigned int *)dataLen, MFC_OUTPUT_BUFFER_PLANE, NULL);
+                pOutbufOps->Enqueue(hMFCHandle, (unsigned char **)pExynosOutputPort->extendBufferHeader[i].pYUVBuf,
+                               (unsigned int *)dataLen, MFC_OUTPUT_BUFFER_PLANE, NULL);
             }
         } else {
             ret = OMX_ErrorNotImplemented;
index 8ec23e033c8733caf3f107eb5fa4e0d4b69e2f8e..98ffce06b7eaf5842ff0d34810e8a2ffa3170003 100644 (file)
@@ -804,7 +804,8 @@ OMX_ERRORTYPE VP8CodecDstSetup(OMX_COMPONENTTYPE *pOMXComponent)
                     ret = OMX_ErrorInsufficientResources;
                     goto EXIT;
                 }
-                pOutbufOps->Enqueue(hMFCHandle, planes, (unsigned int *)dataLen, MFC_OUTPUT_BUFFER_PLANE, NULL);
+                pOutbufOps->Enqueue(hMFCHandle, (unsigned char **)pExynosOutputPort->extendBufferHeader[i].pYUVBuf,
+                              (unsigned int *)dataLen, MFC_OUTPUT_BUFFER_PLANE, NULL);
             }
         } else {
             ret = OMX_ErrorNotImplemented;