exynos_omx: multi_thread: Fix the encoder input buffer scheme.
authorSeungBeom Kim <sbcrux.kim@samsung.com>
Wed, 18 Jul 2012 00:02:37 +0000 (09:02 +0900)
committerDima Zavin <dima@android.com>
Tue, 24 Jul 2012 23:13:23 +0000 (16:13 -0700)
in the case of MetadataBufferType buffer,
Fix the bug of input buffer registration scheme.

Change-Id: I05ec601777e5aae6ec20e74c933f03b3cacd8958
Signed-off-by: SeungBeom Kim <sbcrux.kim@samsung.com>
exynos_omx/openmax/exynos_omx/component/video/enc/h264/Exynos_OMX_H264enc.c
exynos_omx/openmax/exynos_omx/component/video/enc/mpeg4/Exynos_OMX_Mpeg4enc.c

index 2410bcfefb8a7941efca3b11a7d9d6e3490e5efe..201ca035ec2882748aa0a426895cc48a49ec970b 100644 (file)
@@ -790,7 +790,7 @@ OMX_ERRORTYPE H264CodecSrcSetup(OMX_COMPONENTTYPE *pOMXComponent, EXYNOS_OMX_DAT
     bufferConf.nFrameHeight = pExynosInputPort->portDefinition.format.video.nFrameHeight;
     pInbufOps->Set_Shareable(hMFCHandle);
     if (pExynosInputPort->bufferProcessType == BUFFER_SHARE) {
-        inputBufferNumber = MAX_VIDEO_INPUTBUFFER_NUM;
+        inputBufferNumber = MAX_VIDEO_INPUTBUFFER_NUM; /* Need change to number of camera buffer */
     } else if ((pExynosInputPort->bufferProcessType & BUFFER_COPY) == BUFFER_COPY) {
         inputBufferNumber = MFC_INPUT_BUFFER_NUM_MAX;
     }
@@ -1773,13 +1773,11 @@ OMX_ERRORTYPE Exynos_H264Enc_SrcIn(OMX_COMPONENTTYPE *pOMXComponent, EXYNOS_OMX_
             }
 
             /* Register input buffer */
-            for (i = 0; i < pExynosInputPort->portDefinition.nBufferCountActual; i++) {
-                if (pInbufOps->Register(pH264Enc->hMFCH264Handle.hMFCHandle,
-                            planes, MFC_INPUT_BUFFER_PLANE) != VIDEO_ERROR_NONE) {
-                    Exynos_OSAL_Log(EXYNOS_LOG_ERROR, "Failed to Register input buffer");
-                    ret = OMX_ErrorInsufficientResources;
-                    goto EXIT;
-                }
+            if (pInbufOps->Register(pH264Enc->hMFCH264Handle.hMFCHandle,
+                        planes, MFC_INPUT_BUFFER_PLANE) != VIDEO_ERROR_NONE) {
+                Exynos_OSAL_Log(EXYNOS_LOG_ERROR, "Failed to Register input buffer");
+                ret = OMX_ErrorInsufficientResources;
+                goto EXIT;
             }
             codecReturn = pInbufOps->Enqueue(hMFCHandle, (unsigned char **)pSrcInputData->buffer.multiPlaneBuffer.dataBuffer,
                                         (unsigned int *)pMFCYUVDataSize, MFC_INPUT_BUFFER_PLANE, pSrcInputData->bufferHeader);
index bb49e7a7b1e179a6745b204d51714ed06e168454..e964d65ecf6bf5ddf55afa6480d7c7d79976c902 100644 (file)
@@ -911,7 +911,7 @@ OMX_ERRORTYPE Mpeg4CodecSrcSetup(OMX_COMPONENTTYPE *pOMXComponent, EXYNOS_OMX_DA
     bufferConf.nFrameHeight = pExynosInputPort->portDefinition.format.video.nFrameHeight;
     pInbufOps->Set_Shareable(hMFCHandle);
     if (pExynosInputPort->bufferProcessType == BUFFER_SHARE) {
-        inputBufferNumber = MAX_VIDEO_INPUTBUFFER_NUM;
+        inputBufferNumber = MAX_VIDEO_INPUTBUFFER_NUM; /* Need change to number of camera buffer */
     } else if ((pExynosInputPort->bufferProcessType & BUFFER_COPY) == BUFFER_COPY) {
         inputBufferNumber = MFC_INPUT_BUFFER_NUM_MAX;
     }
@@ -1978,13 +1978,11 @@ OMX_ERRORTYPE Exynos_Mpeg4Enc_SrcIn(OMX_COMPONENTTYPE *pOMXComponent, EXYNOS_OMX
             }
 
             /* Register input buffer */
-            for (i = 0; i < pExynosInputPort->portDefinition.nBufferCountActual; i++) {
-                if (pInbufOps->Register(pMpeg4Enc->hMFCMpeg4Handle.hMFCHandle,
-                            planes, MFC_INPUT_BUFFER_PLANE) != VIDEO_ERROR_NONE) {
-                    Exynos_OSAL_Log(EXYNOS_LOG_ERROR, "Failed to Register input buffer");
-                    ret = OMX_ErrorInsufficientResources;
-                    goto EXIT;
-                }
+            if (pInbufOps->Register(pMpeg4Enc->hMFCMpeg4Handle.hMFCHandle,
+                        planes, MFC_INPUT_BUFFER_PLANE) != VIDEO_ERROR_NONE) {
+                Exynos_OSAL_Log(EXYNOS_LOG_ERROR, "Failed to Register input buffer");
+                ret = OMX_ErrorInsufficientResources;
+                goto EXIT;
             }
             codecReturn = pInbufOps->Enqueue(hMFCHandle, (unsigned char **)pSrcInputData->buffer.multiPlaneBuffer.dataBuffer,
                                         (unsigned int *)pMFCYUVDataSize, MFC_INPUT_BUFFER_PLANE, pSrcInputData->bufferHeader);