From 0660b55cebc851bfc940b6f2c7a265f668beef43 Mon Sep 17 00:00:00 2001 From: sheenachhabra Date: Tue, 12 Dec 2023 03:28:42 -0800 Subject: [PATCH] Move doInterleave() call to Mp4Writer `Mp4Writer` receives all the tracks/samples and then it adds them to corresponding `Track` object. As the `Track` object is primarily to hold track specific data and `Mp4Writer` is responsible for interleaving related logic, the call to `doInterleave` should be with `Mp4Writer`. The `Track` object should just act like a data holding class. This will also help in reusing `Track` class for fragmented MP4 implementation. PiperOrigin-RevId: 590138002 --- .../muxer/src/main/java/androidx/media3/muxer/Mp4Writer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 a9f76de5c8..513d721747 100644 --- a/libraries/muxer/src/main/java/androidx/media3/muxer/Mp4Writer.java +++ b/libraries/muxer/src/main/java/androidx/media3/muxer/Mp4Writer.java @@ -90,6 +90,7 @@ import java.util.concurrent.atomic.AtomicBoolean; throws IOException { checkState(token instanceof Track); ((Track) token).writeSampleData(byteBuf, bufferInfo); + doInterleave(); } public void close() throws IOException { @@ -387,7 +388,6 @@ import java.util.concurrent.atomic.AtomicBoolean; } pendingSamples.addLast(Pair.create(bufferInfo, byteBuffer)); - doInterleave(); } @Override