From 85d4df2d2dccd49bf22dc536ba11aced2d383b16 Mon Sep 17 00:00:00 2001 From: kimvde Date: Thu, 4 Apr 2024 07:17:24 -0700 Subject: [PATCH] Throw if clip end position is equal to start position Issue: androidx/media#1242 PiperOrigin-RevId: 621850154 --- .../androidx/media3/transformer/EditedMediaItem.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/EditedMediaItem.java b/libraries/transformer/src/main/java/androidx/media3/transformer/EditedMediaItem.java index 9711658081..b869ecf01c 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/EditedMediaItem.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/EditedMediaItem.java @@ -25,6 +25,7 @@ import androidx.media3.common.Effect; import androidx.media3.common.MediaItem; import androidx.media3.common.audio.AudioProcessor; import androidx.media3.common.util.UnstableApi; +import androidx.media3.common.util.Util; import androidx.media3.exoplayer.source.MediaSource; import androidx.media3.extractor.mp4.Mp4Extractor; import com.google.errorprone.annotations.CanIgnoreReturnValue; @@ -55,6 +56,14 @@ public final class EditedMediaItem { * @param mediaItem The {@link MediaItem} on which transformations are applied. */ public Builder(MediaItem mediaItem) { + long clippingStartPositionUs = mediaItem.clippingConfiguration.startPositionUs; + long clippingEndPositionUs = mediaItem.clippingConfiguration.endPositionUs; + checkArgument( + clippingEndPositionUs == C.TIME_END_OF_SOURCE + || clippingEndPositionUs > clippingStartPositionUs, + Util.formatInvariant( + "Clipping end position (%d us) should be larger than start position (%d us)", + clippingEndPositionUs, clippingStartPositionUs)); this.mediaItem = mediaItem; durationUs = C.TIME_UNSET; frameRate = C.RATE_UNSET_INT;