C2VpxEnc: Handle empty input buffers with EOS
In case of empty input buffers with EOS set, signal EOS on output
Bug: 110053856
Test: cts -m CtsMediaTestCases -t android.media.cts.EncodeDecodeTest
Test: cts -m CtsMediaTestCases -t android.media.cts.VideoEncoderTest
Change-Id: If092542d46985eb8a60c4a746ad7cfffb3dfddf6
diff --git a/media/codecs/vpx/C2SoftVpxEnc.cpp b/media/codecs/vpx/C2SoftVpxEnc.cpp
index f26a348..591a21b 100644
--- a/media/codecs/vpx/C2SoftVpxEnc.cpp
+++ b/media/codecs/vpx/C2SoftVpxEnc.cpp
@@ -424,6 +424,13 @@
work->result = C2_CORRUPTED;
return;
}
+ } else if (work->input.flags & C2FrameData::FLAG_END_OF_STREAM) {
+ ALOGV("Empty input Buffer with EOS");
+ work->worklets.front()->output.flags = C2FrameData::FLAG_END_OF_STREAM;
+ work->worklets.front()->output.buffers.clear();
+ work->worklets.front()->output.ordinal = work->input.ordinal;
+ work->workletsProcessed = 1u;
+ return;
} else {
ALOGE("Empty input Buffer");
work->result = C2_BAD_VALUE;