From 75b8e0dfe910f3de86e0b219eeeabcb04fd8a2f1 Mon Sep 17 00:00:00 2001
From: SeungBeom Kim <sbcrux.kim@samsung.com>
Date: Sun, 20 Nov 2011 16:20:56 +0900
Subject: Fix ANR in com.google.android.videoeditor

Change-Id: I31318543c781a9d6b866620c7d3f4dcd7af24a57
Signed-off-by: SeungBeom Kim <sbcrux.kim@samsung.com>

related-to-bug: 5619226
---
 sec_mm/sec_omx/sec_omx_component/video/dec/h264dec/SEC_OMX_H264dec.c   | 3 ++-
 sec_mm/sec_omx/sec_omx_component/video/dec/mpeg4dec/SEC_OMX_Mpeg4dec.c | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

(limited to 'sec_mm')

diff --git a/sec_mm/sec_omx/sec_omx_component/video/dec/h264dec/SEC_OMX_H264dec.c b/sec_mm/sec_omx/sec_omx_component/video/dec/h264dec/SEC_OMX_H264dec.c
index 07e1a89..e10e916 100644
--- a/sec_mm/sec_omx/sec_omx_component/video/dec/h264dec/SEC_OMX_H264dec.c
+++ b/sec_mm/sec_omx/sec_omx_component/video/dec/h264dec/SEC_OMX_H264dec.c
@@ -1035,7 +1035,7 @@ OMX_ERRORTYPE SEC_MFC_H264_Decode(OMX_COMPONENTTYPE *pOMXComponent, SEC_OMX_DATA
         if ((SsbSipMfcDecGetConfig(pH264Dec->hMFCH264Handle.hMFCHandle, MFC_DEC_GETCONF_FRAME_TAG, &indexTimestamp) != MFC_RET_OK) ||
             (((indexTimestamp < 0) || (indexTimestamp >= MAX_TIMESTAMP)))) {
             pOutputData->timeStamp = pInputData->timeStamp;
-            pOutputData->nFlags = pInputData->nFlags;
+            pOutputData->nFlags = (pInputData->nFlags & (~OMX_BUFFERFLAG_EOS));
         } else {
             pOutputData->timeStamp = pSECComponent->timeStamp[indexTimestamp];
             pOutputData->nFlags = pSECComponent->nFlags[indexTimestamp];
@@ -1093,6 +1093,7 @@ OMX_ERRORTYPE SEC_MFC_H264_Decode(OMX_COMPONENTTYPE *pOMXComponent, SEC_OMX_DATA
         }
         if ((pH264Dec->bFirstFrame == OMX_TRUE) &&
             ((pOutputData->nFlags & OMX_BUFFERFLAG_EOS) == OMX_BUFFERFLAG_EOS)) {
+            pInputData->nFlags = (pInputData->nFlags | OMX_BUFFERFLAG_EOS);
             pOutputData->nFlags = (pOutputData->nFlags & (~OMX_BUFFERFLAG_EOS));
         }
 
diff --git a/sec_mm/sec_omx/sec_omx_component/video/dec/mpeg4dec/SEC_OMX_Mpeg4dec.c b/sec_mm/sec_omx/sec_omx_component/video/dec/mpeg4dec/SEC_OMX_Mpeg4dec.c
index 052a4c9..d7e81df 100644
--- a/sec_mm/sec_omx/sec_omx_component/video/dec/mpeg4dec/SEC_OMX_Mpeg4dec.c
+++ b/sec_mm/sec_omx/sec_omx_component/video/dec/mpeg4dec/SEC_OMX_Mpeg4dec.c
@@ -1180,7 +1180,7 @@ OMX_ERRORTYPE SEC_MFC_Mpeg4_Decode(OMX_COMPONENTTYPE *pOMXComponent, SEC_OMX_DAT
         if ((SsbSipMfcDecGetConfig(hMFCHandle, MFC_DEC_GETCONF_FRAME_TAG, &indexTimestamp) != MFC_RET_OK) ||
             (((indexTimestamp < 0) || (indexTimestamp >= MAX_TIMESTAMP)))) {
             pOutputData->timeStamp = pInputData->timeStamp;
-            pOutputData->nFlags = pInputData->nFlags;
+            pOutputData->nFlags =  (pInputData->nFlags & (~OMX_BUFFERFLAG_EOS));
         } else {
             pOutputData->timeStamp = pSECComponent->timeStamp[indexTimestamp];
             pOutputData->nFlags = pSECComponent->nFlags[indexTimestamp];
@@ -1238,6 +1238,7 @@ OMX_ERRORTYPE SEC_MFC_Mpeg4_Decode(OMX_COMPONENTTYPE *pOMXComponent, SEC_OMX_DAT
         }
         if ((pMpeg4Dec->bFirstFrame == OMX_TRUE) &&
             ((pOutputData->nFlags & OMX_BUFFERFLAG_EOS) == OMX_BUFFERFLAG_EOS)) {
+            pInputData->nFlags = (pInputData->nFlags | OMX_BUFFERFLAG_EOS);
             pOutputData->nFlags = (pOutputData->nFlags & (~OMX_BUFFERFLAG_EOS));
         }
 
-- 
cgit v1.1