Merge "Change to output ArrayMode if using SkipCutBuffer" into main
diff --git a/media/codec2/sfplugin/CCodecBufferChannel.cpp b/media/codec2/sfplugin/CCodecBufferChannel.cpp
index 6b45e0e..6e6d3f7 100644
--- a/media/codec2/sfplugin/CCodecBufferChannel.cpp
+++ b/media/codec2/sfplugin/CCodecBufferChannel.cpp
@@ -1604,8 +1604,14 @@
padding = 0;
}
if (delay || padding) {
- // We need write access to the buffers, and we're already in
- // array mode.
+ // We need write access to the buffers, so turn them into array mode.
+ // TODO: b/321930152 - define SkipCutOutputBuffers that takes output from
+ // component, runs it through SkipCutBuffer and allocate local buffer to be
+ // used by fwk. Make initSkipCutBuffer() return OutputBuffers similar to
+ // toArrayMode().
+ if (!output->buffers->isArrayMode()) {
+ output->buffers = output->buffers->toArrayMode(numOutputSlots);
+ }
output->buffers->initSkipCutBuffer(delay, padding, sampleRate, channelCount);
}
}