From f547a36c8f0fe11c4c425168037e3ce1d1a697df Mon Sep 17 00:00:00 2001 From: Martin Storsjo Date: Wed, 29 Aug 2012 13:53:15 +0300 Subject: avcenc: Set OMX_BUFFERFLAG_EOS on the last output frame Without this, the caller might hang waiting for more output buffers. Change-Id: Ief6be00b7600be8498a953e8e88f0582ea8fce85 --- media/libstagefright/codecs/avc/enc/SoftAVCEncoder.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/media/libstagefright/codecs/avc/enc/SoftAVCEncoder.cpp b/media/libstagefright/codecs/avc/enc/SoftAVCEncoder.cpp index 259562b..eb55556 100644 --- a/media/libstagefright/codecs/avc/enc/SoftAVCEncoder.cpp +++ b/media/libstagefright/codecs/avc/enc/SoftAVCEncoder.cpp @@ -849,6 +849,9 @@ void SoftAVCEncoder::onQueueFilled(OMX_U32 portIndex) { mInputBufferInfoVec.erase(mInputBufferInfoVec.begin()); outHeader->nTimeStamp = inputBufInfo->mTimeUs; outHeader->nFlags |= (inputBufInfo->mFlags | OMX_BUFFERFLAG_ENDOFFRAME); + if (mSawInputEOS) { + outHeader->nFlags |= OMX_BUFFERFLAG_EOS; + } outHeader->nFilledLen = dataLength; outInfo->mOwnedByUs = false; notifyFillBufferDone(outHeader); -- cgit v1.1