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 adbb659ff4..8b3bee79f3 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 @@ -409,7 +409,7 @@ public class DefaultAnalyticsCollector implements AnalyticsCollector { EventTime eventTime = generateMediaPeriodEventTime(windowIndex, mediaPeriodId); sendEvent( eventTime, - C.INDEX_UNSET, + /* eventFlag= */ C.INDEX_UNSET, listener -> listener.onLoadStarted(eventTime, loadEventInfo, mediaLoadData)); sendEvent( eventTime, 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 3a427f98f8..d61cabc12f 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 @@ -234,7 +234,7 @@ public interface MediaSourceEventListener { /* trackSelectionData= */ null, /* mediaStartTimeUs= */ C.TIME_UNSET, /* mediaEndTimeUs= */ C.TIME_UNSET, - /* retryCount= */ retryCount); + retryCount); } /** Dispatches {@link #onLoadStarted(int, MediaPeriodId, LoadEventInfo, MediaLoadData, int)}. */ 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 b523d2f4f0..a8954050d7 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 @@ -600,28 +600,26 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; @Override public void onLoadStarted( ExtractingLoadable loadable, long elapsedRealtimeMs, long loadDurationMs, int retryCount) { - if (retryCount > 0) { - StatsDataSource dataSource = loadable.dataSource; - LoadEventInfo loadEventInfo = - new LoadEventInfo( - loadable.loadTaskId, - loadable.dataSpec, - dataSource.getLastOpenedUri(), - dataSource.getLastResponseHeaders(), - elapsedRealtimeMs, - loadDurationMs, - dataSource.getBytesRead()); - mediaSourceEventDispatcher.loadStarted( - loadEventInfo, - C.DATA_TYPE_MEDIA, - C.TRACK_TYPE_UNKNOWN, - /* trackFormat= */ null, - C.SELECTION_REASON_UNKNOWN, - /* trackSelectionData= */ null, - /* mediaStartTimeUs= */ loadable.seekTimeUs, - durationUs, - retryCount); - } + StatsDataSource dataSource = loadable.dataSource; + LoadEventInfo loadEventInfo = + new LoadEventInfo( + loadable.loadTaskId, + loadable.dataSpec, + dataSource.getLastOpenedUri(), + dataSource.getLastResponseHeaders(), + elapsedRealtimeMs, + loadDurationMs, + /* bytesLoaded= */ 0); + mediaSourceEventDispatcher.loadStarted( + loadEventInfo, + C.DATA_TYPE_MEDIA, + C.TRACK_TYPE_UNKNOWN, + /* trackFormat= */ null, + C.SELECTION_REASON_UNKNOWN, + /* trackSelectionData= */ null, + /* mediaStartTimeUs= */ loadable.seekTimeUs, + durationUs, + retryCount); } @Override @@ -908,20 +906,8 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; pendingResetPositionUs = C.TIME_UNSET; } extractedSamplesCountAtStartOfLoad = getExtractedSamplesCount(); - long elapsedRealtimeMs = - loader.startLoading( - loadable, this, loadErrorHandlingPolicy.getMinimumLoadableRetryCount(dataType)); - DataSpec dataSpec = loadable.dataSpec; - mediaSourceEventDispatcher.loadStarted( - new LoadEventInfo(loadable.loadTaskId, dataSpec, elapsedRealtimeMs), - C.DATA_TYPE_MEDIA, - C.TRACK_TYPE_UNKNOWN, - /* trackFormat= */ null, - C.SELECTION_REASON_UNKNOWN, - /* trackSelectionData= */ null, - /* mediaStartTimeUs= */ loadable.seekTimeUs, - durationUs, - /* retryCount= */ 0); + loader.startLoading( + loadable, this, loadErrorHandlingPolicy.getMinimumLoadableRetryCount(dataType)); } /** 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 c7da1aadfd..79e7b7151e 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 @@ -155,21 +155,10 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; dataSource.addTransferListener(transferListener); } SourceLoadable loadable = new SourceLoadable(dataSpec, dataSource); - long elapsedRealtimeMs = - loader.startLoading( - loadable, - /* callback= */ this, - loadErrorHandlingPolicy.getMinimumLoadableRetryCount(C.DATA_TYPE_MEDIA)); - eventDispatcher.loadStarted( - new LoadEventInfo(loadable.loadTaskId, dataSpec, elapsedRealtimeMs), - C.DATA_TYPE_MEDIA, - C.TRACK_TYPE_UNKNOWN, - format, - C.SELECTION_REASON_UNKNOWN, - /* trackSelectionData= */ null, - /* mediaStartTimeUs= */ 0, - durationUs, - /* retryCount= */ 0); + loader.startLoading( + loadable, + /* callback= */ this, + loadErrorHandlingPolicy.getMinimumLoadableRetryCount(C.DATA_TYPE_MEDIA)); return true; } @@ -220,7 +209,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; dataSource.getLastResponseHeaders(), elapsedRealtimeMs, loadDurationMs, - sampleSize); + /* bytesLoaded= */ 0); eventDispatcher.loadStarted( loadEventInfo, C.DATA_TYPE_MEDIA, 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 2b1c569ec1..1b1d96b2f6 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 @@ -431,14 +431,14 @@ public final class ServerSideAdInsertionMediaSource extends BaseMediaSource int retryCount) { // TODO file a bug to track updating this. if (retryCount == 0) { - @Nullable - MediaPeriodImpl mediaPeriod = - getMediaPeriodForEvent(mediaPeriodId, mediaLoadData, /* useLoadingPeriod= */ true); - if (mediaPeriod == null) { + @Nullable + MediaPeriodImpl mediaPeriod = + getMediaPeriodForEvent(mediaPeriodId, mediaLoadData, /* useLoadingPeriod= */ true); + if (mediaPeriod == null) { mediaSourceEventDispatcherWithoutId.loadStarted( loadEventInfo, mediaLoadData, /* retryCount= */ 0); - } else { - mediaPeriod.sharedPeriod.onLoadStarted(loadEventInfo, mediaLoadData); + } else { + mediaPeriod.sharedPeriod.onLoadStarted(loadEventInfo, mediaLoadData); mediaPeriod.mediaSourceEventDispatcher.loadStarted( loadEventInfo, correctMediaLoadData( 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 0ba48bce0e..6c897a91df 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 @@ -433,7 +433,14 @@ public class ChunkSampleStream public void onLoadStarted( Chunk loadable, long elapsedRealtimeMs, long loadDurationMs, int retryCount) { mediaSourceEventDispatcher.loadStarted( - new LoadEventInfo(loadable.loadTaskId, loadable.dataSpec, elapsedRealtimeMs), + new LoadEventInfo( + loadable.loadTaskId, + loadable.dataSpec, + loadable.getUri(), + loadable.getResponseHeaders(), + elapsedRealtimeMs, + loadDurationMs, + /* bytesLoaded= */ 0), loadable.type, primaryTrackType, loadable.trackFormat, @@ -651,19 +658,8 @@ public class ChunkSampleStream } else if (loadable instanceof InitializationChunk) { ((InitializationChunk) loadable).init(chunkOutput); } - long elapsedRealtimeMs = - loader.startLoading( - loadable, this, loadErrorHandlingPolicy.getMinimumLoadableRetryCount(loadable.type)); - mediaSourceEventDispatcher.loadStarted( - new LoadEventInfo(loadable.loadTaskId, loadable.dataSpec, elapsedRealtimeMs), - loadable.type, - primaryTrackType, - loadable.trackFormat, - loadable.trackSelectionReason, - loadable.trackSelectionData, - loadable.startTimeUs, - loadable.endTimeUs, - /* retryCount= */ 0); + loader.startLoading( + loadable, this, loadErrorHandlingPolicy.getMinimumLoadableRetryCount(loadable.type)); 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 701c96dd0c..de8686bb19 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 @@ -635,7 +635,14 @@ public final class DashMediaSource extends BaseMediaSource { long loadDurationMs, int retryCount) { manifestEventDispatcher.loadStarted( - new LoadEventInfo(loadable.loadTaskId, loadable.dataSpec, elapsedRealtimeMs), + new LoadEventInfo( + loadable.loadTaskId, + loadable.dataSpec, + loadable.getUri(), + loadable.getResponseHeaders(), + elapsedRealtimeMs, + loadDurationMs, + /* bytesLoaded= */ 0), loadable.type, retryCount); } @@ -1105,11 +1112,7 @@ public final class DashMediaSource extends BaseMediaSource { ParsingLoadable loadable, Loader.Callback> callback, int minRetryCount) { - long elapsedRealtimeMs = loader.startLoading(loadable, callback, minRetryCount); - manifestEventDispatcher.loadStarted( - new LoadEventInfo(loadable.loadTaskId, loadable.dataSpec, elapsedRealtimeMs), - loadable.type, - /* retryCount= */ 0); + loader.startLoading(loadable, callback, minRetryCount); } 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 dca0e341ee..9863ced91f 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 @@ -808,20 +808,8 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; initMediaChunkLoad((HlsMediaChunk) loadable); } loadingChunk = loadable; - 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, - trackType, - loadable.trackFormat, - loadable.trackSelectionReason, - loadable.trackSelectionData, - loadable.startTimeUs, - loadable.endTimeUs, - /* retryCount= */ 0); + loader.startLoading( + loadable, this, loadErrorHandlingPolicy.getMinimumLoadableRetryCount(loadable.type)); return true; } @@ -866,7 +854,14 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; public void onLoadStarted( Chunk loadable, long elapsedRealtimeMs, long loadDurationMs, int retryCount) { mediaSourceEventDispatcher.loadStarted( - new LoadEventInfo(loadable.loadTaskId, loadable.dataSpec, elapsedRealtimeMs), + new LoadEventInfo( + loadable.loadTaskId, + loadable.dataSpec, + loadable.getUri(), + loadable.getResponseHeaders(), + elapsedRealtimeMs, + loadDurationMs, + /* bytesLoaded= */ 0), loadable.type, trackType, loadable.trackFormat, 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 93942d73df..51c6d04e5e 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 @@ -141,19 +141,10 @@ public final class DefaultHlsPlaylistTracker playlistParserFactory.createPlaylistParser()); Assertions.checkState(initialPlaylistLoader == null); initialPlaylistLoader = new Loader("DefaultHlsPlaylistTracker:MultivariantPlaylist"); - long elapsedRealtime = - initialPlaylistLoader.startLoading( - multivariantPlaylistLoadable, - this, - loadErrorHandlingPolicy.getMinimumLoadableRetryCount( - multivariantPlaylistLoadable.type)); - eventDispatcher.loadStarted( - new LoadEventInfo( - multivariantPlaylistLoadable.loadTaskId, - multivariantPlaylistLoadable.dataSpec, - elapsedRealtime), - multivariantPlaylistLoadable.type, - /* retryCount= */ 0); + initialPlaylistLoader.startLoading( + multivariantPlaylistLoadable, + this, + loadErrorHandlingPolicy.getMinimumLoadableRetryCount(multivariantPlaylistLoadable.type)); } @Override @@ -262,7 +253,14 @@ public final class DefaultHlsPlaylistTracker long loadDurationMs, int retryCount) { eventDispatcher.loadStarted( - new LoadEventInfo(loadable.loadTaskId, loadable.dataSpec, elapsedRealtimeMs), + new LoadEventInfo( + loadable.loadTaskId, + loadable.dataSpec, + loadable.getUri(), + loadable.getResponseHeaders(), + elapsedRealtimeMs, + loadDurationMs, + /* bytesLoaded= */ 0), loadable.type, retryCount); } @@ -749,16 +747,10 @@ public final class DefaultHlsPlaylistTracker playlistRequestUri, C.DATA_TYPE_MANIFEST, mediaPlaylistParser); - long elapsedRealtime = mediaPlaylistLoader.startLoading( mediaPlaylistLoadable, /* callback= */ this, loadErrorHandlingPolicy.getMinimumLoadableRetryCount(mediaPlaylistLoadable.type)); - eventDispatcher.loadStarted( - new LoadEventInfo( - mediaPlaylistLoadable.loadTaskId, mediaPlaylistLoadable.dataSpec, elapsedRealtime), - 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 8f5f12bbbd..a8e9498740 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 @@ -504,7 +504,14 @@ public final class SsMediaSource extends BaseMediaSource long loadDurationMs, int retryCount) { manifestEventDispatcher.loadStarted( - new LoadEventInfo(loadable.loadTaskId, loadable.dataSpec, elapsedRealtimeMs), + new LoadEventInfo( + loadable.loadTaskId, + loadable.dataSpec, + loadable.getUri(), + loadable.getResponseHeaders(), + elapsedRealtimeMs, + loadDurationMs, + /* bytesLoaded= */ 0), loadable.type, /* retryCount= */ 0); }