h264dec: fixed the DRC handling problem
authorTaehwan Kim <t_h.kim@samsung.com>
Fri, 28 Dec 2012 08:35:33 +0000 (08:35 +0000)
committerTaehwan Kim <t_h.kim@samsung.com>
Thu, 3 Jan 2013 07:37:12 +0000 (07:37 +0000)
happened re-setup about DPB in SHARE MODE,
before generating the OMX_EventPortSettingsChanged event
in case of DRC.
solved to use exceptionFlag.

Change-Id: I363eeb59e170ebaa999bd486e4a6a31333957fe8
Signed-off-by: Taehwan Kim <t_h.kim@samsung.com>
component/video/dec/h264/Exynos_OMX_H264dec.c

index 9a2e724558c5e3eaab27f1fbbd67038c49f718a4..371d0b55c2de4699529d4ad3a6b1d678350bc4fd 100644 (file)
@@ -1931,7 +1931,8 @@ OMX_ERRORTYPE Exynos_H264Dec_DstIn(OMX_COMPONENTTYPE *pOMXComponent, EXYNOS_OMX_
                                         pDstInputData->buffer.multiPlaneBuffer.dataBuffer[1]);
 
     if ((pVideoDec->bReconfigDPB == OMX_TRUE) &&
-        (pExynosOutputPort->bufferProcessType & BUFFER_SHARE)) {
+        (pExynosOutputPort->bufferProcessType & BUFFER_SHARE) &&
+        (pExynosOutputPort->exceptionFlag == GENERAL_STATE)) {
         ret = H264CodecDstSetup(pOMXComponent);
         if (ret != OMX_ErrorNone)
             goto EXIT;
@@ -2004,6 +2005,7 @@ OMX_ERRORTYPE Exynos_H264Dec_DstOut(OMX_COMPONENTTYPE *pOMXComponent, EXYNOS_OMX
         ((displayStatus == VIDEO_FRAME_STATUS_CHANGE_RESOL) ||
          (displayStatus == VIDEO_FRAME_STATUS_ENABLED_S3D))) {
         if (pVideoDec->bReconfigDPB != OMX_TRUE) {
+            pExynosOutputPort->exceptionFlag = NEED_PORT_FLUSH;
             pVideoDec->bReconfigDPB = OMX_TRUE;
 #ifdef USE_S3D_SUPPORT
             /* Check Whether frame packing information is available */