summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/codecs/on2
diff options
context:
space:
mode:
authorRonghua Wu <ronghuawu@google.com>2015-05-04 15:49:30 -0700
committerRonghua Wu <ronghuawu@google.com>2015-05-04 16:53:14 -0700
commit2d3ad4087c2231542f07854d3b9ff5b4cae9fd69 (patch)
treeffb8c341932bdebee48cf8e3f10957f997ec5865 /media/libstagefright/codecs/on2
parentdae24729d0b3ced8c4a7d7f9b631e852f564db4f (diff)
downloadframeworks_av-2d3ad4087c2231542f07854d3b9ff5b4cae9fd69.zip
frameworks_av-2d3ad4087c2231542f07854d3b9ff5b4cae9fd69.tar.gz
frameworks_av-2d3ad4087c2231542f07854d3b9ff5b4cae9fd69.tar.bz2
SoftVPXEncoder: don't skip the last input buffer with eos flag.
Bug: 20507129 Change-Id: I4016727cbae54e2d29c3c6ab5cd8c47826070bf4
Diffstat (limited to 'media/libstagefright/codecs/on2')
-rw-r--r--media/libstagefright/codecs/on2/enc/SoftVPXEncoder.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/media/libstagefright/codecs/on2/enc/SoftVPXEncoder.cpp b/media/libstagefright/codecs/on2/enc/SoftVPXEncoder.cpp
index 970acf3..e654843 100644
--- a/media/libstagefright/codecs/on2/enc/SoftVPXEncoder.cpp
+++ b/media/libstagefright/codecs/on2/enc/SoftVPXEncoder.cpp
@@ -661,7 +661,8 @@ void SoftVPXEncoder::onQueueFilled(OMX_U32 /* portIndex */) {
BufferInfo *outputBufferInfo = *outputBufferInfoQueue.begin();
OMX_BUFFERHEADERTYPE *outputBufferHeader = outputBufferInfo->mHeader;
- if (inputBufferHeader->nFlags & OMX_BUFFERFLAG_EOS) {
+ if ((inputBufferHeader->nFlags & OMX_BUFFERFLAG_EOS) &&
+ inputBufferHeader->nFilledLen == 0) {
inputBufferInfoQueue.erase(inputBufferInfoQueue.begin());
inputBufferInfo->mOwnedByUs = false;
notifyEmptyBufferDone(inputBufferHeader);
@@ -762,6 +763,9 @@ void SoftVPXEncoder::onQueueFilled(OMX_U32 /* portIndex */) {
encoded_packet->data.frame.sz);
outputBufferInfo->mOwnedByUs = false;
outputBufferInfoQueue.erase(outputBufferInfoQueue.begin());
+ if (inputBufferHeader->nFlags & OMX_BUFFERFLAG_EOS) {
+ outputBufferHeader->nFlags |= OMX_BUFFERFLAG_EOS;
+ }
notifyFillBufferDone(outputBufferHeader);
}
}