transcoder: sleep before signal EOS
Bug: 264938310
Change-Id: I1b72d7a77284470332e04ea4c31351352e42bb63
diff --git a/media/module/libmediatranscoding/transcoder/VideoTrackTranscoder.cpp b/media/module/libmediatranscoding/transcoder/VideoTrackTranscoder.cpp
index d21908f..7905e4f 100644
--- a/media/module/libmediatranscoding/transcoder/VideoTrackTranscoder.cpp
+++ b/media/module/libmediatranscoding/transcoder/VideoTrackTranscoder.cpp
@@ -458,6 +458,12 @@
if (bufferInfo.flags & AMEDIACODEC_BUFFER_FLAG_END_OF_STREAM) {
LOG(DEBUG) << "EOS from decoder.";
+ // NOTE - b/360057459
+ // There is a synchronization problem between feeding the frame to the encoder input surface
+ // and signaling end of stream.
+ // Waiting before signaling end of stream so that input surface has time to feed remaining
+ // frames to the encoder.
+ std::this_thread::sleep_for(std::chrono::milliseconds(10));
media_status_t status = AMediaCodec_signalEndOfInputStream(mEncoder->getCodec());
if (status != AMEDIA_OK) {
LOG(ERROR) << "SignalEOS on encoder returned error: " << status;