From 1b30bde3d4447e4c9b767c68584b8997bd930720 Mon Sep 17 00:00:00 2001 From: Vignesh Venkatasubramanian Date: Tue, 2 Jun 2015 15:36:01 -0700 Subject: 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 --- media/libstagefright/codecs/opus/dec/SoftOpus.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) 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; -- cgit v1.1