OSDN Git Service

Fix AAC decoder reconfiguration
authorMarco Nelissen <marcone@google.com>
Mon, 15 Apr 2013 19:06:18 +0000 (12:06 -0700)
committerMarco Nelissen <marcone@google.com>
Mon, 15 Apr 2013 19:06:18 +0000 (12:06 -0700)
The recent flush() changed made the codec behave differently after
a reconfigure. Now we reset its state properly again.
b/8543366

Change-Id: I8807b5ab02249b43fc1cf315d4e8d4ceb3f9b298

media/libstagefright/codecs/aacdec/SoftAAC2.cpp

index 8ba2afb..536cfde 100644 (file)
@@ -592,6 +592,12 @@ void SoftAAC2::drainDecoder() {
 
 void SoftAAC2::onReset() {
     drainDecoder();
+    // reset the "configured" state
+    mInputBufferCount = 0;
+    mNumSamplesOutput = 0;
+    // To make the codec behave the same before and after a reset, we need to invalidate the
+    // streaminfo struct. This does that:
+    mStreamInfo->sampleRate = 0;
 }
 
 void SoftAAC2::onPortEnableCompleted(OMX_U32 portIndex, bool enabled) {