diff options
author | SeungBeom Kim <sbcrux.kim@samsung.com> | 2014-10-14 08:27:09 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-10-14 08:27:09 +0000 |
commit | 0d6f917983c2c5ea96245935d022287b11273a77 (patch) | |
tree | a29e8b9fff803dea2c16b95e572d2cca27f8d08e | |
parent | 1949341ab27fb9f7dbd4f407a1ced9f9d058e403 (diff) | |
parent | d4ec0f61b9819c82c57daa98b891a3132ffa03b5 (diff) | |
download | android_hardware_samsung_slsi_exynos5-0d6f917983c2c5ea96245935d022287b11273a77.tar.gz android_hardware_samsung_slsi_exynos5-0d6f917983c2c5ea96245935d022287b11273a77.tar.bz2 android_hardware_samsung_slsi_exynos5-0d6f917983c2c5ea96245935d022287b11273a77.zip |
am d4ec0f61: exynos_omx: multi_thread: Fix bug for video encode tests.
* commit 'd4ec0f61b9819c82c57daa98b891a3132ffa03b5':
exynos_omx: multi_thread: Fix bug for video encode tests.
-rw-r--r-- | exynos_omx/openmax/exynos_omx/component/video/enc/h264/Exynos_OMX_H264enc.c | 11 | ||||
-rw-r--r-- | exynos_omx/openmax/exynos_omx/component/video/enc/mpeg4/Exynos_OMX_Mpeg4enc.c | 13 |
2 files changed, 21 insertions, 3 deletions
diff --git a/exynos_omx/openmax/exynos_omx/component/video/enc/h264/Exynos_OMX_H264enc.c b/exynos_omx/openmax/exynos_omx/component/video/enc/h264/Exynos_OMX_H264enc.c index ee60500..518ed7c 100644 --- a/exynos_omx/openmax/exynos_omx/component/video/enc/h264/Exynos_OMX_H264enc.c +++ b/exynos_omx/openmax/exynos_omx/component/video/enc/h264/Exynos_OMX_H264enc.c @@ -1008,6 +1008,7 @@ OMX_ERRORTYPE H264CodecDstSetup(OMX_COMPONENTTYPE *pOMXComponent) /*************/ /* TBD */ /*************/ + ExynosVideoErrorType codecReturn = VIDEO_ERROR_NONE; ExynosVideoPlane plane; for (i = 0; i < pExynosOutputPort->portDefinition.nBufferCountActual; i++) { plane.addr = pExynosOutputPort->extendBufferHeader[i].OMXBufferHeader->pBuffer; @@ -1018,8 +1019,13 @@ OMX_ERRORTYPE H264CodecDstSetup(OMX_COMPONENTTYPE *pOMXComponent) ret = OMX_ErrorInsufficientResources; goto EXIT; } - pOutbufOps->Enqueue(hMFCHandle, (unsigned char **)&pExynosOutputPort->extendBufferHeader[i].OMXBufferHeader->pBuffer, + codecReturn = pOutbufOps->Enqueue(hMFCHandle, (unsigned char **)&pExynosOutputPort->extendBufferHeader[i].OMXBufferHeader->pBuffer, (unsigned int *)dataLen, MFC_OUTPUT_BUFFER_PLANE, NULL); + if (codecReturn != VIDEO_ERROR_NONE) { + Exynos_OSAL_Log(EXYNOS_LOG_ERROR, "Output buffer that has been entered is invalid."); + ret = OMX_ErrorUndefined; + goto EXIT; + } } } @@ -1735,6 +1741,9 @@ OMX_ERRORTYPE Exynos_H264Enc_SrcIn(OMX_COMPONENTTYPE *pOMXComponent, EXYNOS_OMX_ } if (pH264Enc->hMFCH264Handle.bConfiguredMFCDst == OMX_FALSE) { ret = H264CodecDstSetup(pOMXComponent); + if (ret != OMX_ErrorNone) { + goto EXIT; + } } if (pVideoEnc->configChange == OMX_TRUE) { diff --git a/exynos_omx/openmax/exynos_omx/component/video/enc/mpeg4/Exynos_OMX_Mpeg4enc.c b/exynos_omx/openmax/exynos_omx/component/video/enc/mpeg4/Exynos_OMX_Mpeg4enc.c index e915304..98480f8 100644 --- a/exynos_omx/openmax/exynos_omx/component/video/enc/mpeg4/Exynos_OMX_Mpeg4enc.c +++ b/exynos_omx/openmax/exynos_omx/component/video/enc/mpeg4/Exynos_OMX_Mpeg4enc.c @@ -1136,10 +1136,11 @@ OMX_ERRORTYPE Mpeg4CodecDstSetup(OMX_COMPONENTTYPE *pOMXComponent) (unsigned int *)dataLen, MFC_OUTPUT_BUFFER_PLANE, NULL); } } else if ((pExynosOutputPort->bufferProcessType & BUFFER_SHARE) == BUFFER_SHARE) { - /* Register input buffer */ + /* Register output buffer */ /*************/ /* TBD */ /*************/ + ExynosVideoErrorType codecReturn = VIDEO_ERROR_NONE; ExynosVideoPlane plane; for (i = 0; i < pExynosOutputPort->portDefinition.nBufferCountActual; i++) { plane.addr = pExynosOutputPort->extendBufferHeader[i].OMXBufferHeader->pBuffer; @@ -1150,8 +1151,13 @@ OMX_ERRORTYPE Mpeg4CodecDstSetup(OMX_COMPONENTTYPE *pOMXComponent) ret = OMX_ErrorInsufficientResources; goto EXIT; } - pOutbufOps->Enqueue(hMFCHandle, (unsigned char **)&pExynosOutputPort->extendBufferHeader[i].OMXBufferHeader->pBuffer, + codecReturn = pOutbufOps->Enqueue(hMFCHandle, (unsigned char **)&pExynosOutputPort->extendBufferHeader[i].OMXBufferHeader->pBuffer, (unsigned int *)dataLen, MFC_OUTPUT_BUFFER_PLANE, NULL); + if (codecReturn != VIDEO_ERROR_NONE) { + Exynos_OSAL_Log(EXYNOS_LOG_ERROR, "Output buffer that has been entered is invalid."); + ret = OMX_ErrorUndefined; + goto EXIT; + } } } @@ -1933,6 +1939,9 @@ OMX_ERRORTYPE Exynos_Mpeg4Enc_SrcIn(OMX_COMPONENTTYPE *pOMXComponent, EXYNOS_OMX } if (pMpeg4Enc->hMFCMpeg4Handle.bConfiguredMFCDst == OMX_FALSE) { ret = Mpeg4CodecDstSetup(pOMXComponent); + if (ret != OMX_ErrorNone) { + goto EXIT; + } } if (pVideoEnc->configChange == OMX_TRUE) { |