diff options
author | eunhae choi <eunhae1.choi@samsung.com> | 2017-02-13 18:25:21 -0800 |
---|---|---|
committer | Gerrit Code Review <gerrit@review.vlan103.tizen.org> | 2017-02-13 18:25:21 -0800 |
commit | cc636b0ec70428aa1443ae7ce4f6643f3d91af8d (patch) | |
tree | be0267f4a0e5c9632b4a78ff3b37a09ab44e7880 | |
parent | 18058b680ff51c848d3effebaecefff719e06149 (diff) | |
parent | c63679bfe6b8d2f8d896d8433ab5e6f693decdef (diff) | |
download | libomxil-e54xx-cc636b0ec70428aa1443ae7ce4f6643f3d91af8d.tar.gz libomxil-e54xx-cc636b0ec70428aa1443ae7ce4f6643f3d91af8d.tar.bz2 libomxil-e54xx-cc636b0ec70428aa1443ae7ce4f6643f3d91af8d.zip |
Merge "A changed to post fake eos for case when all dst buffers are not dequeued" into tizensubmit/tizen/20170404.094130accepted/tizen/unified/20170406.053553
4 files changed, 10 insertions, 7 deletions
diff --git a/exynos4/libcodec/video/v4l2/dec/ExynosVideoDecoder.c b/exynos4/libcodec/video/v4l2/dec/ExynosVideoDecoder.c index e1583b1..b3788fe 100755 --- a/exynos4/libcodec/video/v4l2/dec/ExynosVideoDecoder.c +++ b/exynos4/libcodec/video/v4l2/dec/ExynosVideoDecoder.c @@ -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); diff --git a/openmax/component/video/dec/h264/Exynos_OMX_H264dec.c b/openmax/component/video/dec/h264/Exynos_OMX_H264dec.c index 28df712..cf1146b 100755 --- a/openmax/component/video/dec/h264/Exynos_OMX_H264dec.c +++ b/openmax/component/video/dec/h264/Exynos_OMX_H264dec.c @@ -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; } diff --git a/openmax/component/video/dec/mpeg4/Exynos_OMX_Mpeg4dec.c b/openmax/component/video/dec/mpeg4/Exynos_OMX_Mpeg4dec.c index 4131051..c9d938c 100755 --- a/openmax/component/video/dec/mpeg4/Exynos_OMX_Mpeg4dec.c +++ b/openmax/component/video/dec/mpeg4/Exynos_OMX_Mpeg4dec.c @@ -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; } diff --git a/packaging/libomxil-e54xx.spec b/packaging/libomxil-e54xx.spec index 1d03462..ee8d1b3 100755 --- a/packaging/libomxil-e54xx.spec +++ b/packaging/libomxil-e54xx.spec @@ -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 |