summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSeungBeom Kim <sbcrux.kim@samsung.com>2014-10-14 08:27:09 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-10-14 08:27:09 +0000
commit0d6f917983c2c5ea96245935d022287b11273a77 (patch)
treea29e8b9fff803dea2c16b95e572d2cca27f8d08e
parent1949341ab27fb9f7dbd4f407a1ced9f9d058e403 (diff)
parentd4ec0f61b9819c82c57daa98b891a3132ffa03b5 (diff)
downloadandroid_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.c11
-rw-r--r--exynos_omx/openmax/exynos_omx/component/video/enc/mpeg4/Exynos_OMX_Mpeg4enc.c13
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) {