Skip to content

Commit 1af92a0

Browse files
committed
Prevent writing EOS blocks into MediaMuxer
Android 11 stops automatically when it receives one. This commit has been copied from https://github.com/natario1/Transcoder/pull/108
1 parent df67bd7 commit 1af92a0

File tree

2 files changed

+2
-3
lines changed

2 files changed

+2
-3
lines changed

lib/src/main/java/com/otaliastudios/transcoder/transcode/BaseTrackTranscoder.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,8 @@ private int drainEncoder(long timeoutUs) {
278278

279279
if ((mBufferInfo.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0) {
280280
mIsEncoderEOS = true;
281-
mBufferInfo.set(0, 0, 0, mBufferInfo.flags);
281+
mEncoder.releaseOutputBuffer(result, false);
282+
return DRAIN_STATE_NONE;
282283
}
283284
if ((mBufferInfo.flags & MediaCodec.BUFFER_FLAG_CODEC_CONFIG) != 0) {
284285
// SPS or PPS, which should be passed by MediaFormat.

lib/src/main/java/com/otaliastudios/transcoder/transcode/PassThroughTrackTranscoder.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,6 @@ public boolean transcode(boolean forceInputEos) {
6969
}
7070
if (mDataSource.isDrained() || forceInputEos) {
7171
mDataChunk.buffer.clear();
72-
mBufferInfo.set(0, 0, 0, MediaCodec.BUFFER_FLAG_END_OF_STREAM);
73-
mDataSink.writeTrack(mTrackType, mDataChunk.buffer, mBufferInfo);
7472
mIsEOS = true;
7573
return true;
7674
}

0 commit comments

Comments
 (0)