Deprecate onLoadStarted w/o retry count on AnalyticsListener

This commit is contained in:
Colin Kho 2024-10-15 10:56:17 -07:00 committed by Ian Baker
parent 5dbe1efa9e
commit 16f65cee58
4 changed files with 16 additions and 55 deletions

View File

@ -345,10 +345,6 @@ public interface AnalyticsListener {
/** {@link Player#getDeviceVolume()} changed. */ /** {@link Player#getDeviceVolume()} changed. */
@UnstableApi int EVENT_DEVICE_VOLUME_CHANGED = Player.EVENT_DEVICE_VOLUME_CHANGED; @UnstableApi int EVENT_DEVICE_VOLUME_CHANGED = Player.EVENT_DEVICE_VOLUME_CHANGED;
/** A source started loading data. */
@UnstableApi
int EVENT_ON_LOAD_STARTED = 999;
/** A source started loading data. */ /** A source started loading data. */
@UnstableApi @UnstableApi
int EVENT_LOAD_STARTED = 1000; // Intentional gap to leave space for new Player events int EVENT_LOAD_STARTED = 1000; // Intentional gap to leave space for new Player events

View File

@ -406,7 +406,7 @@ public class DefaultAnalyticsCollector implements AnalyticsCollector {
EventTime eventTime = generateMediaPeriodEventTime(windowIndex, mediaPeriodId); EventTime eventTime = generateMediaPeriodEventTime(windowIndex, mediaPeriodId);
sendEvent( sendEvent(
eventTime, eventTime,
AnalyticsListener.EVENT_LOAD_STARTED, C.INDEX_UNSET,
listener -> listener.onLoadStarted(eventTime, loadEventInfo, mediaLoadData)); listener -> listener.onLoadStarted(eventTime, loadEventInfo, mediaLoadData));
} }
@ -420,7 +420,7 @@ public class DefaultAnalyticsCollector implements AnalyticsCollector {
EventTime eventTime = generateMediaPeriodEventTime(windowIndex, mediaPeriodId); EventTime eventTime = generateMediaPeriodEventTime(windowIndex, mediaPeriodId);
sendEvent( sendEvent(
eventTime, eventTime,
AnalyticsListener.EVENT_ON_LOAD_STARTED, AnalyticsListener.EVENT_LOAD_STARTED,
listener -> listener.onLoadStarted(eventTime, loadEventInfo, mediaLoadData, retryCount)); listener -> listener.onLoadStarted(eventTime, loadEventInfo, mediaLoadData, retryCount));
} }

View File

@ -444,30 +444,6 @@ public final class ServerSideAdInsertionMediaSource extends BaseMediaSource
} }
} }
@Override
public void onLoadStarted(
int windowIndex,
@Nullable MediaPeriodId mediaPeriodId,
LoadEventInfo loadEventInfo,
MediaLoadData mediaLoadData,
int retryCount) {
@Nullable
MediaPeriodImpl mediaPeriod =
getMediaPeriodForEvent(mediaPeriodId, mediaLoadData, /* useLoadingPeriod= */ true);
if (mediaPeriod == null) {
mediaSourceEventDispatcherWithoutId.loadStarted(loadEventInfo, mediaLoadData, retryCount);
} else {
mediaPeriod.sharedPeriod.onLoadStarted(loadEventInfo, mediaLoadData);
mediaPeriod.mediaSourceEventDispatcher.loadStarted(
loadEventInfo,
correctMediaLoadData(
mediaPeriod,
mediaLoadData,
checkNotNull(adPlaybackStates.get(mediaPeriod.mediaPeriodId.periodUid))),
retryCount);
}
}
@Override @Override
public void onLoadCompleted( public void onLoadCompleted(
int windowIndex, int windowIndex,
@ -775,10 +751,6 @@ public final class ServerSideAdInsertionMediaSource extends BaseMediaSource
correctMediaLoadData(loadingPeriod, loadData.second, adPlaybackState)); correctMediaLoadData(loadingPeriod, loadData.second, adPlaybackState));
mediaPeriod.mediaSourceEventDispatcher.loadStarted( mediaPeriod.mediaSourceEventDispatcher.loadStarted(
loadData.first, correctMediaLoadData(mediaPeriod, loadData.second, adPlaybackState)); loadData.first, correctMediaLoadData(mediaPeriod, loadData.second, adPlaybackState));
mediaPeriod.mediaSourceEventDispatcher.loadStarted(
loadData.first,
correctMediaLoadData(mediaPeriod, loadData.second, adPlaybackState),
/* retryCount= */ 0);
} }
} }
this.loadingPeriod = mediaPeriod; this.loadingPeriod = mediaPeriod;

View File

@ -32,7 +32,6 @@ import static androidx.media3.exoplayer.analytics.AnalyticsListener.EVENT_LOAD_C
import static androidx.media3.exoplayer.analytics.AnalyticsListener.EVENT_LOAD_ERROR; import static androidx.media3.exoplayer.analytics.AnalyticsListener.EVENT_LOAD_ERROR;
import static androidx.media3.exoplayer.analytics.AnalyticsListener.EVENT_LOAD_STARTED; import static androidx.media3.exoplayer.analytics.AnalyticsListener.EVENT_LOAD_STARTED;
import static androidx.media3.exoplayer.analytics.AnalyticsListener.EVENT_MEDIA_ITEM_TRANSITION; import static androidx.media3.exoplayer.analytics.AnalyticsListener.EVENT_MEDIA_ITEM_TRANSITION;
import static androidx.media3.exoplayer.analytics.AnalyticsListener.EVENT_ON_LOAD_STARTED;
import static androidx.media3.exoplayer.analytics.AnalyticsListener.EVENT_PLAYBACK_PARAMETERS_CHANGED; import static androidx.media3.exoplayer.analytics.AnalyticsListener.EVENT_PLAYBACK_PARAMETERS_CHANGED;
import static androidx.media3.exoplayer.analytics.AnalyticsListener.EVENT_PLAYBACK_STATE_CHANGED; import static androidx.media3.exoplayer.analytics.AnalyticsListener.EVENT_PLAYBACK_STATE_CHANGED;
import static androidx.media3.exoplayer.analytics.AnalyticsListener.EVENT_PLAYER_ERROR; import static androidx.media3.exoplayer.analytics.AnalyticsListener.EVENT_PLAYER_ERROR;
@ -150,6 +149,7 @@ public final class DefaultAnalyticsCollectorTest {
// Deprecated event constants. // Deprecated event constants.
private static final long EVENT_PLAYER_STATE_CHANGED = 1L << 63; private static final long EVENT_PLAYER_STATE_CHANGED = 1L << 63;
private static final long EVENT_SEEK_STARTED = 1L << 62; private static final long EVENT_SEEK_STARTED = 1L << 62;
private static final int DEPRECATED_EVENT_LOAD_STARTED = Integer.MIN_VALUE;
private static final UUID DRM_SCHEME_UUID = private static final UUID DRM_SCHEME_UUID =
UUID.nameUUIDFromBytes(TestUtil.createByteArray(7, 8, 9)); UUID.nameUUIDFromBytes(TestUtil.createByteArray(7, 8, 9));
@ -266,7 +266,7 @@ public final class DefaultAnalyticsCollectorTest {
assertThat(listener.getEvents(EVENT_LOAD_STARTED)) assertThat(listener.getEvents(EVENT_LOAD_STARTED))
.containsExactly(WINDOW_0 /* manifest */, period0 /* media */) .containsExactly(WINDOW_0 /* manifest */, period0 /* media */)
.inOrder(); .inOrder();
assertThat(listener.getEvents(EVENT_ON_LOAD_STARTED)) assertThat(listener.getEvents(DEPRECATED_EVENT_LOAD_STARTED))
.containsExactly(WINDOW_0 /* manifest */, period0 /* media */) .containsExactly(WINDOW_0 /* manifest */, period0 /* media */)
.inOrder(); .inOrder();
assertThat(listener.getEvents(EVENT_LOAD_COMPLETED)) assertThat(listener.getEvents(EVENT_LOAD_COMPLETED))
@ -338,7 +338,7 @@ public final class DefaultAnalyticsCollectorTest {
period0 /* media */, period0 /* media */,
period1 /* media */) period1 /* media */)
.inOrder(); .inOrder();
assertThat(listener.getEvents(EVENT_ON_LOAD_STARTED)) assertThat(listener.getEvents(DEPRECATED_EVENT_LOAD_STARTED))
.containsExactly( .containsExactly(
WINDOW_0 /* manifest */, WINDOW_0 /* manifest */,
WINDOW_1 /* manifest */, WINDOW_1 /* manifest */,
@ -423,7 +423,7 @@ public final class DefaultAnalyticsCollectorTest {
period0 /* media */, period0 /* media */,
period1 /* media */) period1 /* media */)
.inOrder(); .inOrder();
assertThat(listener.getEvents(EVENT_ON_LOAD_STARTED)) assertThat(listener.getEvents(DEPRECATED_EVENT_LOAD_STARTED))
.containsExactly( .containsExactly(
WINDOW_0 /* manifest */, WINDOW_0 /* manifest */,
WINDOW_1 /* manifest */, WINDOW_1 /* manifest */,
@ -512,7 +512,7 @@ public final class DefaultAnalyticsCollectorTest {
period0 /* media */, period0 /* media */,
period1 /* media */) period1 /* media */)
.inOrder(); .inOrder();
assertThat(listener.getEvents(EVENT_ON_LOAD_STARTED)) assertThat(listener.getEvents(DEPRECATED_EVENT_LOAD_STARTED))
.containsExactly( .containsExactly(
WINDOW_0 /* manifest */, WINDOW_0 /* manifest */,
WINDOW_1 /* manifest */, WINDOW_1 /* manifest */,
@ -616,7 +616,7 @@ public final class DefaultAnalyticsCollectorTest {
period1Seq1 /* media */, period1Seq1 /* media */,
period1Seq2 /* media */) period1Seq2 /* media */)
.inOrder(); .inOrder();
assertThat(listener.getEvents(EVENT_ON_LOAD_STARTED)) assertThat(listener.getEvents(DEPRECATED_EVENT_LOAD_STARTED))
.containsExactly( .containsExactly(
WINDOW_0 /* manifest */, WINDOW_0 /* manifest */,
WINDOW_1 /* manifest */, WINDOW_1 /* manifest */,
@ -743,7 +743,7 @@ public final class DefaultAnalyticsCollectorTest {
WINDOW_0 /* manifest */, WINDOW_0 /* manifest */,
period0Seq1 /* media */) period0Seq1 /* media */)
.inOrder(); .inOrder();
assertThat(listener.getEvents(EVENT_ON_LOAD_STARTED)) assertThat(listener.getEvents(DEPRECATED_EVENT_LOAD_STARTED))
.containsExactly( .containsExactly(
WINDOW_0 /* manifest */, WINDOW_0 /* manifest */,
period0Seq0 /* media */, period0Seq0 /* media */,
@ -844,7 +844,7 @@ public final class DefaultAnalyticsCollectorTest {
WINDOW_0 /* manifest */, WINDOW_0 /* manifest */,
period0Seq0 /* media */) period0Seq0 /* media */)
.inOrder(); .inOrder();
assertThat(listener.getEvents(EVENT_ON_LOAD_STARTED)) assertThat(listener.getEvents(DEPRECATED_EVENT_LOAD_STARTED))
.containsExactly( .containsExactly(
WINDOW_0 /* manifest */, WINDOW_0 /* manifest */,
period0Seq0 /* media */, period0Seq0 /* media */,
@ -923,7 +923,7 @@ public final class DefaultAnalyticsCollectorTest {
.containsExactly( .containsExactly(
WINDOW_0 /* manifest */, window0Period1Seq0 /* media */, window1Period0Seq1 /* media */) WINDOW_0 /* manifest */, window0Period1Seq0 /* media */, window1Period0Seq1 /* media */)
.inOrder(); .inOrder();
assertThat(listener.getEvents(EVENT_ON_LOAD_STARTED)) assertThat(listener.getEvents(DEPRECATED_EVENT_LOAD_STARTED))
.containsExactly( .containsExactly(
WINDOW_0 /* manifest */, window0Period1Seq0 /* media */, window1Period0Seq1 /* media */) WINDOW_0 /* manifest */, window0Period1Seq0 /* media */, window1Period0Seq1 /* media */)
.inOrder(); .inOrder();
@ -1025,7 +1025,7 @@ public final class DefaultAnalyticsCollectorTest {
assertThat(listener.getEvents(EVENT_LOAD_STARTED)) assertThat(listener.getEvents(EVENT_LOAD_STARTED))
.containsExactly(WINDOW_0 /* manifest */, period0Seq0 /* media */, period1Seq1 /* media */) .containsExactly(WINDOW_0 /* manifest */, period0Seq0 /* media */, period1Seq1 /* media */)
.inOrder(); .inOrder();
assertThat(listener.getEvents(EVENT_ON_LOAD_STARTED)) assertThat(listener.getEvents(DEPRECATED_EVENT_LOAD_STARTED))
.containsExactly(WINDOW_0 /* manifest */, period0Seq0 /* media */, period1Seq1 /* media */) .containsExactly(WINDOW_0 /* manifest */, period0Seq0 /* media */, period1Seq1 /* media */)
.inOrder(); .inOrder();
assertThat(listener.getEvents(EVENT_LOAD_COMPLETED)) assertThat(listener.getEvents(EVENT_LOAD_COMPLETED))
@ -1233,7 +1233,7 @@ public final class DefaultAnalyticsCollectorTest {
postrollAd, postrollAd,
contentAfterPostroll) contentAfterPostroll)
.inOrder(); .inOrder();
assertThat(listener.getEvents(EVENT_ON_LOAD_STARTED)) assertThat(listener.getEvents(DEPRECATED_EVENT_LOAD_STARTED))
.containsExactly( .containsExactly(
WINDOW_0 /* content manifest */, WINDOW_0 /* content manifest */,
prerollAd, prerollAd,
@ -1402,7 +1402,7 @@ public final class DefaultAnalyticsCollectorTest {
contentAfterMidroll, contentAfterMidroll,
contentAfterMidroll) contentAfterMidroll)
.inOrder(); .inOrder();
assertThat(listener.getEvents(EVENT_ON_LOAD_STARTED)) assertThat(listener.getEvents(DEPRECATED_EVENT_LOAD_STARTED))
.containsExactly( .containsExactly(
WINDOW_0 /* content manifest */, WINDOW_0 /* content manifest */,
contentBeforeMidroll, contentBeforeMidroll,
@ -1788,11 +1788,7 @@ public final class DefaultAnalyticsCollectorTest {
ArgumentCaptor<AnalyticsListener.EventTime> individualLoadStartedEventTimes = ArgumentCaptor<AnalyticsListener.EventTime> individualLoadStartedEventTimes =
ArgumentCaptor.forClass(AnalyticsListener.EventTime.class); ArgumentCaptor.forClass(AnalyticsListener.EventTime.class);
verify(listener, atLeastOnce()) verify(listener, atLeastOnce())
.onLoadStarted(individualLoadStartedEventTimes.capture(), any(), any()); .onLoadStarted(individualLoadStartedEventTimes.capture(), any(), any(), anyInt());
ArgumentCaptor<AnalyticsListener.EventTime> individualOnLoadStartedEventTimes =
ArgumentCaptor.forClass(AnalyticsListener.EventTime.class);
verify(listener, atLeastOnce())
.onLoadStarted(individualOnLoadStartedEventTimes.capture(), any(), any(), anyInt());
ArgumentCaptor<AnalyticsListener.EventTime> individualLoadCompletedEventTimes = ArgumentCaptor<AnalyticsListener.EventTime> individualLoadCompletedEventTimes =
ArgumentCaptor.forClass(AnalyticsListener.EventTime.class); ArgumentCaptor.forClass(AnalyticsListener.EventTime.class);
verify(listener, atLeastOnce()) verify(listener, atLeastOnce())
@ -1920,9 +1916,6 @@ public final class DefaultAnalyticsCollectorTest {
assertThat(individualLoadStartedEventTimes.getAllValues()) assertThat(individualLoadStartedEventTimes.getAllValues())
.containsAtLeastElementsIn(onEventsEventTimes.get(EVENT_LOAD_STARTED)) .containsAtLeastElementsIn(onEventsEventTimes.get(EVENT_LOAD_STARTED))
.inOrder(); .inOrder();
assertThat(individualOnLoadStartedEventTimes.getAllValues())
.containsAtLeastElementsIn(onEventsEventTimes.get(EVENT_ON_LOAD_STARTED))
.inOrder();
assertThat(individualLoadCompletedEventTimes.getAllValues()) assertThat(individualLoadCompletedEventTimes.getAllValues())
.containsAtLeastElementsIn(onEventsEventTimes.get(EVENT_LOAD_COMPLETED)) .containsAtLeastElementsIn(onEventsEventTimes.get(EVENT_LOAD_COMPLETED))
.inOrder(); .inOrder();
@ -2285,7 +2278,7 @@ public final class DefaultAnalyticsCollectorTest {
LoadEventInfo loadEventInfo, LoadEventInfo loadEventInfo,
MediaLoadData mediaLoadData, MediaLoadData mediaLoadData,
int retryCount) { int retryCount) {
reportedEvents.add(new ReportedEvent(EVENT_ON_LOAD_STARTED, eventTime)); reportedEvents.add(new ReportedEvent(DEPRECATED_EVENT_LOAD_STARTED, eventTime));
} }
@Override @Override