diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java index 4765278fcb..9375f9bba6 100644 --- a/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java +++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java @@ -361,7 +361,7 @@ public class PlayerActivity extends Activity new DefaultRenderersFactory(this, extensionRendererMode); trackSelector = new DefaultTrackSelector(trackSelectionFactory); - trackSelectionHelper = new TrackSelectionHelper(trackSelector, trackSelectionFactory); + trackSelectionHelper = new TrackSelectionHelper(trackSelector); lastSeenTrackGroupArray = null; player = diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/TrackSelectionHelper.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/TrackSelectionHelper.java index 89b008dbfe..d12d132c16 100644 --- a/demos/main/src/main/java/com/google/android/exoplayer2/demo/TrackSelectionHelper.java +++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/TrackSelectionHelper.java @@ -32,7 +32,6 @@ import com.google.android.exoplayer2.source.TrackGroupArray; import com.google.android.exoplayer2.trackselection.DefaultTrackSelector; import com.google.android.exoplayer2.trackselection.DefaultTrackSelector.SelectionOverride; import com.google.android.exoplayer2.trackselection.MappingTrackSelector.MappedTrackInfo; -import com.google.android.exoplayer2.trackselection.TrackSelection; import java.util.Arrays; /** @@ -42,7 +41,6 @@ import java.util.Arrays; DialogInterface.OnClickListener { private final DefaultTrackSelector selector; - private final TrackSelection.Factory trackSelectionFactory; private MappedTrackInfo trackInfo; private int rendererIndex; @@ -55,14 +53,9 @@ import java.util.Arrays; private CheckedTextView defaultView; private CheckedTextView[][] trackViews; - /** - * @param selector The track selector. - * @param trackSelectionFactory A factory for overriding {@link TrackSelection}s. - */ - public TrackSelectionHelper( - DefaultTrackSelector selector, TrackSelection.Factory trackSelectionFactory) { + /** @param selector The track selector. */ + public TrackSelectionHelper(DefaultTrackSelector selector) { this.selector = selector; - this.trackSelectionFactory = trackSelectionFactory; } /** @@ -228,7 +221,7 @@ import java.util.Arrays; } private void setOverride(int group, int... tracks) { - override = new SelectionOverride(trackSelectionFactory, group, tracks); + override = new SelectionOverride(group, tracks); } // Track array manipulation. diff --git a/library/core/src/main/java/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.java b/library/core/src/main/java/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.java index 7edcf65320..80fbdf0611 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.java @@ -632,33 +632,20 @@ public class DefaultTrackSelector extends MappingTrackSelector { /** A track selection override. */ public static class SelectionOverride { - public final TrackSelection.Factory factory; public final int groupIndex; public final int[] tracks; public final int length; /** - * @param factory A factory for creating selections from this override. * @param groupIndex The overriding track group index. * @param tracks The overriding track indices within the track group. */ - public SelectionOverride(TrackSelection.Factory factory, int groupIndex, int... tracks) { - this.factory = factory; + public SelectionOverride(int groupIndex, int... tracks) { this.groupIndex = groupIndex; this.tracks = tracks; this.length = tracks.length; } - /** - * Creates an selection from this override. - * - * @param groups The track groups whose selection is being overridden. - * @return The selection. - */ - public TrackSelection createTrackSelection(TrackGroupArray groups) { - return factory.createTrackSelection(groups.get(groupIndex), tracks); - } - /** Returns whether this override contains the specified track index. */ public boolean containsTrack(int track) { for (int overrideTrack : tracks) { @@ -905,8 +892,17 @@ public class DefaultTrackSelector extends MappingTrackSelector { TrackGroupArray rendererTrackGroup = mappedTrackInfo.getTrackGroups(i); if (hasSelectionOverride(i, rendererTrackGroup)) { SelectionOverride override = selectionOverrides.get(i).get(rendererTrackGroup); - rendererTrackSelections[i] = - override == null ? null : override.createTrackSelection(rendererTrackGroup); + if (override == null) { + rendererTrackSelections[i] = null; + } else if (override.length == 1) { + rendererTrackSelections[i] = + new FixedTrackSelection( + rendererTrackGroup.get(override.groupIndex), override.tracks[0]); + } else { + rendererTrackSelections[i] = + adaptiveTrackSelectionFactory.createTrackSelection( + rendererTrackGroup.get(override.groupIndex), override.tracks); + } } } } diff --git a/library/core/src/main/java/com/google/android/exoplayer2/trackselection/MappingTrackSelector.java b/library/core/src/main/java/com/google/android/exoplayer2/trackselection/MappingTrackSelector.java index 75a7565b98..7a5757b0ec 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/trackselection/MappingTrackSelector.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/trackselection/MappingTrackSelector.java @@ -264,17 +264,6 @@ public abstract class MappingTrackSelector extends TrackSelector { } - // TODO: Make DefaultTrackSelector.SelectionOverride final when this is removed. - /** @deprecated Use {@link DefaultTrackSelector.SelectionOverride} */ - @Deprecated - public static final class SelectionOverride extends DefaultTrackSelector.SelectionOverride { - - public SelectionOverride(TrackSelection.Factory factory, int groupIndex, int... tracks) { - super(factory, groupIndex, tracks); - } - - } - private MappedTrackInfo currentMappedTrackInfo; /**