video/common: resolved prevent defects
[GitHub/LineageOS/android_hardware_samsung_slsi_openmax.git] / component / video / enc / mpeg4 / Exynos_OMX_Mpeg4enc.c
index ccbb485f177f6ef6f3547a61c5de5737d27f3805..cf0e10a471fb8e0a9970e98c9e7aa2b3864f89d3 100644 (file)
@@ -2049,17 +2049,21 @@ OMX_ERRORTYPE Exynos_Mpeg4Enc_SrcOut(OMX_COMPONENTTYPE *pOMXComponent, EXYNOS_OM
                                         pVideoBuffer->planes[2].allocSize;
 
         if (pExynosInputPort->bufferProcessType & BUFFER_COPY) {
-            int i = 0;
-            while (pSrcOutputData->buffer.multiPlaneBuffer.dataBuffer[0] != pVideoEnc->pMFCEncInputBuffer[i]->pVirAddr[0]) {
-                if (i >= MFC_INPUT_BUFFER_NUM_MAX) {
-                    Exynos_OSAL_Log(EXYNOS_LOG_ERROR, "%s: %d: Failed - Lost buffer", __FUNCTION__, __LINE__);
-                    ret = (OMX_ERRORTYPE)OMX_ErrorCodecEncode;
-                    goto EXIT;
+            int i;
+            for (i = 0; i < MFC_INPUT_BUFFER_NUM_MAX; i++) {
+                if (pSrcOutputData->buffer.multiPlaneBuffer.dataBuffer[0] ==
+                        pVideoEnc->pMFCEncInputBuffer[i]->pVirAddr[0]) {
+                    pVideoEnc->pMFCEncInputBuffer[i]->dataSize = 0;
+                    pSrcOutputData->pPrivate = pVideoEnc->pMFCEncInputBuffer[i];
+                    break;
                 }
-                i++;
             }
-            pVideoEnc->pMFCEncInputBuffer[i]->dataSize = 0;
-            pSrcOutputData->pPrivate = pVideoEnc->pMFCEncInputBuffer[i];
+
+            if (i >= MFC_INPUT_BUFFER_NUM_MAX) {
+                Exynos_OSAL_Log(EXYNOS_LOG_ERROR, "%s: %d: Failed - Lost buffer", __FUNCTION__, __LINE__);
+                ret = (OMX_ERRORTYPE)OMX_ErrorCodecEncode;
+                goto EXIT;
+            }
         }
 
         /* For Share Buffer */