diff --git a/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/DashMediaSource.java b/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/DashMediaSource.java index 88ee977c43..3e151d60d5 100644 --- a/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/DashMediaSource.java +++ b/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/DashMediaSource.java @@ -108,10 +108,8 @@ public final class DashMediaSource extends BaseMediaSource { private DrmSessionManagerProvider drmSessionManagerProvider; private CompositeSequenceableLoaderFactory compositeSequenceableLoaderFactory; private LoadErrorHandlingPolicy loadErrorHandlingPolicy; - private long targetLiveOffsetOverrideMs; private long fallbackTargetLiveOffsetMs; @Nullable private ParsingLoadable.Parser manifestParser; - @Nullable private Object tag; /** * Creates a new factory for {@link DashMediaSource}s. @@ -139,21 +137,10 @@ public final class DashMediaSource extends BaseMediaSource { this.manifestDataSourceFactory = manifestDataSourceFactory; drmSessionManagerProvider = new DefaultDrmSessionManagerProvider(); loadErrorHandlingPolicy = new DefaultLoadErrorHandlingPolicy(); - targetLiveOffsetOverrideMs = C.TIME_UNSET; fallbackTargetLiveOffsetMs = DEFAULT_FALLBACK_TARGET_LIVE_OFFSET_MS; compositeSequenceableLoaderFactory = new DefaultCompositeSequenceableLoaderFactory(); } - /** - * @deprecated Use {@link MediaItem.Builder#setTag(Object)} and {@link - * #createMediaSource(MediaItem)} instead. - */ - @Deprecated - public Factory setTag(@Nullable Object tag) { - this.tag = tag; - return this; - } - @Override public Factory setDrmSessionManagerProvider( @Nullable DrmSessionManagerProvider drmSessionManagerProvider) { @@ -180,21 +167,6 @@ public final class DashMediaSource extends BaseMediaSource { return this; } - /** - * @deprecated Use {@link MediaItem.Builder#setLiveConfiguration(MediaItem.LiveConfiguration)} - * and {@link MediaItem.LiveConfiguration.Builder#setTargetOffsetMs(long)} to override the - * manifest, or {@link #setFallbackTargetLiveOffsetMs(long)} to provide a fallback value. - */ - @Deprecated - public Factory setLivePresentationDelayMs( - long livePresentationDelayMs, boolean overridesManifest) { - targetLiveOffsetOverrideMs = overridesManifest ? livePresentationDelayMs : C.TIME_UNSET; - if (!overridesManifest) { - setFallbackTargetLiveOffsetMs(livePresentationDelayMs); - } - return this; - } - /** * Sets the target {@link Player#getCurrentLiveOffset() offset for live streams} that is used if * no value is defined in the {@link MediaItem} or the manifest. @@ -255,7 +227,6 @@ public final class DashMediaSource extends BaseMediaSource { .setUri(Uri.EMPTY) .setMediaId(DEFAULT_MEDIA_ID) .setMimeType(MimeTypes.APPLICATION_MPD) - .setTag(tag) .build()); } @@ -275,17 +246,6 @@ public final class DashMediaSource extends BaseMediaSource { if (mediaItem.localConfiguration == null) { mediaItemBuilder.setUri(Uri.EMPTY); } - if (mediaItem.localConfiguration == null || mediaItem.localConfiguration.tag == null) { - mediaItemBuilder.setTag(tag); - } - if (mediaItem.liveConfiguration.targetOffsetMs == C.TIME_UNSET) { - mediaItemBuilder.setLiveConfiguration( - mediaItem - .liveConfiguration - .buildUpon() - .setTargetOffsetMs(targetLiveOffsetOverrideMs) - .build()); - } mediaItem = mediaItemBuilder.build(); return new DashMediaSource( mediaItem, @@ -318,25 +278,6 @@ public final class DashMediaSource extends BaseMediaSource { manifestParser = new FilteringManifestParser<>(manifestParser, streamKeys); } - boolean needsTag = mediaItem.localConfiguration.tag == null && tag != null; - boolean needsTargetLiveOffset = - mediaItem.liveConfiguration.targetOffsetMs == C.TIME_UNSET - && targetLiveOffsetOverrideMs != C.TIME_UNSET; - if (needsTag || needsTargetLiveOffset) { - MediaItem.Builder builder = mediaItem.buildUpon(); - if (needsTag) { - builder.setTag(tag); - } - if (needsTargetLiveOffset) { - builder.setLiveConfiguration( - mediaItem - .liveConfiguration - .buildUpon() - .setTargetOffsetMs(targetLiveOffsetOverrideMs) - .build()); - } - mediaItem = builder.build(); - } return new DashMediaSource( mediaItem, /* manifest= */ null, diff --git a/libraries/exoplayer_dash/src/test/java/androidx/media3/exoplayer/dash/DashMediaSourceTest.java b/libraries/exoplayer_dash/src/test/java/androidx/media3/exoplayer/dash/DashMediaSourceTest.java index 5e97bc9aba..20ba0560ee 100644 --- a/libraries/exoplayer_dash/src/test/java/androidx/media3/exoplayer/dash/DashMediaSourceTest.java +++ b/libraries/exoplayer_dash/src/test/java/androidx/media3/exoplayer/dash/DashMediaSourceTest.java @@ -99,40 +99,6 @@ public final class DashMediaSourceTest { } } - // Tests backwards compatibility - @SuppressWarnings("deprecation") - @Test - public void factorySetTag_nullMediaItemTag_setsMediaItemTag() { - Object tag = new Object(); - MediaItem mediaItem = MediaItem.fromUri("http://www.google.com"); - DashMediaSource.Factory factory = - new DashMediaSource.Factory(new FileDataSource.Factory()).setTag(tag); - - MediaItem dashMediaItem = factory.createMediaSource(mediaItem).getMediaItem(); - - assertThat(dashMediaItem.localConfiguration).isNotNull(); - assertThat(dashMediaItem.localConfiguration.uri).isEqualTo(mediaItem.localConfiguration.uri); - assertThat(dashMediaItem.localConfiguration.tag).isEqualTo(tag); - } - - // Tests backwards compatibility - @SuppressWarnings("deprecation") - @Test - public void factorySetTag_nonNullMediaItemTag_doesNotOverrideMediaItemTag() { - Object factoryTag = new Object(); - Object mediaItemTag = new Object(); - MediaItem mediaItem = - new MediaItem.Builder().setUri("http://www.google.com").setTag(mediaItemTag).build(); - DashMediaSource.Factory factory = - new DashMediaSource.Factory(new FileDataSource.Factory()).setTag(factoryTag); - - MediaItem dashMediaItem = factory.createMediaSource(mediaItem).getMediaItem(); - - assertThat(dashMediaItem.localConfiguration).isNotNull(); - assertThat(dashMediaItem.localConfiguration.uri).isEqualTo(mediaItem.localConfiguration.uri); - assertThat(dashMediaItem.localConfiguration.tag).isEqualTo(mediaItemTag); - } - @Test public void replaceManifestUri_doesNotChangeMediaItem() { DashMediaSource.Factory factory = new DashMediaSource.Factory(new FileDataSource.Factory()); @@ -161,47 +127,6 @@ public final class DashMediaSourceTest { assertThat(dashMediaItem.liveConfiguration.targetOffsetMs).isEqualTo(2L); } - @Test - public void factorySetLivePresentationDelayMs_withMediaLiveTargetOffset_usesMediaOffset() { - MediaItem mediaItem = - new MediaItem.Builder() - .setUri(Uri.EMPTY) - .setLiveConfiguration( - new MediaItem.LiveConfiguration.Builder().setTargetOffsetMs(2L).build()) - .build(); - DashMediaSource.Factory factory = - new DashMediaSource.Factory(new FileDataSource.Factory()) - .setLivePresentationDelayMs(1234L, /* overridesManifest= */ true); - - MediaItem dashMediaItem = factory.createMediaSource(mediaItem).getMediaItem(); - - assertThat(dashMediaItem.liveConfiguration.targetOffsetMs).isEqualTo(2L); - } - - @Test - public void factorySetLivePresentationDelayMs_overridingManifest_mixedIntoMediaItem() { - MediaItem mediaItem = new MediaItem.Builder().setUri(Uri.EMPTY).build(); - DashMediaSource.Factory factory = - new DashMediaSource.Factory(new FileDataSource.Factory()) - .setLivePresentationDelayMs(2000L, /* overridesManifest= */ true); - - MediaItem dashMediaItem = factory.createMediaSource(mediaItem).getMediaItem(); - - assertThat(dashMediaItem.liveConfiguration.targetOffsetMs).isEqualTo(2000L); - } - - @Test - public void factorySetLivePresentationDelayMs_notOverridingManifest_unsetInMediaItem() { - MediaItem mediaItem = new MediaItem.Builder().setUri(Uri.EMPTY).build(); - DashMediaSource.Factory factory = - new DashMediaSource.Factory(new FileDataSource.Factory()) - .setLivePresentationDelayMs(2000L, /* overridesManifest= */ false); - - MediaItem dashMediaItem = factory.createMediaSource(mediaItem).getMediaItem(); - - assertThat(dashMediaItem.liveConfiguration.targetOffsetMs).isEqualTo(C.TIME_UNSET); - } - @Test public void factorySetFallbackTargetLiveOffsetMs_doesNotChangeMediaItem() { DashMediaSource.Factory factory = diff --git a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsMediaSource.java b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsMediaSource.java index 5ae88ac670..e0bd7029fb 100644 --- a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsMediaSource.java +++ b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsMediaSource.java @@ -108,7 +108,6 @@ public final class HlsMediaSource extends BaseMediaSource private boolean allowChunklessPreparation; private @MetadataType int metadataType; private boolean useSessionKeys; - @Nullable private Object tag; private long elapsedRealTimeOffsetMs; /** @@ -141,16 +140,6 @@ public final class HlsMediaSource extends BaseMediaSource allowChunklessPreparation = true; } - /** - * @deprecated Use {@link MediaItem.Builder#setTag(Object)} and {@link - * #createMediaSource(MediaItem)} instead. - */ - @Deprecated - public Factory setTag(@Nullable Object tag) { - this.tag = tag; - return this; - } - /** * Sets the factory for {@link Extractor}s for the segments. The default value is {@link * HlsExtractorFactory#DEFAULT}. @@ -324,9 +313,6 @@ public final class HlsMediaSource extends BaseMediaSource new FilteringHlsPlaylistParserFactory(playlistParserFactory, streamKeys); } - if (mediaItem.localConfiguration.tag == null && tag != null) { - mediaItem = mediaItem.buildUpon().setTag(tag).build(); - } return new HlsMediaSource( mediaItem, hlsDataSourceFactory, diff --git a/libraries/exoplayer_hls/src/test/java/androidx/media3/exoplayer/hls/HlsMediaSourceTest.java b/libraries/exoplayer_hls/src/test/java/androidx/media3/exoplayer/hls/HlsMediaSourceTest.java index fcd9fa7546..01e73a87f0 100644 --- a/libraries/exoplayer_hls/src/test/java/androidx/media3/exoplayer/hls/HlsMediaSourceTest.java +++ b/libraries/exoplayer_hls/src/test/java/androidx/media3/exoplayer/hls/HlsMediaSourceTest.java @@ -17,7 +17,6 @@ package androidx.media3.exoplayer.hls; import static androidx.media3.test.utils.robolectric.RobolectricUtil.runMainLooperUntil; import static com.google.common.truth.Truth.assertThat; -import static org.mockito.Mockito.mock; import android.net.Uri; import android.os.SystemClock; @@ -25,7 +24,6 @@ import androidx.media3.common.MediaItem; import androidx.media3.common.ParserException; import androidx.media3.common.Timeline; import androidx.media3.common.util.Util; -import androidx.media3.datasource.DataSource; import androidx.media3.exoplayer.analytics.PlayerId; import androidx.media3.exoplayer.hls.playlist.HlsMediaPlaylist; import androidx.media3.exoplayer.hls.playlist.HlsPlaylistParser; @@ -46,40 +44,6 @@ import org.junit.runner.RunWith; @RunWith(AndroidJUnit4.class) public class HlsMediaSourceTest { - // Tests backwards compatibility - @SuppressWarnings("deprecation") - @Test - public void factorySetTag_nullMediaItemTag_setsMediaItemTag() { - Object tag = new Object(); - MediaItem mediaItem = MediaItem.fromUri("http://www.google.com"); - HlsMediaSource.Factory factory = - new HlsMediaSource.Factory(mock(DataSource.Factory.class)).setTag(tag); - - MediaItem hlsMediaItem = factory.createMediaSource(mediaItem).getMediaItem(); - - assertThat(hlsMediaItem.localConfiguration).isNotNull(); - assertThat(hlsMediaItem.localConfiguration.uri).isEqualTo(mediaItem.localConfiguration.uri); - assertThat(hlsMediaItem.localConfiguration.tag).isEqualTo(tag); - } - - // Tests backwards compatibility - @SuppressWarnings("deprecation") - @Test - public void factorySetTag_nonNullMediaItemTag_doesNotOverrideMediaItemTag() { - Object factoryTag = new Object(); - Object mediaItemTag = new Object(); - MediaItem mediaItem = - new MediaItem.Builder().setUri("http://www.google.com").setTag(mediaItemTag).build(); - HlsMediaSource.Factory factory = - new HlsMediaSource.Factory(mock(DataSource.Factory.class)).setTag(factoryTag); - - MediaItem hlsMediaItem = factory.createMediaSource(mediaItem).getMediaItem(); - - assertThat(hlsMediaItem.localConfiguration).isNotNull(); - assertThat(hlsMediaItem.localConfiguration.uri).isEqualTo(mediaItem.localConfiguration.uri); - assertThat(hlsMediaItem.localConfiguration.tag).isEqualTo(mediaItemTag); - } - @Test public void loadLivePlaylist_noTargetLiveOffsetDefined_fallbackToThreeTargetDuration() throws TimeoutException, ParserException { diff --git a/libraries/exoplayer_smoothstreaming/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSource.java b/libraries/exoplayer_smoothstreaming/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSource.java index f4d3a8a89f..0685398bf7 100644 --- a/libraries/exoplayer_smoothstreaming/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSource.java +++ b/libraries/exoplayer_smoothstreaming/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSource.java @@ -89,7 +89,6 @@ public final class SsMediaSource extends BaseMediaSource private LoadErrorHandlingPolicy loadErrorHandlingPolicy; private long livePresentationDelayMs; @Nullable private ParsingLoadable.Parser manifestParser; - @Nullable private Object tag; /** * Creates a new factory for {@link SsMediaSource}s. @@ -121,16 +120,6 @@ public final class SsMediaSource extends BaseMediaSource compositeSequenceableLoaderFactory = new DefaultCompositeSequenceableLoaderFactory(); } - /** - * @deprecated Use {@link MediaItem.Builder#setTag(Object)} and {@link - * #createMediaSource(MediaItem)} instead. - */ - @Deprecated - public Factory setTag(@Nullable Object tag) { - this.tag = tag; - return this; - } - /** * Sets the {@link LoadErrorHandlingPolicy}. The default value is created by calling {@link * DefaultLoadErrorHandlingPolicy#DefaultLoadErrorHandlingPolicy()}. @@ -233,13 +222,11 @@ public final class SsMediaSource extends BaseMediaSource manifest = manifest.copy(streamKeys); } boolean hasUri = mediaItem.localConfiguration != null; - boolean hasTag = hasUri && mediaItem.localConfiguration.tag != null; mediaItem = mediaItem .buildUpon() .setMimeType(MimeTypes.APPLICATION_SS) .setUri(hasUri ? mediaItem.localConfiguration.uri : Uri.EMPTY) - .setTag(hasTag ? mediaItem.localConfiguration.tag : tag) .build(); return new SsMediaSource( mediaItem, @@ -272,9 +259,6 @@ public final class SsMediaSource extends BaseMediaSource manifestParser = new FilteringManifestParser<>(manifestParser, streamKeys); } - if (mediaItem.localConfiguration.tag == null && tag != null) { - mediaItem = mediaItem.buildUpon().setTag(tag).build(); - } return new SsMediaSource( mediaItem, /* manifest= */ null, diff --git a/libraries/exoplayer_smoothstreaming/src/test/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSourceTest.java b/libraries/exoplayer_smoothstreaming/src/test/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSourceTest.java deleted file mode 100644 index 180aac89db..0000000000 --- a/libraries/exoplayer_smoothstreaming/src/test/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSourceTest.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (C) 2020 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package androidx.media3.exoplayer.smoothstreaming; - -import static androidx.media3.common.util.Util.castNonNull; -import static com.google.common.truth.Truth.assertThat; - -import androidx.media3.common.MediaItem; -import androidx.media3.datasource.FileDataSource; -import androidx.test.ext.junit.runners.AndroidJUnit4; -import org.junit.Test; -import org.junit.runner.RunWith; - -/** Unit tests for {@link SsMediaSource}. */ -@RunWith(AndroidJUnit4.class) -public class SsMediaSourceTest { - - // Tests backwards compatibility - @SuppressWarnings("deprecation") - @Test - public void factorySetTag_nullMediaItemTag_setsMediaItemTag() { - Object tag = new Object(); - MediaItem mediaItem = MediaItem.fromUri("http://www.google.com"); - SsMediaSource.Factory factory = - new SsMediaSource.Factory(new FileDataSource.Factory()).setTag(tag); - - MediaItem ssMediaItem = factory.createMediaSource(mediaItem).getMediaItem(); - - assertThat(ssMediaItem.localConfiguration).isNotNull(); - assertThat(ssMediaItem.localConfiguration.uri) - .isEqualTo(castNonNull(mediaItem.localConfiguration).uri); - assertThat(ssMediaItem.localConfiguration.tag).isEqualTo(tag); - } - - // Tests backwards compatibility - @SuppressWarnings("deprecation") - @Test - public void factorySetTag_nonNullMediaItemTag_doesNotOverrideMediaItemTag() { - Object factoryTag = new Object(); - Object mediaItemTag = new Object(); - MediaItem mediaItem = - new MediaItem.Builder().setUri("http://www.google.com").setTag(mediaItemTag).build(); - SsMediaSource.Factory factory = - new SsMediaSource.Factory(new FileDataSource.Factory()).setTag(factoryTag); - - MediaItem ssMediaItem = factory.createMediaSource(mediaItem).getMediaItem(); - - assertThat(ssMediaItem.localConfiguration).isNotNull(); - assertThat(ssMediaItem.localConfiguration.uri) - .isEqualTo(castNonNull(mediaItem.localConfiguration).uri); - assertThat(ssMediaItem.localConfiguration.tag).isEqualTo(mediaItemTag); - } -}