summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/codecs/opus/dec/SoftOpus.cpp
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 /media/libstagefright/codecs/opus/dec/SoftOpus.cpp
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
Diffstat (limited to 'media/libstagefright/codecs/opus/dec/SoftOpus.cpp')
-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;