A changed to post fake eos for case when all dst buffers are not dequeued 44/111344/2
authorSejun Park <sejun79.park@samsung.com>
Fri, 20 Jan 2017 07:01:53 +0000 (16:01 +0900)
committerSejun Park <sejun79.park@samsung.com>
Fri, 20 Jan 2017 07:17:07 +0000 (16:17 +0900)
Change-Id: Ie2e2e6935c5e66782106a01734b46a085af9fdfc

exynos4/libcodec/video/v4l2/dec/ExynosVideoDecoder.c
openmax/component/video/dec/h264/Exynos_OMX_H264dec.c
openmax/component/video/dec/mpeg4/Exynos_OMX_Mpeg4dec.c
packaging/libomxil-e54xx.spec

index e1583b12f80dfd8e5ca7f37f00cab75e9f68f31c..b3788fee245cb23152351b17f618700b16b4fa18 100755 (executable)
@@ -1764,6 +1764,9 @@ static ExynosVideoBuffer *MFC_Decoder_Dequeue_Outbuf(void *pHandle)
     pOutbuf = &pCtx->pOutbuf[buf.index];
     pOutbuf->displayStatus = VIDEO_FRAME_STATUS_DISPLAY_DECODING;
 
+    if (buf.m.planes[0].bytesused == 0)
+        pOutbuf->displayStatus = VIDEO_FRAME_STATUS_DECODING_FINISHED;
+
 #ifdef V4L2_CID_MPEG_MFC51_VIDEO_DISPLAY_STATUS
     exynos_v4l2_g_ctrl(pCtx->hDec, V4L2_CID_MPEG_MFC51_VIDEO_DISPLAY_STATUS, &value);
 
index 28df712389e6eedbe3b796d224034ca8f69755d6..cf1146b84edf71f6066ac2413e2615a596c1e647 100755 (executable)
@@ -2469,10 +2469,10 @@ OMX_ERRORTYPE Exynos_H264Dec_DstOut(OMX_COMPONENTTYPE *pOMXComponent, EXYNOS_OMX
     }
 
     if ((displayStatus == VIDEO_FRAME_STATUS_CHANGE_RESOL) ||
-        (displayStatus == VIDEO_FRAME_STATUS_DECODING_FINISHED) ||
-        ((pDstOutputData->nFlags & OMX_BUFFERFLAG_EOS) == OMX_BUFFERFLAG_EOS)) {
-        Exynos_OSAL_Log(EXYNOS_LOG_TRACE, "displayStatus:%d, nFlags0x%x", displayStatus, pDstOutputData->nFlags);
+        (displayStatus == VIDEO_FRAME_STATUS_DECODING_FINISHED)) {
+        pDstOutputData->nFlags |= OMX_BUFFERFLAG_EOS;
         pDstOutputData->remainDataLen = 0;
+        Exynos_OSAL_Log(EXYNOS_LOG_TRACE, "displayStatus:%d, nFlags0x%x", displayStatus, pDstOutputData->nFlags);
     } else {
         pDstOutputData->remainDataLen = bufferGeometry->nFrameWidth * bufferGeometry->nFrameHeight * 3 / 2;
     }
index 413105102c05c7d566277afafa9cef4ee115e1db..c9d938c7fad059f0152f5b3e297a49d5ce644daa 100755 (executable)
@@ -2588,10 +2588,10 @@ OMX_ERRORTYPE Exynos_Mpeg4Dec_DstOut(OMX_COMPONENTTYPE *pOMXComponent, EXYNOS_OM
     }
 
     if ((displayStatus == VIDEO_FRAME_STATUS_CHANGE_RESOL) ||
-        (displayStatus == VIDEO_FRAME_STATUS_DECODING_FINISHED) ||
-        ((pDstOutputData->nFlags & OMX_BUFFERFLAG_EOS) == OMX_BUFFERFLAG_EOS)) {
-        Exynos_OSAL_Log(EXYNOS_LOG_TRACE, "displayStatus:%d, nFlags0x%x", displayStatus, pDstOutputData->nFlags);
+        (displayStatus == VIDEO_FRAME_STATUS_DECODING_FINISHED)) {
+        pDstOutputData->nFlags |= OMX_BUFFERFLAG_EOS;
         pDstOutputData->remainDataLen = 0;
+        Exynos_OSAL_Log(EXYNOS_LOG_TRACE, "displayStatus:%d, nFlags0x%x", displayStatus, pDstOutputData->nFlags);
     } else {
         pDstOutputData->remainDataLen = bufferGeometry->nFrameWidth * bufferGeometry->nFrameHeight * 3 / 2;
     }
index 0f579c8bc7ca23cce1a4178628751d73412ca874..830458203a8c752c808ca1c1bf76ba842f3acac3 100755 (executable)
@@ -1,6 +1,6 @@
 Name: libomxil-e54xx
 Summary: OpenMAX IL for e54xx
-Version: 1.0.1
+Version: 1.0.2
 License: Apache-2.0
 Group: Development/Libraries
 Release: 0