Clear MultiAccessUnit SkipCutBuffer
- Adding clear() to skipCutBuffer when flushing
- MultiAccessUnitHelper flush will flush all
frameIndexes within a buffer group and mark
the frame comple when flagged with DISCARD
Bug: 324224579
Test: Test: atest android.mediav2.cts.CodecDecoderMultiAccessUnitTest
Change-Id: Icf735aab92c019638d8974031e8dcc24299f1a42
diff --git a/media/codec2/sfplugin/CCodecBuffers.cpp b/media/codec2/sfplugin/CCodecBuffers.cpp
index 8a48777..d313f33 100644
--- a/media/codec2/sfplugin/CCodecBuffers.cpp
+++ b/media/codec2/sfplugin/CCodecBuffers.cpp
@@ -160,6 +160,12 @@
SkipCutBuffer(skip, cut, num16BitChannels),
mFrontPaddingDelay(0), mSize(0) {
}
+ void clearAll() {
+ mInfos.clear();
+ mFrontPaddingDelay = 0;
+ mSize = 0;
+ SkipCutBuffer::clear();
+ }
virtual ~MultiAccessUnitSkipCutBuffer() {
@@ -1378,7 +1384,7 @@
(void)flushedWork;
mImpl.flush();
if (mSkipCutBuffer != nullptr) {
- mSkipCutBuffer->clear();
+ mSkipCutBuffer->clearAll();
}
}
@@ -1536,7 +1542,7 @@
void LinearOutputBuffers::flush(
const std::list<std::unique_ptr<C2Work>> &flushedWork) {
if (mSkipCutBuffer != nullptr) {
- mSkipCutBuffer->clear();
+ mSkipCutBuffer->clearAll();
}
FlexOutputBuffers::flush(flushedWork);
}