summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/codecs/avc
diff options
context:
space:
mode:
authorMartin Storsjo <martin@martin.st>2012-08-29 13:53:15 +0300
committerMartin Storsjo <martin@martin.st>2012-08-29 19:06:35 +0300
commitf547a36c8f0fe11c4c425168037e3ce1d1a697df (patch)
treef52fac3e72e4ebeebec651587f6e55fcd4e805d2 /media/libstagefright/codecs/avc
parent4b60ac04a878eaf8344b56189509ccd6925855c2 (diff)
downloadframeworks_av-f547a36c8f0fe11c4c425168037e3ce1d1a697df.zip
frameworks_av-f547a36c8f0fe11c4c425168037e3ce1d1a697df.tar.gz
frameworks_av-f547a36c8f0fe11c4c425168037e3ce1d1a697df.tar.bz2
avcenc: Set OMX_BUFFERFLAG_EOS on the last output frame
Without this, the caller might hang waiting for more output buffers. Change-Id: Ief6be00b7600be8498a953e8e88f0582ea8fce85
Diffstat (limited to 'media/libstagefright/codecs/avc')
-rw-r--r--media/libstagefright/codecs/avc/enc/SoftAVCEncoder.cpp3
1 files changed, 3 insertions, 0 deletions
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);