summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVignesh Venkatasubramanian <vigneshv@google.com>2015-06-02 15:36:01 -0700
committerLajos Molnar <lajos@google.com>2015-06-03 17:39:49 +0000
commit1b30bde3d4447e4c9b767c68584b8997bd930720 (patch)
treea3f1dbdda455e7bce6d78ed7884f9eb22f18bf0e
parent77f101b342b6d206b6f530991f3333dfedeebab6 (diff)
downloadframeworks_av-1b30bde3d4447e4c9b767c68584b8997bd930720.zip
frameworks_av-1b30bde3d4447e4c9b767c68584b8997bd930720.tar.gz
frameworks_av-1b30bde3d4447e4c9b767c68584b8997bd930720.tar.bz2
libstagefright/SoftOpus: Ignore CSD resubmissions
NuPlayerDecoder re-submits the CSDs on seek. Opus decoder does not need the CSDs on seek. So, we merely ignore the resubmissions of CSD in SoftOpus so that it is not passed to the decoder thereby screwing up its state. Bug: 21565945 Change-Id: Ia74f4b1733e42171131484a6a7f3fd923fe26434
-rw-r--r--media/libstagefright/codecs/opus/dec/SoftOpus.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/media/libstagefright/codecs/opus/dec/SoftOpus.cpp b/media/libstagefright/codecs/opus/dec/SoftOpus.cpp
index 6322dc2..7ff9ee7 100644
--- a/media/libstagefright/codecs/opus/dec/SoftOpus.cpp
+++ b/media/libstagefright/codecs/opus/dec/SoftOpus.cpp
@@ -403,6 +403,14 @@ void SoftOpus::onQueueFilled(OMX_U32 portIndex) {
BufferInfo *inInfo = *inQueue.begin();
OMX_BUFFERHEADERTYPE *inHeader = inInfo->mHeader;
+ // Ignore CSD re-submissions.
+ if (inHeader->nFlags & OMX_BUFFERFLAG_CODECCONFIG) {
+ inQueue.erase(inQueue.begin());
+ inInfo->mOwnedByUs = false;
+ notifyEmptyBufferDone(inHeader);
+ return;
+ }
+
BufferInfo *outInfo = *outQueue.begin();
OMX_BUFFERHEADERTYPE *outHeader = outInfo->mHeader;