diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/ExportResult.java b/libraries/transformer/src/main/java/androidx/media3/transformer/ExportResult.java index 007517ef0a..45a275798b 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/ExportResult.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/ExportResult.java @@ -284,6 +284,9 @@ public final class ExportResult { /** The processed {@link MediaItem}. */ public final MediaItem mediaItem; + /** The duration of the media item, in microseconds. */ + public final long durationUs; + /** * The name of the audio decoder used to process {@code mediaItem}. This field is {@code null} * if no audio decoder was used. @@ -298,8 +301,12 @@ public final class ExportResult { /** Creates an instance. */ public ProcessedInput( - MediaItem mediaItem, @Nullable String audioDecoderName, @Nullable String videoDecoderName) { + MediaItem mediaItem, + long durationUs, + @Nullable String audioDecoderName, + @Nullable String videoDecoderName) { this.mediaItem = mediaItem; + this.durationUs = durationUs; this.audioDecoderName = audioDecoderName; this.videoDecoderName = videoDecoderName; } diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/SequenceAssetLoader.java b/libraries/transformer/src/main/java/androidx/media3/transformer/SequenceAssetLoader.java index e35ee76248..2959dfaba6 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/SequenceAssetLoader.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/SequenceAssetLoader.java @@ -191,7 +191,10 @@ import java.util.concurrent.atomic.AtomicInteger; ImmutableMap decoders = getDecoderNames(); processedInputsBuilder.add( new ExportResult.ProcessedInput( - mediaItem, decoders.get(C.TRACK_TYPE_AUDIO), decoders.get(C.TRACK_TYPE_VIDEO))); + mediaItem, + currentAssetDurationUs, + decoders.get(C.TRACK_TYPE_AUDIO), + decoders.get(C.TRACK_TYPE_VIDEO))); processedInputsSize++; } }