diff --git a/libraries/muxer/src/main/java/androidx/media3/muxer/Mp4Writer.java b/libraries/muxer/src/main/java/androidx/media3/muxer/Mp4Writer.java index e4a78b983b..933581c8ba 100644 --- a/libraries/muxer/src/main/java/androidx/media3/muxer/Mp4Writer.java +++ b/libraries/muxer/src/main/java/androidx/media3/muxer/Mp4Writer.java @@ -364,6 +364,12 @@ import java.util.concurrent.atomic.AtomicBoolean; } public void writeSampleData(ByteBuffer byteBuffer, BufferInfo bufferInfo) throws IOException { + // TODO: b/279931840 - Confirm whether muxer should throw when writing empty samples. + // Skip empty samples. + if (bufferInfo.size == 0 || byteBuffer.remaining() == 0) { + return; + } + if ((bufferInfo.flags & MediaCodec.BUFFER_FLAG_KEY_FRAME) > 0) { hadKeyframe = true; } @@ -372,16 +378,8 @@ import java.util.concurrent.atomic.AtomicBoolean; return; } - if (bufferInfo.size == 0) { - return; - } - - // Skip empty samples. - // TODO: b/279931840 - Confirm whether muxer should throw when writing empty samples. - if (byteBuffer.remaining() > 0) { - pendingSamples.addLast(Pair.create(bufferInfo, byteBuffer)); - doInterleave(); - } + pendingSamples.addLast(Pair.create(bufferInfo, byteBuffer)); + doInterleave(); } @Override