From 87ff3157c98c102e7943caffd3ffe394869febcf Mon Sep 17 00:00:00 2001 From: kimvde Date: Fri, 3 Feb 2023 15:50:59 +0000 Subject: [PATCH] Update Composition structure to take List instead of ImmutableList This is more flexible for apps and more consitent with the Player API. PiperOrigin-RevId: 506901645 --- .../exoplayer2/transformer/Composition.java | 5 +++-- .../transformer/EditedMediaItemSequence.java | 5 +++-- .../android/exoplayer2/transformer/Effects.java | 16 ++++++++-------- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/Composition.java b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/Composition.java index 7eade92d1b..59d9ab4464 100644 --- a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/Composition.java +++ b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/Composition.java @@ -19,6 +19,7 @@ import static com.google.android.exoplayer2.util.Assertions.checkArgument; import com.google.android.exoplayer2.MediaItem; import com.google.common.collect.ImmutableList; +import java.util.List; /** * A composition of {@link MediaItem} instances, with transformations to apply to them. @@ -44,9 +45,9 @@ public final class Composition { * @param sequences The {@link #sequences}. * @param effects The {@link #effects}. */ - public Composition(ImmutableList sequences, Effects effects) { + public Composition(List sequences, Effects effects) { checkArgument(!sequences.isEmpty()); - this.sequences = sequences; + this.sequences = ImmutableList.copyOf(sequences); this.effects = effects; } } diff --git a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/EditedMediaItemSequence.java b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/EditedMediaItemSequence.java index 2d04adb148..2604a8d2fe 100644 --- a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/EditedMediaItemSequence.java +++ b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/EditedMediaItemSequence.java @@ -18,6 +18,7 @@ package com.google.android.exoplayer2.transformer; import static com.google.android.exoplayer2.util.Assertions.checkArgument; import com.google.common.collect.ImmutableList; +import java.util.List; /** * A sequence of {@link EditedMediaItem} instances. @@ -38,8 +39,8 @@ public final class EditedMediaItemSequence { * * @param editedMediaItems The {@link #editedMediaItems}. */ - public EditedMediaItemSequence(ImmutableList editedMediaItems) { + public EditedMediaItemSequence(List editedMediaItems) { checkArgument(!editedMediaItems.isEmpty()); - this.editedMediaItems = editedMediaItems; + this.editedMediaItems = ImmutableList.copyOf(editedMediaItems); } } diff --git a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/Effects.java b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/Effects.java index de62e336bb..04026c5cdc 100644 --- a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/Effects.java +++ b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/Effects.java @@ -21,6 +21,7 @@ import com.google.android.exoplayer2.effect.GlEffectsFrameProcessor; import com.google.android.exoplayer2.util.Effect; import com.google.android.exoplayer2.util.FrameProcessor; import com.google.common.collect.ImmutableList; +import java.util.List; /** Effects to apply to a {@link MediaItem}. */ public final class Effects { @@ -50,11 +51,10 @@ public final class Effects { /** * Creates an instance using a {@link GlEffectsFrameProcessor.Factory}. * - *

This is equivalent to calling {@link Effects#Effects(ImmutableList, ImmutableList, - * FrameProcessor.Factory)} with a {@link GlEffectsFrameProcessor.Factory}. + *

This is equivalent to calling {@link Effects#Effects(List, List, FrameProcessor.Factory)} + * with a {@link GlEffectsFrameProcessor.Factory}. */ - public Effects( - ImmutableList audioProcessors, ImmutableList videoEffects) { + public Effects(List audioProcessors, List videoEffects) { this(audioProcessors, videoEffects, new GlEffectsFrameProcessor.Factory()); } @@ -66,11 +66,11 @@ public final class Effects { * @param frameProcessorFactory The {@link #frameProcessorFactory}. */ public Effects( - ImmutableList audioProcessors, - ImmutableList videoEffects, + List audioProcessors, + List videoEffects, FrameProcessor.Factory frameProcessorFactory) { - this.audioProcessors = audioProcessors; - this.videoEffects = videoEffects; + this.audioProcessors = ImmutableList.copyOf(audioProcessors); + this.videoEffects = ImmutableList.copyOf(videoEffects); this.frameProcessorFactory = frameProcessorFactory; } }