summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/codecs/aacdec/SoftAAC2.cpp
diff options
context:
space:
mode:
authorMarco Nelissen <marcone@google.com>2013-04-15 12:06:18 -0700
committerMarco Nelissen <marcone@google.com>2013-04-15 12:06:18 -0700
commit7c5abbb0e1b20df4b265a08a8560899f637f9b44 (patch)
tree65e88f89d1bda5f3e00561b42cf69c0c593ed402 /media/libstagefright/codecs/aacdec/SoftAAC2.cpp
parent4a4256eb3963124e20ce63034c092c9bec396e32 (diff)
downloadframeworks_av-7c5abbb0e1b20df4b265a08a8560899f637f9b44.zip
frameworks_av-7c5abbb0e1b20df4b265a08a8560899f637f9b44.tar.gz
frameworks_av-7c5abbb0e1b20df4b265a08a8560899f637f9b44.tar.bz2
Fix AAC decoder reconfiguration
The recent flush() changed made the codec behave differently after a reconfigure. Now we reset its state properly again. b/8543366 Change-Id: I8807b5ab02249b43fc1cf315d4e8d4ceb3f9b298
Diffstat (limited to 'media/libstagefright/codecs/aacdec/SoftAAC2.cpp')
-rw-r--r--media/libstagefright/codecs/aacdec/SoftAAC2.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/media/libstagefright/codecs/aacdec/SoftAAC2.cpp b/media/libstagefright/codecs/aacdec/SoftAAC2.cpp
index 8ba2afb..536cfde 100644
--- a/media/libstagefright/codecs/aacdec/SoftAAC2.cpp
+++ b/media/libstagefright/codecs/aacdec/SoftAAC2.cpp
@@ -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) {