diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/MediaSourceList.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/MediaSourceList.java index 41a8aa392a..87d11a580c 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/MediaSourceList.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/MediaSourceList.java @@ -559,23 +559,6 @@ import java.util.Set; // MediaSourceEventListener implementation - @Override - public void onLoadStarted( - int windowIndex, - @Nullable MediaSource.MediaPeriodId mediaPeriodId, - LoadEventInfo loadEventData, - MediaLoadData mediaLoadData) { - @Nullable - Pair eventParameters = - getEventParameters(windowIndex, mediaPeriodId); - if (eventParameters != null) { - eventHandler.post( - () -> - eventListener.onLoadStarted( - eventParameters.first, eventParameters.second, loadEventData, mediaLoadData)); - } - } - @Override public void onLoadStarted( int windowIndex, diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/analytics/DefaultAnalyticsCollector.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/analytics/DefaultAnalyticsCollector.java index 9525b51f57..3f80d131b9 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/analytics/DefaultAnalyticsCollector.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/analytics/DefaultAnalyticsCollector.java @@ -397,19 +397,6 @@ public class DefaultAnalyticsCollector implements AnalyticsCollector { // MediaSourceEventListener implementation. - @Override - public final void onLoadStarted( - int windowIndex, - @Nullable MediaPeriodId mediaPeriodId, - LoadEventInfo loadEventInfo, - MediaLoadData mediaLoadData) { - EventTime eventTime = generateMediaPeriodEventTime(windowIndex, mediaPeriodId); - sendEvent( - eventTime, - C.INDEX_UNSET, - listener -> listener.onLoadStarted(eventTime, loadEventInfo, mediaLoadData)); - } - @Override public final void onLoadStarted( int windowIndex, diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/CompositeMediaSource.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/CompositeMediaSource.java index e2db8de4f6..dcbe3aa436 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/CompositeMediaSource.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/CompositeMediaSource.java @@ -234,18 +234,6 @@ public abstract class CompositeMediaSource extends BaseMediaSource { // MediaSourceEventListener implementation - @Override - public void onLoadStarted( - int windowIndex, - @Nullable MediaPeriodId mediaPeriodId, - LoadEventInfo loadEventData, - MediaLoadData mediaLoadData) { - if (maybeUpdateEventDispatcher(windowIndex, mediaPeriodId)) { - mediaSourceEventDispatcher.loadStarted( - loadEventData, maybeUpdateMediaLoadData(mediaLoadData, mediaPeriodId)); - } - } - @Override public void onLoadStarted( int windowIndex, diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MediaSourceEventListener.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MediaSourceEventListener.java index bbd5eca049..1baa2a6432 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MediaSourceEventListener.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MediaSourceEventListener.java @@ -46,25 +46,7 @@ public interface MediaSourceEventListener { * LoadEventInfo#uri} won't reflect potential redirection yet and {@link * LoadEventInfo#responseHeaders} will be empty. * @param mediaLoadData The {@link MediaLoadData} defining the data being loaded. - */ - @Deprecated - default void onLoadStarted( - int windowIndex, - @Nullable MediaPeriodId mediaPeriodId, - LoadEventInfo loadEventInfo, - MediaLoadData mediaLoadData) {} - - /** - * Called when a load begins. - * - * @param windowIndex The window index in the timeline of the media source this load belongs to. - * @param mediaPeriodId The {@link MediaPeriodId} this load belongs to. Null if the load does not - * belong to a specific media period. - * @param loadEventInfo The {@link LoadEventInfo} corresponding to the event. The value of {@link - * LoadEventInfo#uri} won't reflect potential redirection yet and {@link - * LoadEventInfo#responseHeaders} will be empty. - * @param mediaLoadData The {@link MediaLoadData} defining the data being loaded. - * @param retryCount The number of failed attempts since {@link #onLoadStarted} was called (this + * @param retryCount The number of failed attempts since this method was first called (this * is zero for the first load attempt). */ default void onLoadStarted( @@ -82,7 +64,7 @@ public interface MediaSourceEventListener { * belong to a specific media period. * @param loadEventInfo The {@link LoadEventInfo} corresponding to the event. The values of {@link * LoadEventInfo#elapsedRealtimeMs} and {@link LoadEventInfo#bytesLoaded} are relative to the - * corresponding {@link #onLoadStarted(int, MediaPeriodId, LoadEventInfo, MediaLoadData)} + * corresponding {@link #onLoadStarted} * event. * @param mediaLoadData The {@link MediaLoadData} defining the data being loaded. */ @@ -100,7 +82,7 @@ public interface MediaSourceEventListener { * belong to a specific media period. * @param loadEventInfo The {@link LoadEventInfo} corresponding to the event. The values of {@link * LoadEventInfo#elapsedRealtimeMs} and {@link LoadEventInfo#bytesLoaded} are relative to the - * corresponding {@link #onLoadStarted(int, MediaPeriodId, LoadEventInfo, MediaLoadData)} + * corresponding {@link #onLoadStarted} * event. * @param mediaLoadData The {@link MediaLoadData} defining the data being loaded. */ @@ -129,7 +111,7 @@ public interface MediaSourceEventListener { * belong to a specific media period. * @param loadEventInfo The {@link LoadEventInfo} corresponding to the event. The values of {@link * LoadEventInfo#elapsedRealtimeMs} and {@link LoadEventInfo#bytesLoaded} are relative to the - * corresponding {@link #onLoadStarted(int, MediaPeriodId, LoadEventInfo, MediaLoadData)} + * corresponding {@link #onLoadStarted} * event. * @param mediaLoadData The {@link MediaLoadData} defining the data being loaded. * @param error The load error. @@ -244,20 +226,6 @@ public interface MediaSourceEventListener { } } - /** Dispatches {@link #onLoadStarted(int, MediaPeriodId, LoadEventInfo, MediaLoadData)}. */ - @Deprecated - public void loadStarted(LoadEventInfo loadEventInfo, @DataType int dataType) { - loadStarted( - loadEventInfo, - dataType, - /* trackType= */ C.TRACK_TYPE_UNKNOWN, - /* trackFormat= */ null, - /* trackSelectionReason= */ C.SELECTION_REASON_UNKNOWN, - /* trackSelectionData= */ null, - /* mediaStartTimeUs= */ C.TIME_UNSET, - /* mediaEndTimeUs= */ C.TIME_UNSET); - } - /** Dispatches {@link #onLoadStarted(int, MediaPeriodId, LoadEventInfo, MediaLoadData, int)}. */ public void loadStarted(LoadEventInfo loadEventInfo, @DataType int dataType, int retryCount) { loadStarted( @@ -272,29 +240,6 @@ public interface MediaSourceEventListener { /* retryCount= */ retryCount); } - /** Dispatches {@link #onLoadStarted(int, MediaPeriodId, LoadEventInfo, MediaLoadData)}. */ - @Deprecated - public void loadStarted( - LoadEventInfo loadEventInfo, - @DataType int dataType, - @C.TrackType int trackType, - @Nullable Format trackFormat, - @C.SelectionReason int trackSelectionReason, - @Nullable Object trackSelectionData, - long mediaStartTimeUs, - long mediaEndTimeUs) { - loadStarted( - loadEventInfo, - new MediaLoadData( - dataType, - trackType, - trackFormat, - trackSelectionReason, - trackSelectionData, - usToMs(mediaStartTimeUs), - usToMs(mediaEndTimeUs))); - } - /** Dispatches {@link #onLoadStarted(int, MediaPeriodId, LoadEventInfo, MediaLoadData, int)}. */ public void loadStarted( LoadEventInfo loadEventInfo, @@ -319,15 +264,6 @@ public interface MediaSourceEventListener { retryCount); } - /** Dispatches {@link #onLoadStarted(int, MediaPeriodId, LoadEventInfo, MediaLoadData)}. */ - @Deprecated - public void loadStarted(LoadEventInfo loadEventInfo, MediaLoadData mediaLoadData) { - dispatchEvent( - (listener) -> - listener.onLoadStarted( - windowIndex, mediaPeriodId, loadEventInfo, mediaLoadData)); - } - /** Dispatches {@link #onLoadStarted(int, MediaPeriodId, LoadEventInfo, MediaLoadData, int)}. */ public void loadStarted( LoadEventInfo loadEventInfo, diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ProgressiveMediaPeriod.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ProgressiveMediaPeriod.java index 087da13b91..4af2980841 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ProgressiveMediaPeriod.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ProgressiveMediaPeriod.java @@ -920,7 +920,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; C.SELECTION_REASON_UNKNOWN, /* trackSelectionData= */ null, /* mediaStartTimeUs= */ loadable.seekTimeUs, - durationUs); + durationUs, /* retryCount= */ 0); } /** diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/SingleSampleMediaPeriod.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/SingleSampleMediaPeriod.java index 4dcf0e30f6..e24ad31bea 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/SingleSampleMediaPeriod.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/SingleSampleMediaPeriod.java @@ -168,7 +168,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; C.SELECTION_REASON_UNKNOWN, /* trackSelectionData= */ null, /* mediaStartTimeUs= */ 0, - durationUs); + durationUs, /* retryCount= */ 0); return true; } diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ads/ServerSideAdInsertionMediaSource.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ads/ServerSideAdInsertionMediaSource.java index 3ed590e3ea..3fa5f0da5b 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ads/ServerSideAdInsertionMediaSource.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ads/ServerSideAdInsertionMediaSource.java @@ -427,12 +427,14 @@ public final class ServerSideAdInsertionMediaSource extends BaseMediaSource int windowIndex, @Nullable MediaPeriodId mediaPeriodId, LoadEventInfo loadEventInfo, - MediaLoadData mediaLoadData) { + MediaLoadData mediaLoadData, int retryCount) { + // TODO file a bug to track updating this. + if (retryCount == 0) { @Nullable MediaPeriodImpl mediaPeriod = getMediaPeriodForEvent(mediaPeriodId, mediaLoadData, /* useLoadingPeriod= */ true); if (mediaPeriod == null) { - mediaSourceEventDispatcherWithoutId.loadStarted(loadEventInfo, mediaLoadData); + mediaSourceEventDispatcherWithoutId.loadStarted(loadEventInfo, mediaLoadData, /* retryCount= */ 0); } else { mediaPeriod.sharedPeriod.onLoadStarted(loadEventInfo, mediaLoadData); mediaPeriod.mediaSourceEventDispatcher.loadStarted( @@ -440,7 +442,9 @@ public final class ServerSideAdInsertionMediaSource extends BaseMediaSource correctMediaLoadData( mediaPeriod, mediaLoadData, - checkNotNull(adPlaybackStates.get(mediaPeriod.mediaPeriodId.periodUid)))); + checkNotNull(adPlaybackStates.get(mediaPeriod.mediaPeriodId.periodUid))), /* retryCount= */ 0); + + } } } @@ -750,7 +754,7 @@ public final class ServerSideAdInsertionMediaSource extends BaseMediaSource loadData.first, correctMediaLoadData(loadingPeriod, loadData.second, adPlaybackState)); mediaPeriod.mediaSourceEventDispatcher.loadStarted( - loadData.first, correctMediaLoadData(mediaPeriod, loadData.second, adPlaybackState)); + loadData.first, correctMediaLoadData(mediaPeriod, loadData.second, adPlaybackState), /* retryCount= */ 0); } } this.loadingPeriod = mediaPeriod; diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/ChunkSampleStream.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/ChunkSampleStream.java index 490b5fcbd2..87db87e608 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/ChunkSampleStream.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/ChunkSampleStream.java @@ -663,7 +663,7 @@ public class ChunkSampleStream loadable.trackSelectionReason, loadable.trackSelectionData, loadable.startTimeUs, - loadable.endTimeUs); + loadable.endTimeUs, /* retryCount= */ 0); return true; } 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 938c531571..07c0f37ef2 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 @@ -1106,7 +1106,7 @@ public final class DashMediaSource extends BaseMediaSource { long elapsedRealtimeMs = loader.startLoading(loadable, callback, minRetryCount); manifestEventDispatcher.loadStarted( new LoadEventInfo(loadable.loadTaskId, loadable.dataSpec, elapsedRealtimeMs), - loadable.type); + loadable.type, /* retryCount= */ 0); } private static long getIntervalUntilNextManifestRefreshMs( diff --git a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsSampleStreamWrapper.java b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsSampleStreamWrapper.java index 87f33f35e6..7297ce5561 100644 --- a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsSampleStreamWrapper.java +++ b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsSampleStreamWrapper.java @@ -811,6 +811,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; long elapsedRealtimeMs = loader.startLoading( loadable, this, loadErrorHandlingPolicy.getMinimumLoadableRetryCount(loadable.type)); + // DO NOT SUBMIT is this duplicated with the line in onLoadStarted below on L868? mediaSourceEventDispatcher.loadStarted( new LoadEventInfo(loadable.loadTaskId, loadable.dataSpec, elapsedRealtimeMs), loadable.type, @@ -819,7 +820,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; loadable.trackSelectionReason, loadable.trackSelectionData, loadable.startTimeUs, - loadable.endTimeUs); + loadable.endTimeUs, /* retryCount= */ 0); return true; } @@ -872,7 +873,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; loadable.trackSelectionReason, loadable.trackSelectionData, loadable.startTimeUs, - loadable.endTimeUs); + loadable.endTimeUs, retryCount); } @Override diff --git a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/playlist/DefaultHlsPlaylistTracker.java b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/playlist/DefaultHlsPlaylistTracker.java index 544756f71d..e603f9b473 100644 --- a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/playlist/DefaultHlsPlaylistTracker.java +++ b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/playlist/DefaultHlsPlaylistTracker.java @@ -152,7 +152,7 @@ public final class DefaultHlsPlaylistTracker multivariantPlaylistLoadable.loadTaskId, multivariantPlaylistLoadable.dataSpec, elapsedRealtime), - multivariantPlaylistLoadable.type); + multivariantPlaylistLoadable.type, /* retryCount= */ 0); } @Override @@ -759,7 +759,7 @@ public final class DefaultHlsPlaylistTracker eventDispatcher.loadStarted( new LoadEventInfo( mediaPlaylistLoadable.loadTaskId, mediaPlaylistLoadable.dataSpec, elapsedRealtime), - mediaPlaylistLoadable.type); + mediaPlaylistLoadable.type, /* retryCount= */ 0); } private void processLoadedPlaylist( 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 7c45d8d5b0..98d17a2c74 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 @@ -673,6 +673,6 @@ public final class SsMediaSource extends BaseMediaSource loadable, this, loadErrorHandlingPolicy.getMinimumLoadableRetryCount(loadable.type)); manifestEventDispatcher.loadStarted( new LoadEventInfo(loadable.loadTaskId, loadable.dataSpec, elapsedRealtimeMs), - loadable.type); + loadable.type, /* retryCount= */ 0); } } diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeAdaptiveMediaPeriod.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeAdaptiveMediaPeriod.java index 23e6d40fc9..5a6b53c7b8 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeAdaptiveMediaPeriod.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeAdaptiveMediaPeriod.java @@ -108,15 +108,6 @@ public class FakeAdaptiveMediaPeriod @Override public void prepare(Callback callback, long positionUs) { - mediaSourceEventDispatcher.loadStarted( - new LoadEventInfo(fakePreparationLoadTaskId, FAKE_DATA_SPEC, SystemClock.elapsedRealtime()), - C.DATA_TYPE_MEDIA, - C.TRACK_TYPE_UNKNOWN, - /* trackFormat= */ null, - C.SELECTION_REASON_UNKNOWN, - /* trackSelectionData= */ null, - /* mediaStartTimeUs= */ 0, - /* mediaEndTimeUs= */ C.TIME_UNSET); mediaSourceEventDispatcher.loadStarted( new LoadEventInfo(fakePreparationLoadTaskId, FAKE_DATA_SPEC, SystemClock.elapsedRealtime()), C.DATA_TYPE_MEDIA, diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeMediaPeriod.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeMediaPeriod.java index 3aaa1ac96f..a8740dd63d 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeMediaPeriod.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeMediaPeriod.java @@ -227,15 +227,6 @@ public class FakeMediaPeriod implements MediaPeriod { @Override public synchronized void prepare(Callback callback, long positionUs) { - mediaSourceEventDispatcher.loadStarted( - new LoadEventInfo(fakePreparationLoadTaskId, FAKE_DATA_SPEC, SystemClock.elapsedRealtime()), - C.DATA_TYPE_MEDIA, - C.TRACK_TYPE_UNKNOWN, - /* trackFormat= */ null, - C.SELECTION_REASON_UNKNOWN, - /* trackSelectionData= */ null, - /* mediaStartTimeUs= */ 0, - /* mediaEndTimeUs= */ C.TIME_UNSET); mediaSourceEventDispatcher.loadStarted( new LoadEventInfo(fakePreparationLoadTaskId, FAKE_DATA_SPEC, SystemClock.elapsedRealtime()), C.DATA_TYPE_MEDIA, diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeMediaSource.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeMediaSource.java index eebdd59224..f1fd428482 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeMediaSource.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeMediaSource.java @@ -446,16 +446,6 @@ public class FakeMediaSource extends BaseMediaSource { MediaSourceEventListener.EventDispatcher eventDispatcher = createEventDispatcher(/* mediaPeriodId= */ null); long loadTaskId = LoadEventInfo.getNewId(); - eventDispatcher.loadStarted( - new LoadEventInfo( - loadTaskId, - FAKE_DATA_SPEC, - FAKE_DATA_SPEC.uri, - /* responseHeaders= */ ImmutableMap.of(), - elapsedRealTimeMs, - /* loadDurationMs= */ 0, - /* bytesLoaded= */ 0), - mediaLoadData); eventDispatcher.loadStarted( new LoadEventInfo( loadTaskId, diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/MediaSourceTestRunner.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/MediaSourceTestRunner.java index 6e003e92bf..ac0c393c71 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/MediaSourceTestRunner.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/MediaSourceTestRunner.java @@ -359,15 +359,6 @@ public class MediaSourceTestRunner { // MediaSourceEventListener methods. - @Override - public void onLoadStarted( - int windowIndex, - @Nullable MediaPeriodId mediaPeriodId, - LoadEventInfo loadEventInfo, - MediaLoadData mediaLoadData) { - Assertions.checkState(Looper.myLooper() == playbackThread.getLooper()); - } - @Override public void onLoadStarted( int windowIndex,