Workaround impl in acodec / ccodec
Bug: 234708299
Test: atest DecodeOnlyTest
Change-Id: I293da198837e2bbbc73360e9cfa175643c497387
diff --git a/media/codec2/sfplugin/CCodecBufferChannel.cpp b/media/codec2/sfplugin/CCodecBufferChannel.cpp
index 6bb115a..b54d35d 100644
--- a/media/codec2/sfplugin/CCodecBufferChannel.cpp
+++ b/media/codec2/sfplugin/CCodecBufferChannel.cpp
@@ -1998,6 +1998,12 @@
drop = true;
}
+ // Workaround: if C2FrameData::FLAG_DROP_FRAME is not implemented in
+ // HAL, the flag is then removed in the corresponding output buffer.
+ if (work->input.flags & C2FrameData::FLAG_DROP_FRAME) {
+ flags |= BUFFER_FLAG_DECODE_ONLY;
+ }
+
if (notifyClient && !buffer && !flags) {
if (mTunneled && drop && outputFormat) {
ALOGV("[%s] onWorkDone: Keep tunneled, drop frame with format change (%lld)",