Remove deprecated onSeekProcessed

This change removes it from `Player.Listener` and `AnalyticsListener`,
use `onPositionDiscontinuity` with `DISCONTINUITY_REASON_SEEK` instead.

#minor-release

PiperOrigin-RevId: 534757426
This commit is contained in:
ibaker 2023-05-24 10:58:40 +01:00 committed by tonihei
parent 66554b9b68
commit 5c713feb60
10 changed files with 6 additions and 79 deletions

View File

@ -125,6 +125,9 @@
and/or `onVideoInputFormatChanged` instead.
* `onDecoderDisabled`, use `onAudioDisabled` and/or `onVideoDisabled`
instead.
* Remove the deprecated `Player.Listener.onSeekProcessed` and
`AnalyticsListener.onSeekProcessed`, use `onPositionDiscontinuity` with
`DISCONTINUITY_REASON_SEEK` instead.
* Core library:
* Add `ExoPlayer.setVideoFrameProcessorFactory()` for using `Effect` with
a custom `VideoFrameProcessor.Factory` during video playback.

View File

@ -394,8 +394,9 @@ public final class CastPlayer extends BasePlayer {
return playWhenReady.value;
}
// We still call Listener#onSeekProcessed() for backwards compatibility with listeners that
// don't implement onPositionDiscontinuity().
// We still call Listener#onPositionDiscontinuity(@DiscontinuityReason int) for backwards
// compatibility with listeners that don't implement
// onPositionDiscontinuity(PositionInfo, PositionInfo, @DiscontinuityReason int).
@SuppressWarnings("deprecation")
@Override
@VisibleForTesting(otherwise = PROTECTED)
@ -449,8 +450,6 @@ public final class CastPlayer extends BasePlayer {
}
}
updateAvailableCommandsAndNotifyIfChanged();
} else if (pendingSeekCount == 0) {
listeners.queueEvent(/* eventFlag= */ C.INDEX_UNSET, Listener::onSeekProcessed);
}
listeners.flushEvents();
}
@ -1437,9 +1436,6 @@ public final class CastPlayer extends BasePlayer {
private final class SeekResultCallback implements ResultCallback<MediaChannelResult> {
// We still call Listener#onSeekProcessed() for backwards compatibility with listeners that
// don't implement onPositionDiscontinuity().
@SuppressWarnings("deprecation")
@Override
public void onResult(MediaChannelResult result) {
int statusCode = result.getStatus().getStatusCode();
@ -1452,7 +1448,6 @@ public final class CastPlayer extends BasePlayer {
currentWindowIndex = pendingSeekWindowIndex;
pendingSeekWindowIndex = C.INDEX_UNSET;
pendingSeekPositionMs = C.TIME_UNSET;
listeners.sendEvent(/* eventFlag= */ C.INDEX_UNSET, Listener::onSeekProcessed);
}
}
}

View File

@ -1066,12 +1066,6 @@ public class ForwardingPlayer implements Player {
listener.onMaxSeekToPreviousPositionChanged(maxSeekToPreviousPositionMs);
}
@Override
@SuppressWarnings("deprecation")
public void onSeekProcessed() {
listener.onSeekProcessed();
}
@Override
public void onVideoSizeChanged(VideoSize videoSize) {
listener.onVideoSizeChanged(videoSize);

View File

@ -1017,15 +1017,6 @@ public interface Player {
*/
default void onMaxSeekToPreviousPositionChanged(long maxSeekToPreviousPositionMs) {}
/**
* @deprecated Seeks are processed without delay. Listen to {@link
* #onPositionDiscontinuity(PositionInfo, PositionInfo, int)} with reason {@link
* #DISCONTINUITY_REASON_SEEK} instead.
*/
@Deprecated
@UnstableApi
default void onSeekProcessed() {}
/**
* Called when the audio session ID changes.
*

View File

@ -3438,9 +3438,6 @@ public abstract class SimpleBasePlayer extends BasePlayer {
listeners.queueEvent(
Player.EVENT_METADATA, listener -> listener.onMetadata(newState.timedMetadata));
}
if (positionDiscontinuityReason == Player.DISCONTINUITY_REASON_SEEK) {
listeners.queueEvent(/* eventFlag= */ C.INDEX_UNSET, Listener::onSeekProcessed);
}
if (!previousState.availableCommands.equals(newState.availableCommands)) {
listeners.queueEvent(
Player.EVENT_AVAILABLE_COMMANDS_CHANGED,

View File

@ -1395,7 +1395,6 @@ public class SimpleBasePlayerTest {
/* adIndexInAdGroup= */ C.INDEX_UNSET),
Player.DISCONTINUITY_REASON_SEEK);
verify(listener).onMediaItemTransition(mediaItem1, Player.MEDIA_ITEM_TRANSITION_REASON_SEEK);
verify(listener).onSeekProcessed();
verify(listener)
.onEvents(
player,
@ -6911,7 +6910,6 @@ public class SimpleBasePlayerTest {
verify(listener).onPositionDiscontinuity(Player.DISCONTINUITY_REASON_SEEK);
verify(listener).onPositionDiscontinuity(any(), any(), eq(Player.DISCONTINUITY_REASON_SEEK));
verify(listener).onMediaItemTransition(newMediaItem, Player.MEDIA_ITEM_TRANSITION_REASON_SEEK);
verify(listener).onSeekProcessed();
verifyNoMoreInteractions(listener);
}
@ -6962,7 +6960,6 @@ public class SimpleBasePlayerTest {
verify(listener).onMediaItemTransition(newMediaItem, Player.MEDIA_ITEM_TRANSITION_REASON_SEEK);
verify(listener).onPositionDiscontinuity(Player.DISCONTINUITY_REASON_SEEK);
verify(listener).onPositionDiscontinuity(any(), any(), eq(Player.DISCONTINUITY_REASON_SEEK));
verify(listener).onSeekProcessed();
verifyNoMoreInteractions(listener);
future.set(null);
@ -7022,7 +7019,6 @@ public class SimpleBasePlayerTest {
verify(listener).onMediaItemTransition(newMediaItem, Player.MEDIA_ITEM_TRANSITION_REASON_SEEK);
verify(listener).onPositionDiscontinuity(Player.DISCONTINUITY_REASON_SEEK);
verify(listener).onPositionDiscontinuity(any(), any(), eq(Player.DISCONTINUITY_REASON_SEEK));
verify(listener).onSeekProcessed();
verifyNoMoreInteractions(listener);
future.set(null);
@ -7074,7 +7070,6 @@ public class SimpleBasePlayerTest {
assertThat(player.getTotalBufferedDuration()).isEqualTo(0);
verify(listener).onPositionDiscontinuity(Player.DISCONTINUITY_REASON_SEEK);
verify(listener).onPositionDiscontinuity(any(), any(), eq(Player.DISCONTINUITY_REASON_SEEK));
verify(listener).onSeekProcessed();
verifyNoMoreInteractions(listener);
future.set(null);
@ -7126,7 +7121,6 @@ public class SimpleBasePlayerTest {
assertThat(player.getTotalBufferedDuration()).isEqualTo(0);
verify(listener).onPositionDiscontinuity(Player.DISCONTINUITY_REASON_SEEK);
verify(listener).onPositionDiscontinuity(any(), any(), eq(Player.DISCONTINUITY_REASON_SEEK));
verify(listener).onSeekProcessed();
verifyNoMoreInteractions(listener);
future.set(null);
@ -7178,7 +7172,6 @@ public class SimpleBasePlayerTest {
assertThat(player.getTotalBufferedDuration()).isEqualTo(0);
verify(listener).onPositionDiscontinuity(Player.DISCONTINUITY_REASON_SEEK);
verify(listener).onPositionDiscontinuity(any(), any(), eq(Player.DISCONTINUITY_REASON_SEEK));
verify(listener).onSeekProcessed();
verifyNoMoreInteractions(listener);
future.set(null);
@ -7230,7 +7223,6 @@ public class SimpleBasePlayerTest {
assertThat(player.getTotalBufferedDuration()).isEqualTo(7000);
verify(listener).onPositionDiscontinuity(Player.DISCONTINUITY_REASON_SEEK);
verify(listener).onPositionDiscontinuity(any(), any(), eq(Player.DISCONTINUITY_REASON_SEEK));
verify(listener).onSeekProcessed();
verifyNoMoreInteractions(listener);
future.set(null);
@ -7282,7 +7274,6 @@ public class SimpleBasePlayerTest {
assertThat(player.getTotalBufferedDuration()).isEqualTo(3000);
verify(listener).onPositionDiscontinuity(Player.DISCONTINUITY_REASON_SEEK);
verify(listener).onPositionDiscontinuity(any(), any(), eq(Player.DISCONTINUITY_REASON_SEEK));
verify(listener).onSeekProcessed();
verifyNoMoreInteractions(listener);
future.set(null);
@ -7340,7 +7331,6 @@ public class SimpleBasePlayerTest {
verify(listener).onPositionDiscontinuity(Player.DISCONTINUITY_REASON_SEEK);
verify(listener).onPositionDiscontinuity(any(), any(), eq(Player.DISCONTINUITY_REASON_SEEK));
verify(listener).onMediaItemTransition(mediaItem, Player.MEDIA_ITEM_TRANSITION_REASON_SEEK);
verify(listener).onSeekProcessed();
verifyNoMoreInteractions(listener);
future.set(null);

View File

@ -547,7 +547,6 @@ import java.util.concurrent.TimeoutException;
playbackInfo,
/* ignored */ TIMELINE_CHANGE_REASON_SOURCE_UPDATE,
/* ignored */ PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST,
/* seekProcessed= */ false,
/* positionDiscontinuity= */ false,
/* ignored */ DISCONTINUITY_REASON_INTERNAL,
/* ignored */ C.TIME_UNSET,
@ -666,7 +665,6 @@ import java.util.concurrent.TimeoutException;
newPlaybackInfo,
/* timelineChangeReason= */ TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED,
/* ignored */ PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST,
/* seekProcessed= */ false,
/* positionDiscontinuity= */ false,
/* ignored */ DISCONTINUITY_REASON_INTERNAL,
/* ignored */ C.TIME_UNSET,
@ -691,7 +689,6 @@ import java.util.concurrent.TimeoutException;
newPlaybackInfo,
/* timelineChangeReason= */ TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED,
/* ignored */ PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST,
/* seekProcessed= */ false,
positionDiscontinuity,
DISCONTINUITY_REASON_REMOVE,
/* discontinuityWindowStartPositionUs= */ getCurrentPositionUsInternal(newPlaybackInfo),
@ -728,7 +725,6 @@ import java.util.concurrent.TimeoutException;
newPlaybackInfo,
/* timelineChangeReason= */ TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED,
/* ignored */ PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST,
/* seekProcessed= */ false,
/* positionDiscontinuity= */ false,
/* ignored */ DISCONTINUITY_REASON_INTERNAL,
/* ignored */ C.TIME_UNSET,
@ -753,7 +749,6 @@ import java.util.concurrent.TimeoutException;
newPlaybackInfo,
/* timelineChangeReason= */ TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED,
/* ignored */ PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST,
/* seekProcessed= */ false,
/* positionDiscontinuity= */ false,
/* ignored */ DISCONTINUITY_REASON_INTERNAL,
/* ignored */ C.TIME_UNSET,
@ -878,7 +873,6 @@ import java.util.concurrent.TimeoutException;
newPlaybackInfo,
/* ignored */ TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED,
/* ignored */ PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST,
/* seekProcessed= */ true,
/* positionDiscontinuity= */ true,
/* positionDiscontinuityReason= */ DISCONTINUITY_REASON_SEEK,
/* discontinuityWindowStartPositionUs= */ getCurrentPositionUsInternal(newPlaybackInfo),
@ -920,7 +914,6 @@ import java.util.concurrent.TimeoutException;
newPlaybackInfo,
/* ignored */ TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED,
/* ignored */ PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST,
/* seekProcessed= */ false,
/* positionDiscontinuity= */ false,
/* ignored */ DISCONTINUITY_REASON_INTERNAL,
/* ignored */ C.TIME_UNSET,
@ -1834,7 +1827,6 @@ import java.util.concurrent.TimeoutException;
playbackInfo,
/* ignored */ TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED,
/* ignored */ PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST,
/* seekProcessed= */ false,
/* positionDiscontinuity= */ false,
/* ignored */ DISCONTINUITY_REASON_INTERNAL,
/* ignored */ C.TIME_UNSET,
@ -1935,7 +1927,6 @@ import java.util.concurrent.TimeoutException;
playbackInfoUpdate.playbackInfo,
TIMELINE_CHANGE_REASON_SOURCE_UPDATE,
pendingPlayWhenReadyChangeReason,
/* seekProcessed= */ false,
positionDiscontinuity,
pendingDiscontinuityReason,
discontinuityWindowStartPositionUs,
@ -1950,7 +1941,6 @@ import java.util.concurrent.TimeoutException;
PlaybackInfo playbackInfo,
@TimelineChangeReason int timelineChangeReason,
@PlayWhenReadyChangeReason int playWhenReadyChangeReason,
boolean seekProcessed,
boolean positionDiscontinuity,
@DiscontinuityReason int positionDiscontinuityReason,
long discontinuityWindowStartPositionUs,
@ -2099,9 +2089,6 @@ import java.util.concurrent.TimeoutException;
Player.EVENT_PLAYBACK_PARAMETERS_CHANGED,
listener -> listener.onPlaybackParametersChanged(newPlaybackInfo.playbackParameters));
}
if (seekProcessed) {
listeners.queueEvent(/* eventFlag= */ C.INDEX_UNSET, Listener::onSeekProcessed);
}
updateAvailableCommands();
listeners.flushEvents();
@ -2323,7 +2310,6 @@ import java.util.concurrent.TimeoutException;
newPlaybackInfo,
/* timelineChangeReason= */ TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED,
/* ignored */ PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST,
/* seekProcessed= */ false,
/* positionDiscontinuity= */ positionDiscontinuity,
DISCONTINUITY_REASON_REMOVE,
/* discontinuityWindowStartPositionUs= */ getCurrentPositionUsInternal(newPlaybackInfo),
@ -2745,7 +2731,6 @@ import java.util.concurrent.TimeoutException;
playbackInfo,
/* ignored */ TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED,
playWhenReadyChangeReason,
/* seekProcessed= */ false,
/* positionDiscontinuity= */ false,
/* ignored */ DISCONTINUITY_REASON_INTERNAL,
/* ignored */ C.TIME_UNSET,

View File

@ -621,14 +621,6 @@ public interface AnalyticsListener {
@Deprecated
default void onSeekStarted(EventTime eventTime) {}
/**
* @deprecated Seeks are processed without delay. Use {@link #onPositionDiscontinuity(EventTime,
* int)} with reason {@link Player#DISCONTINUITY_REASON_SEEK} instead.
*/
@UnstableApi
@Deprecated
default void onSeekProcessed(EventTime eventTime) {}
/**
* Called when the playback parameters changed.
*

View File

@ -711,14 +711,6 @@ public class DefaultAnalyticsCollector implements AnalyticsCollector {
eventTime, AnalyticsListener.EVENT_CUES, listener -> listener.onCues(eventTime, cueGroup));
}
@SuppressWarnings("deprecation") // Implementing and calling deprecated listener method.
@Override
public final void onSeekProcessed() {
EventTime eventTime = generateCurrentPlayerMediaPeriodEventTime();
sendEvent(
eventTime, /* eventFlag= */ C.INDEX_UNSET, listener -> listener.onSeekProcessed(eventTime));
}
@Override
public final void onSkipSilenceEnabledChanged(boolean skipSilenceEnabled) {
EventTime eventTime = generateReadingMediaPeriodEventTime();

View File

@ -147,7 +147,6 @@ public final class DefaultAnalyticsCollectorTest {
// Deprecated event constants.
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_PROCESSED = 1L << 61;
private static final UUID DRM_SCHEME_UUID =
UUID.nameUUIDFromBytes(TestUtil.createByteArray(7, 8, 9));
@ -471,7 +470,6 @@ public final class DefaultAnalyticsCollectorTest {
.inOrder();
assertThat(listener.getEvents(EVENT_POSITION_DISCONTINUITY)).containsExactly(period1);
assertThat(listener.getEvents(EVENT_SEEK_STARTED)).containsExactly(period0);
assertThat(listener.getEvents(EVENT_SEEK_PROCESSED)).containsExactly(period1);
assertThat(listener.getEvents(EVENT_IS_LOADING_CHANGED))
.containsExactly(period0, period0)
.inOrder();
@ -562,7 +560,6 @@ public final class DefaultAnalyticsCollectorTest {
.containsExactly(period0, period1Seq2)
.inOrder();
assertThat(listener.getEvents(EVENT_SEEK_STARTED)).containsExactly(period0);
assertThat(listener.getEvents(EVENT_SEEK_PROCESSED)).containsExactly(period0);
assertThat(listener.getEvents(EVENT_IS_LOADING_CHANGED))
.containsExactly(period0, period0, period0, period0)
.inOrder();
@ -763,7 +760,6 @@ public final class DefaultAnalyticsCollectorTest {
.containsExactly(WINDOW_0 /* prepared */, WINDOW_0 /* prepared */);
assertThat(listener.getEvents(EVENT_POSITION_DISCONTINUITY)).containsExactly(period0Seq0);
assertThat(listener.getEvents(EVENT_SEEK_STARTED)).containsExactly(period0Seq0);
assertThat(listener.getEvents(EVENT_SEEK_PROCESSED)).containsExactly(period0Seq0);
assertThat(listener.getEvents(EVENT_IS_LOADING_CHANGED))
.containsExactly(period0Seq0, period0Seq0, period0Seq0, period0Seq0);
assertThat(listener.getEvents(EVENT_PLAYER_ERROR)).containsExactly(period0Seq0);
@ -1293,7 +1289,6 @@ public final class DefaultAnalyticsCollectorTest {
contentAfterMidroll /* ad transition */)
.inOrder();
assertThat(listener.getEvents(EVENT_SEEK_STARTED)).containsExactly(contentBeforeMidroll);
assertThat(listener.getEvents(EVENT_SEEK_PROCESSED)).containsExactly(contentAfterMidroll);
assertThat(listener.getEvents(EVENT_IS_LOADING_CHANGED))
.containsExactly(contentBeforeMidroll, contentBeforeMidroll, midrollAd, midrollAd)
.inOrder();
@ -1360,7 +1355,6 @@ public final class DefaultAnalyticsCollectorTest {
populateEventIds(listener.lastReportedTimeline);
assertThat(listener.getEvents(EVENT_SEEK_STARTED)).containsExactly(period0);
assertThat(listener.getEvents(EVENT_SEEK_PROCESSED)).containsExactly(period0);
}
@Test
@ -2124,12 +2118,6 @@ public final class DefaultAnalyticsCollectorTest {
reportedEvents.add(new ReportedEvent(EVENT_SEEK_STARTED, eventTime));
}
@SuppressWarnings("deprecation") // Testing deprecated behaviour.
@Override
public void onSeekProcessed(EventTime eventTime) {
reportedEvents.add(new ReportedEvent(EVENT_SEEK_PROCESSED, eventTime));
}
@Override
public void onPlaybackParametersChanged(
EventTime eventTime, PlaybackParameters playbackParameters) {