diff options
author | Vignesh Venkatasubramanian <vigneshv@google.com> | 2015-06-02 15:36:01 -0700 |
---|---|---|
committer | Lajos Molnar <lajos@google.com> | 2015-06-03 17:39:49 +0000 |
commit | 1b30bde3d4447e4c9b767c68584b8997bd930720 (patch) | |
tree | a3f1dbdda455e7bce6d78ed7884f9eb22f18bf0e /media/libstagefright/codecs/opus/dec/SoftOpus.cpp | |
parent | 77f101b342b6d206b6f530991f3333dfedeebab6 (diff) | |
download | frameworks_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.cpp | 8 |
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; |