Codec2 Components: reset OutputBlockPool after use
Since SimpleC2Component is holding the reference of output BlockPool,
destroying output BlockPool and creating a new BlockPool does not work.
Reset the reference of output BlockPool after
use(reset()/stop()/release()).
Bug: 184049126
Test: atest CtsMediaTestCases:android.media.cts.AdaptivePlaybackTest
Change-Id: I75fe1555533d75aa0f742e59992ae033f4454160
diff --git a/media/codec2/components/base/SimpleC2Component.cpp b/media/codec2/components/base/SimpleC2Component.cpp
index fb3fbd0..dfad226 100644
--- a/media/codec2/components/base/SimpleC2Component.cpp
+++ b/media/codec2/components/base/SimpleC2Component.cpp
@@ -110,17 +110,20 @@
}
case kWhatStop: {
int32_t err = thiz->onStop();
+ thiz->mOutputBlockPool.reset();
Reply(msg, &err);
break;
}
case kWhatReset: {
thiz->onReset();
+ thiz->mOutputBlockPool.reset();
mRunning = false;
Reply(msg);
break;
}
case kWhatRelease: {
thiz->onRelease();
+ thiz->mOutputBlockPool.reset();
mRunning = false;
Reply(msg);
break;