mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +08:00
Remove onMediaPeriodCreated/Released/ReadingStarted
These callbacks were only necessary to track the queue in AnalyticsCollector and there is no other known benefit of having them. PiperOrigin-RevId: 322535274
This commit is contained in:
parent
193306f2f3
commit
f81a353bf8
@ -101,6 +101,8 @@
|
||||
`SampleStreams` to `Renderers`.
|
||||
* Fix wrong `MediaPeriodId` for some renderer errors reported by
|
||||
`AnalyticsListener.onPlayerError`.
|
||||
* Remove onMediaPeriodCreated/Released/ReadingStarted from
|
||||
`MediaSourceEventListener` and `AnalyticsListener`.
|
||||
* Video: Pass frame rate hint to `Surface.setFrameRate` on Android R devices.
|
||||
* Track selection:
|
||||
* Add `Player.getTrackSelector`.
|
||||
|
@ -527,20 +527,6 @@ import java.util.Set;
|
||||
|
||||
// MediaSourceEventListener implementation
|
||||
|
||||
@Override
|
||||
public void onMediaPeriodCreated(int windowIndex, MediaSource.MediaPeriodId mediaPeriodId) {
|
||||
if (maybeUpdateEventDispatcher(windowIndex, mediaPeriodId)) {
|
||||
mediaSourceEventDispatcher.mediaPeriodCreated();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMediaPeriodReleased(int windowIndex, MediaSource.MediaPeriodId mediaPeriodId) {
|
||||
if (maybeUpdateEventDispatcher(windowIndex, mediaPeriodId)) {
|
||||
mediaSourceEventDispatcher.mediaPeriodReleased();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadStarted(
|
||||
int windowIndex,
|
||||
@ -587,13 +573,6 @@ import java.util.Set;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReadingStarted(int windowIndex, MediaSource.MediaPeriodId mediaPeriodId) {
|
||||
if (maybeUpdateEventDispatcher(windowIndex, mediaPeriodId)) {
|
||||
mediaSourceEventDispatcher.readingStarted();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpstreamDiscarded(
|
||||
int windowIndex,
|
||||
|
@ -354,33 +354,6 @@ public class AnalyticsCollector
|
||||
|
||||
// MediaSourceEventListener implementation.
|
||||
|
||||
@Override
|
||||
public final void onMediaPeriodCreated(int windowIndex, MediaPeriodId mediaPeriodId) {
|
||||
// TODO: Remove this method, as it's no longer needed for queue tracking.
|
||||
// We won't find this media period in the tracked queue yet because onQueueUpdated is called
|
||||
// after this method. Try to use the current timeline directly if possible.
|
||||
Timeline timeline = checkNotNull(player).getCurrentTimeline();
|
||||
EventTime eventTime =
|
||||
timeline.getIndexOfPeriod(mediaPeriodId.periodUid) != C.INDEX_UNSET
|
||||
? generateEventTime(
|
||||
timeline,
|
||||
timeline.getPeriodByUid(mediaPeriodId.periodUid, period).windowIndex,
|
||||
mediaPeriodId)
|
||||
: generateEventTime(Timeline.EMPTY, windowIndex, mediaPeriodId);
|
||||
for (AnalyticsListener listener : listeners) {
|
||||
listener.onMediaPeriodCreated(eventTime);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void onMediaPeriodReleased(int windowIndex, MediaPeriodId mediaPeriodId) {
|
||||
// TODO: Remove this method, as it's no longer needed for queue tracking.
|
||||
EventTime eventTime = generateMediaPeriodEventTime(windowIndex, mediaPeriodId);
|
||||
for (AnalyticsListener listener : listeners) {
|
||||
listener.onMediaPeriodReleased(eventTime);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void onLoadStarted(
|
||||
int windowIndex,
|
||||
@ -431,15 +404,6 @@ public class AnalyticsCollector
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void onReadingStarted(int windowIndex, MediaPeriodId mediaPeriodId) {
|
||||
// TODO: Remove this method, as it's no longer needed for queue tracking.
|
||||
EventTime eventTime = generateMediaPeriodEventTime(windowIndex, mediaPeriodId);
|
||||
for (AnalyticsListener listener : listeners) {
|
||||
listener.onReadingStarted(eventTime);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void onUpstreamDiscarded(
|
||||
int windowIndex, @Nullable MediaPeriodId mediaPeriodId, MediaLoadData mediaLoadData) {
|
||||
|
@ -408,27 +408,6 @@ public interface AnalyticsListener {
|
||||
*/
|
||||
default void onUpstreamDiscarded(EventTime eventTime, MediaLoadData mediaLoadData) {}
|
||||
|
||||
/**
|
||||
* Called when a media source created a media period.
|
||||
*
|
||||
* @param eventTime The event time.
|
||||
*/
|
||||
default void onMediaPeriodCreated(EventTime eventTime) {}
|
||||
|
||||
/**
|
||||
* Called when a media source released a media period.
|
||||
*
|
||||
* @param eventTime The event time.
|
||||
*/
|
||||
default void onMediaPeriodReleased(EventTime eventTime) {}
|
||||
|
||||
/**
|
||||
* Called when the player started reading a media period.
|
||||
*
|
||||
* @param eventTime The event time.
|
||||
*/
|
||||
default void onReadingStarted(EventTime eventTime) {}
|
||||
|
||||
/**
|
||||
* Called when the bandwidth estimate for the current data source has been updated.
|
||||
*
|
||||
|
@ -192,18 +192,6 @@ public abstract class CompositeMediaSource<T> extends BaseMediaSource {
|
||||
return mediaTimeMs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether {@link MediaSourceEventListener#onMediaPeriodCreated(int, MediaPeriodId)} and
|
||||
* {@link MediaSourceEventListener#onMediaPeriodReleased(int, MediaPeriodId)} events of the given
|
||||
* media period should be reported. The default implementation is to always report these events.
|
||||
*
|
||||
* @param mediaPeriodId A {@link MediaPeriodId} in the composite media source.
|
||||
* @return Whether create and release events for this media period should be reported.
|
||||
*/
|
||||
protected boolean shouldDispatchCreateOrReleaseEvent(MediaPeriodId mediaPeriodId) {
|
||||
return true;
|
||||
}
|
||||
|
||||
private static final class MediaSourceAndListener {
|
||||
|
||||
public final MediaSource mediaSource;
|
||||
@ -233,26 +221,6 @@ public abstract class CompositeMediaSource<T> extends BaseMediaSource {
|
||||
|
||||
// MediaSourceEventListener implementation
|
||||
|
||||
@Override
|
||||
public void onMediaPeriodCreated(int windowIndex, MediaPeriodId mediaPeriodId) {
|
||||
if (maybeUpdateEventDispatcher(windowIndex, mediaPeriodId)) {
|
||||
if (shouldDispatchCreateOrReleaseEvent(
|
||||
Assertions.checkNotNull(mediaSourceEventDispatcher.mediaPeriodId))) {
|
||||
mediaSourceEventDispatcher.mediaPeriodCreated();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMediaPeriodReleased(int windowIndex, MediaPeriodId mediaPeriodId) {
|
||||
if (maybeUpdateEventDispatcher(windowIndex, mediaPeriodId)) {
|
||||
if (shouldDispatchCreateOrReleaseEvent(
|
||||
Assertions.checkNotNull(mediaSourceEventDispatcher.mediaPeriodId))) {
|
||||
mediaSourceEventDispatcher.mediaPeriodReleased();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadStarted(
|
||||
int windowIndex,
|
||||
@ -303,13 +271,6 @@ public abstract class CompositeMediaSource<T> extends BaseMediaSource {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReadingStarted(int windowIndex, MediaPeriodId mediaPeriodId) {
|
||||
if (maybeUpdateEventDispatcher(windowIndex, mediaPeriodId)) {
|
||||
mediaSourceEventDispatcher.readingStarted();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpstreamDiscarded(
|
||||
int windowIndex, @Nullable MediaPeriodId mediaPeriodId, MediaLoadData mediaLoadData) {
|
||||
|
@ -22,7 +22,6 @@ import com.google.android.exoplayer2.C;
|
||||
import com.google.android.exoplayer2.MediaItem;
|
||||
import com.google.android.exoplayer2.Timeline;
|
||||
import com.google.android.exoplayer2.Timeline.Window;
|
||||
import com.google.android.exoplayer2.source.MediaSourceEventListener.EventDispatcher;
|
||||
import com.google.android.exoplayer2.upstream.Allocator;
|
||||
import com.google.android.exoplayer2.upstream.TransferListener;
|
||||
import com.google.android.exoplayer2.util.Assertions;
|
||||
@ -42,7 +41,6 @@ public final class MaskingMediaSource extends CompositeMediaSource<Void> {
|
||||
|
||||
private MaskingTimeline timeline;
|
||||
@Nullable private MaskingMediaPeriod unpreparedMaskingMediaPeriod;
|
||||
@Nullable private EventDispatcher unpreparedMaskingMediaPeriodEventDispatcher;
|
||||
private boolean hasStartedPreparing;
|
||||
private boolean isPrepared;
|
||||
private boolean hasRealTimeline;
|
||||
@ -121,9 +119,6 @@ public final class MaskingMediaSource extends CompositeMediaSource<Void> {
|
||||
// unset and we don't load beyond periods with unset duration. We need to figure out how to
|
||||
// handle the prepare positions of multiple deferred media periods, should that ever change.
|
||||
unpreparedMaskingMediaPeriod = mediaPeriod;
|
||||
unpreparedMaskingMediaPeriodEventDispatcher =
|
||||
createEventDispatcher(/* windowIndex= */ 0, id, /* mediaTimeOffsetMs= */ 0);
|
||||
unpreparedMaskingMediaPeriodEventDispatcher.mediaPeriodCreated();
|
||||
if (!hasStartedPreparing) {
|
||||
hasStartedPreparing = true;
|
||||
prepareChildSource(/* id= */ null, mediaSource);
|
||||
@ -136,8 +131,6 @@ public final class MaskingMediaSource extends CompositeMediaSource<Void> {
|
||||
public void releasePeriod(MediaPeriod mediaPeriod) {
|
||||
((MaskingMediaPeriod) mediaPeriod).releasePeriod();
|
||||
if (mediaPeriod == unpreparedMaskingMediaPeriod) {
|
||||
Assertions.checkNotNull(unpreparedMaskingMediaPeriodEventDispatcher).mediaPeriodReleased();
|
||||
unpreparedMaskingMediaPeriodEventDispatcher = null;
|
||||
unpreparedMaskingMediaPeriod = null;
|
||||
}
|
||||
}
|
||||
@ -222,14 +215,6 @@ public final class MaskingMediaSource extends CompositeMediaSource<Void> {
|
||||
return mediaPeriodId.copyWithPeriodUid(getExternalPeriodUid(mediaPeriodId.periodUid));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean shouldDispatchCreateOrReleaseEvent(MediaPeriodId mediaPeriodId) {
|
||||
// Suppress create and release events for the period created while the source was still
|
||||
// unprepared, as we send these events from this class.
|
||||
return unpreparedMaskingMediaPeriod == null
|
||||
|| !mediaPeriodId.equals(unpreparedMaskingMediaPeriod.id);
|
||||
}
|
||||
|
||||
private Object getInternalPeriodUid(Object externalPeriodUid) {
|
||||
return timeline.replacedInternalPeriodUid != null
|
||||
&& externalPeriodUid.equals(MaskingTimeline.MASKING_EXTERNAL_PERIOD_UID)
|
||||
|
@ -30,22 +30,6 @@ import java.util.concurrent.CopyOnWriteArrayList;
|
||||
/** Interface for callbacks to be notified of {@link MediaSource} events. */
|
||||
public interface MediaSourceEventListener {
|
||||
|
||||
/**
|
||||
* Called when a media period is created by the media source.
|
||||
*
|
||||
* @param windowIndex The window index in the timeline this media period belongs to.
|
||||
* @param mediaPeriodId The {@link MediaPeriodId} of the created media period.
|
||||
*/
|
||||
default void onMediaPeriodCreated(int windowIndex, MediaPeriodId mediaPeriodId) {}
|
||||
|
||||
/**
|
||||
* Called when a media period is released by the media source.
|
||||
*
|
||||
* @param windowIndex The window index in the timeline this media period belongs to.
|
||||
* @param mediaPeriodId The {@link MediaPeriodId} of the released media period.
|
||||
*/
|
||||
default void onMediaPeriodReleased(int windowIndex, MediaPeriodId mediaPeriodId) {}
|
||||
|
||||
/**
|
||||
* Called when a load begins.
|
||||
*
|
||||
@ -132,14 +116,6 @@ public interface MediaSourceEventListener {
|
||||
IOException error,
|
||||
boolean wasCanceled) {}
|
||||
|
||||
/**
|
||||
* Called when a media period is first being read from.
|
||||
*
|
||||
* @param windowIndex The window index in the timeline this media period belongs to.
|
||||
* @param mediaPeriodId The {@link MediaPeriodId} of the media period being read from.
|
||||
*/
|
||||
default void onReadingStarted(int windowIndex, MediaPeriodId mediaPeriodId) {}
|
||||
|
||||
/**
|
||||
* Called when data is removed from the back of a media buffer, typically so that it can be
|
||||
* re-buffered in a different format.
|
||||
@ -234,28 +210,6 @@ public interface MediaSourceEventListener {
|
||||
}
|
||||
}
|
||||
|
||||
/** Dispatches {@link #onMediaPeriodCreated(int, MediaPeriodId)}. */
|
||||
public void mediaPeriodCreated() {
|
||||
MediaPeriodId mediaPeriodId = Assertions.checkNotNull(this.mediaPeriodId);
|
||||
for (ListenerAndHandler listenerAndHandler : listenerAndHandlers) {
|
||||
MediaSourceEventListener listener = listenerAndHandler.listener;
|
||||
postOrRun(
|
||||
listenerAndHandler.handler,
|
||||
() -> listener.onMediaPeriodCreated(windowIndex, mediaPeriodId));
|
||||
}
|
||||
}
|
||||
|
||||
/** Dispatches {@link #onMediaPeriodReleased(int, MediaPeriodId)}. */
|
||||
public void mediaPeriodReleased() {
|
||||
MediaPeriodId mediaPeriodId = Assertions.checkNotNull(this.mediaPeriodId);
|
||||
for (ListenerAndHandler listenerAndHandler : listenerAndHandlers) {
|
||||
MediaSourceEventListener listener = listenerAndHandler.listener;
|
||||
postOrRun(
|
||||
listenerAndHandler.handler,
|
||||
() -> listener.onMediaPeriodReleased(windowIndex, mediaPeriodId));
|
||||
}
|
||||
}
|
||||
|
||||
/** Dispatches {@link #onLoadStarted(int, MediaPeriodId, LoadEventInfo, MediaLoadData)}. */
|
||||
public void loadStarted(LoadEventInfo loadEventInfo, int dataType) {
|
||||
loadStarted(
|
||||
@ -460,17 +414,6 @@ public interface MediaSourceEventListener {
|
||||
}
|
||||
}
|
||||
|
||||
/** Dispatches {@link #onReadingStarted(int, MediaPeriodId)}. */
|
||||
public void readingStarted() {
|
||||
MediaPeriodId mediaPeriodId = Assertions.checkNotNull(this.mediaPeriodId);
|
||||
for (ListenerAndHandler listenerAndHandler : listenerAndHandlers) {
|
||||
MediaSourceEventListener listener = listenerAndHandler.listener;
|
||||
postOrRun(
|
||||
listenerAndHandler.handler,
|
||||
() -> listener.onReadingStarted(windowIndex, mediaPeriodId));
|
||||
}
|
||||
}
|
||||
|
||||
/** Dispatches {@link #onUpstreamDiscarded(int, MediaPeriodId, MediaLoadData)}. */
|
||||
public void upstreamDiscarded(int trackType, long mediaStartTimeUs, long mediaEndTimeUs) {
|
||||
upstreamDiscarded(
|
||||
|
@ -130,7 +130,6 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
|
||||
private boolean seenFirstTrackSelection;
|
||||
private boolean notifyDiscontinuity;
|
||||
private boolean notifiedReadingStarted;
|
||||
private int enabledTrackCount;
|
||||
private long length;
|
||||
|
||||
@ -205,7 +204,6 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
length = C.LENGTH_UNSET;
|
||||
durationUs = C.TIME_UNSET;
|
||||
dataType = C.DATA_TYPE_MEDIA;
|
||||
mediaSourceEventDispatcher.mediaPeriodCreated();
|
||||
}
|
||||
|
||||
public void release() {
|
||||
@ -220,7 +218,6 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
handler.removeCallbacksAndMessages(null);
|
||||
callback = null;
|
||||
released = true;
|
||||
mediaSourceEventDispatcher.mediaPeriodReleased();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -374,10 +371,6 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
|
||||
@Override
|
||||
public long readDiscontinuity() {
|
||||
if (!notifiedReadingStarted) {
|
||||
mediaSourceEventDispatcher.readingStarted();
|
||||
notifiedReadingStarted = true;
|
||||
}
|
||||
if (notifyDiscontinuity
|
||||
&& (loadingFinished || getExtractedSamplesCount() > extractedSamplesCountAtStartOfLoad)) {
|
||||
notifyDiscontinuity = false;
|
||||
|
@ -66,7 +66,6 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
/* package */ final Format format;
|
||||
/* package */ final boolean treatLoadErrorsAsEndOfStream;
|
||||
|
||||
/* package */ boolean notifiedReadingStarted;
|
||||
/* package */ boolean loadingFinished;
|
||||
/* package */ byte @MonotonicNonNull [] sampleData;
|
||||
/* package */ int sampleSize;
|
||||
@ -91,12 +90,10 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
tracks = new TrackGroupArray(new TrackGroup(format));
|
||||
sampleStreams = new ArrayList<>();
|
||||
loader = new Loader("Loader:SingleSampleMediaPeriod");
|
||||
eventDispatcher.mediaPeriodCreated();
|
||||
}
|
||||
|
||||
public void release() {
|
||||
loader.release();
|
||||
eventDispatcher.mediaPeriodReleased();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -180,10 +177,6 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
|
||||
@Override
|
||||
public long readDiscontinuity() {
|
||||
if (!notifiedReadingStarted) {
|
||||
eventDispatcher.readingStarted();
|
||||
notifiedReadingStarted = true;
|
||||
}
|
||||
return C.TIME_UNSET;
|
||||
}
|
||||
|
||||
|
@ -401,16 +401,6 @@ public class EventLogger implements AnalyticsListener {
|
||||
logd(eventTime, "videoSize", width + ", " + height);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMediaPeriodCreated(EventTime eventTime) {
|
||||
logd(eventTime, "mediaPeriodCreated");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMediaPeriodReleased(EventTime eventTime) {
|
||||
logd(eventTime, "mediaPeriodReleased");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadStarted(
|
||||
EventTime eventTime, LoadEventInfo loadEventInfo, MediaLoadData mediaLoadData) {
|
||||
@ -439,11 +429,6 @@ public class EventLogger implements AnalyticsListener {
|
||||
// Do nothing.
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReadingStarted(EventTime eventTime) {
|
||||
logd(eventTime, "mediaPeriodReadingStarted");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBandwidthEstimate(
|
||||
EventTime eventTime, int totalLoadTimeMs, long totalBytesLoaded, long bitrateEstimate) {
|
||||
|
@ -94,36 +94,33 @@ public final class AnalyticsCollectorTest {
|
||||
private static final int EVENT_LOAD_ERROR = 14;
|
||||
private static final int EVENT_DOWNSTREAM_FORMAT_CHANGED = 15;
|
||||
private static final int EVENT_UPSTREAM_DISCARDED = 16;
|
||||
private static final int EVENT_MEDIA_PERIOD_CREATED = 17;
|
||||
private static final int EVENT_MEDIA_PERIOD_RELEASED = 18;
|
||||
private static final int EVENT_READING_STARTED = 19;
|
||||
private static final int EVENT_BANDWIDTH_ESTIMATE = 20;
|
||||
private static final int EVENT_SURFACE_SIZE_CHANGED = 21;
|
||||
private static final int EVENT_METADATA = 23;
|
||||
private static final int EVENT_DECODER_ENABLED = 24;
|
||||
private static final int EVENT_DECODER_INIT = 25;
|
||||
private static final int EVENT_DECODER_FORMAT_CHANGED = 26;
|
||||
private static final int EVENT_DECODER_DISABLED = 27;
|
||||
private static final int EVENT_AUDIO_ENABLED = 28;
|
||||
private static final int EVENT_AUDIO_DECODER_INIT = 29;
|
||||
private static final int EVENT_AUDIO_INPUT_FORMAT_CHANGED = 30;
|
||||
private static final int EVENT_AUDIO_DISABLED = 31;
|
||||
private static final int EVENT_AUDIO_SESSION_ID = 32;
|
||||
private static final int EVENT_AUDIO_UNDERRUN = 33;
|
||||
private static final int EVENT_VIDEO_ENABLED = 34;
|
||||
private static final int EVENT_VIDEO_DECODER_INIT = 35;
|
||||
private static final int EVENT_VIDEO_INPUT_FORMAT_CHANGED = 36;
|
||||
private static final int EVENT_DROPPED_FRAMES = 37;
|
||||
private static final int EVENT_VIDEO_DISABLED = 38;
|
||||
private static final int EVENT_RENDERED_FIRST_FRAME = 39;
|
||||
private static final int EVENT_VIDEO_FRAME_PROCESSING_OFFSET = 40;
|
||||
private static final int EVENT_VIDEO_SIZE_CHANGED = 41;
|
||||
private static final int EVENT_DRM_KEYS_LOADED = 42;
|
||||
private static final int EVENT_DRM_ERROR = 43;
|
||||
private static final int EVENT_DRM_KEYS_RESTORED = 44;
|
||||
private static final int EVENT_DRM_KEYS_REMOVED = 45;
|
||||
private static final int EVENT_DRM_SESSION_ACQUIRED = 46;
|
||||
private static final int EVENT_DRM_SESSION_RELEASED = 47;
|
||||
private static final int EVENT_BANDWIDTH_ESTIMATE = 17;
|
||||
private static final int EVENT_SURFACE_SIZE_CHANGED = 18;
|
||||
private static final int EVENT_METADATA = 19;
|
||||
private static final int EVENT_DECODER_ENABLED = 20;
|
||||
private static final int EVENT_DECODER_INIT = 21;
|
||||
private static final int EVENT_DECODER_FORMAT_CHANGED = 22;
|
||||
private static final int EVENT_DECODER_DISABLED = 23;
|
||||
private static final int EVENT_AUDIO_ENABLED = 24;
|
||||
private static final int EVENT_AUDIO_DECODER_INIT = 25;
|
||||
private static final int EVENT_AUDIO_INPUT_FORMAT_CHANGED = 26;
|
||||
private static final int EVENT_AUDIO_DISABLED = 27;
|
||||
private static final int EVENT_AUDIO_SESSION_ID = 28;
|
||||
private static final int EVENT_AUDIO_UNDERRUN = 29;
|
||||
private static final int EVENT_VIDEO_ENABLED = 30;
|
||||
private static final int EVENT_VIDEO_DECODER_INIT = 31;
|
||||
private static final int EVENT_VIDEO_INPUT_FORMAT_CHANGED = 32;
|
||||
private static final int EVENT_DROPPED_FRAMES = 33;
|
||||
private static final int EVENT_VIDEO_DISABLED = 34;
|
||||
private static final int EVENT_RENDERED_FIRST_FRAME = 35;
|
||||
private static final int EVENT_VIDEO_FRAME_PROCESSING_OFFSET = 36;
|
||||
private static final int EVENT_VIDEO_SIZE_CHANGED = 37;
|
||||
private static final int EVENT_DRM_KEYS_LOADED = 38;
|
||||
private static final int EVENT_DRM_ERROR = 39;
|
||||
private static final int EVENT_DRM_KEYS_RESTORED = 40;
|
||||
private static final int EVENT_DRM_KEYS_REMOVED = 41;
|
||||
private static final int EVENT_DRM_SESSION_ACQUIRED = 42;
|
||||
private static final int EVENT_DRM_SESSION_RELEASED = 43;
|
||||
|
||||
private static final UUID DRM_SCHEME_UUID =
|
||||
UUID.nameUUIDFromBytes(TestUtil.createByteArray(7, 8, 9));
|
||||
@ -216,8 +213,6 @@ public final class AnalyticsCollectorTest {
|
||||
assertThat(listener.getEvents(EVENT_DOWNSTREAM_FORMAT_CHANGED))
|
||||
.containsExactly(period0 /* audio */, period0 /* video */)
|
||||
.inOrder();
|
||||
assertThat(listener.getEvents(EVENT_MEDIA_PERIOD_CREATED)).containsExactly(period0);
|
||||
assertThat(listener.getEvents(EVENT_READING_STARTED)).containsExactly(period0);
|
||||
assertThat(listener.getEvents(EVENT_DECODER_ENABLED))
|
||||
.containsExactly(period0 /* audio */, period0 /* video */)
|
||||
.inOrder();
|
||||
@ -291,13 +286,6 @@ public final class AnalyticsCollectorTest {
|
||||
.containsExactly(
|
||||
period0 /* audio */, period0 /* video */, period1 /* audio */, period1 /* video */)
|
||||
.inOrder();
|
||||
assertThat(listener.getEvents(EVENT_MEDIA_PERIOD_CREATED))
|
||||
.containsExactly(period0, period1)
|
||||
.inOrder();
|
||||
assertThat(listener.getEvents(EVENT_MEDIA_PERIOD_RELEASED)).containsExactly(period0);
|
||||
assertThat(listener.getEvents(EVENT_READING_STARTED))
|
||||
.containsExactly(period0, period1)
|
||||
.inOrder();
|
||||
assertThat(listener.getEvents(EVENT_DECODER_ENABLED))
|
||||
.containsExactly(period0 /* audio */, period0 /* video */)
|
||||
.inOrder();
|
||||
@ -378,13 +366,6 @@ public final class AnalyticsCollectorTest {
|
||||
assertThat(listener.getEvents(EVENT_DOWNSTREAM_FORMAT_CHANGED))
|
||||
.containsExactly(period0 /* video */, period1 /* audio */)
|
||||
.inOrder();
|
||||
assertThat(listener.getEvents(EVENT_MEDIA_PERIOD_CREATED))
|
||||
.containsExactly(period0, period1)
|
||||
.inOrder();
|
||||
assertThat(listener.getEvents(EVENT_MEDIA_PERIOD_RELEASED)).containsExactly(period0);
|
||||
assertThat(listener.getEvents(EVENT_READING_STARTED))
|
||||
.containsExactly(period0, period1)
|
||||
.inOrder();
|
||||
assertThat(listener.getEvents(EVENT_DECODER_ENABLED))
|
||||
.containsExactly(period0 /* video */, period1 /* audio */)
|
||||
.inOrder();
|
||||
@ -473,13 +454,6 @@ public final class AnalyticsCollectorTest {
|
||||
assertThat(listener.getEvents(EVENT_DOWNSTREAM_FORMAT_CHANGED))
|
||||
.containsExactly(period0 /* video */, period0 /* audio */, period1 /* audio */)
|
||||
.inOrder();
|
||||
assertThat(listener.getEvents(EVENT_MEDIA_PERIOD_CREATED))
|
||||
.containsExactly(period0, period1)
|
||||
.inOrder();
|
||||
assertThat(listener.getEvents(EVENT_MEDIA_PERIOD_RELEASED)).containsExactly(period0);
|
||||
assertThat(listener.getEvents(EVENT_READING_STARTED))
|
||||
.containsExactly(period0, period1)
|
||||
.inOrder();
|
||||
assertThat(listener.getEvents(EVENT_DECODER_ENABLED))
|
||||
.containsExactly(period0 /* video */, period0 /* audio */, period1 /* audio */)
|
||||
.inOrder();
|
||||
@ -580,15 +554,6 @@ public final class AnalyticsCollectorTest {
|
||||
assertThat(listener.getEvents(EVENT_DOWNSTREAM_FORMAT_CHANGED))
|
||||
.containsExactly(period0, period1Seq1, period1Seq1, period1Seq2, period1Seq2)
|
||||
.inOrder();
|
||||
assertThat(listener.getEvents(EVENT_MEDIA_PERIOD_CREATED))
|
||||
.containsExactly(period0, period1Seq1, period1Seq2)
|
||||
.inOrder();
|
||||
assertThat(listener.getEvents(EVENT_MEDIA_PERIOD_RELEASED))
|
||||
.containsExactly(period1Seq1, period0)
|
||||
.inOrder();
|
||||
assertThat(listener.getEvents(EVENT_READING_STARTED))
|
||||
.containsExactly(period0, period1Seq1, period1Seq2)
|
||||
.inOrder();
|
||||
assertThat(listener.getEvents(EVENT_DECODER_ENABLED))
|
||||
.containsExactly(period0, period1, period0, period1Seq2)
|
||||
.inOrder();
|
||||
@ -703,13 +668,6 @@ public final class AnalyticsCollectorTest {
|
||||
assertThat(listener.getEvents(EVENT_DOWNSTREAM_FORMAT_CHANGED))
|
||||
.containsExactly(period0Seq0, period0Seq1)
|
||||
.inOrder();
|
||||
assertThat(listener.getEvents(EVENT_MEDIA_PERIOD_CREATED))
|
||||
.containsExactly(period0Seq0, period0Seq1)
|
||||
.inOrder();
|
||||
assertThat(listener.getEvents(EVENT_MEDIA_PERIOD_RELEASED)).containsExactly(period0Seq0);
|
||||
assertThat(listener.getEvents(EVENT_READING_STARTED))
|
||||
.containsExactly(period0Seq0, period0Seq1)
|
||||
.inOrder();
|
||||
assertThat(listener.getEvents(EVENT_DECODER_ENABLED))
|
||||
.containsExactly(period0Seq0, period0Seq1)
|
||||
.inOrder();
|
||||
@ -799,10 +757,6 @@ public final class AnalyticsCollectorTest {
|
||||
.inOrder();
|
||||
assertThat(listener.getEvents(EVENT_DOWNSTREAM_FORMAT_CHANGED))
|
||||
.containsExactly(period0Seq0, period0Seq0);
|
||||
assertThat(listener.getEvents(EVENT_MEDIA_PERIOD_CREATED))
|
||||
.containsExactly(period0Seq0, period0Seq0);
|
||||
assertThat(listener.getEvents(EVENT_MEDIA_PERIOD_RELEASED)).containsExactly(period0Seq0);
|
||||
assertThat(listener.getEvents(EVENT_READING_STARTED)).containsExactly(period0Seq0, period0Seq0);
|
||||
assertThat(listener.getEvents(EVENT_DECODER_ENABLED)).containsExactly(period0Seq0, period0Seq0);
|
||||
assertThat(listener.getEvents(EVENT_DECODER_INIT)).containsExactly(period0Seq0, period0Seq0);
|
||||
assertThat(listener.getEvents(EVENT_DECODER_FORMAT_CHANGED))
|
||||
@ -883,13 +837,6 @@ public final class AnalyticsCollectorTest {
|
||||
assertThat(listener.getEvents(EVENT_DOWNSTREAM_FORMAT_CHANGED))
|
||||
.containsExactly(window0Period1Seq0, window1Period0Seq1)
|
||||
.inOrder();
|
||||
assertThat(listener.getEvents(EVENT_MEDIA_PERIOD_CREATED))
|
||||
.containsExactly(window0Period1Seq0, window1Period0Seq1)
|
||||
.inOrder();
|
||||
assertThat(listener.getEvents(EVENT_MEDIA_PERIOD_RELEASED)).containsExactly(window1Period0Seq1);
|
||||
assertThat(listener.getEvents(EVENT_READING_STARTED))
|
||||
.containsExactly(window0Period1Seq0, window1Period0Seq1)
|
||||
.inOrder();
|
||||
assertThat(listener.getEvents(EVENT_DECODER_ENABLED))
|
||||
.containsExactly(window0Period1Seq0, window0Period1Seq0)
|
||||
.inOrder();
|
||||
@ -987,13 +934,6 @@ public final class AnalyticsCollectorTest {
|
||||
assertThat(listener.getEvents(EVENT_DOWNSTREAM_FORMAT_CHANGED))
|
||||
.containsExactly(period0Seq0, period0Seq1)
|
||||
.inOrder();
|
||||
assertThat(listener.getEvents(EVENT_MEDIA_PERIOD_CREATED))
|
||||
.containsExactly(period0Seq0, period1Seq1)
|
||||
.inOrder();
|
||||
assertThat(listener.getEvents(EVENT_MEDIA_PERIOD_RELEASED)).containsExactly(period0Seq0);
|
||||
assertThat(listener.getEvents(EVENT_READING_STARTED))
|
||||
.containsExactly(period0Seq0, period0Seq1)
|
||||
.inOrder();
|
||||
assertThat(listener.getEvents(EVENT_DECODER_ENABLED))
|
||||
.containsExactly(period0Seq0, period0Seq1, period0Seq1)
|
||||
.inOrder();
|
||||
@ -1235,27 +1175,6 @@ public final class AnalyticsCollectorTest {
|
||||
postrollAd,
|
||||
contentAfterPostroll)
|
||||
.inOrder();
|
||||
assertThat(listener.getEvents(EVENT_MEDIA_PERIOD_CREATED))
|
||||
.containsExactly(
|
||||
prerollAd,
|
||||
contentAfterPreroll,
|
||||
midrollAd,
|
||||
contentAfterMidroll,
|
||||
postrollAd,
|
||||
contentAfterPostroll)
|
||||
.inOrder();
|
||||
assertThat(listener.getEvents(EVENT_MEDIA_PERIOD_RELEASED))
|
||||
.containsExactly(
|
||||
prerollAd, contentAfterPreroll, midrollAd, contentAfterMidroll, postrollAd);
|
||||
assertThat(listener.getEvents(EVENT_READING_STARTED))
|
||||
.containsExactly(
|
||||
prerollAd,
|
||||
contentAfterPreroll,
|
||||
midrollAd,
|
||||
contentAfterMidroll,
|
||||
postrollAd,
|
||||
contentAfterPostroll)
|
||||
.inOrder();
|
||||
assertThat(listener.getEvents(EVENT_DECODER_ENABLED)).containsExactly(prerollAd);
|
||||
assertThat(listener.getEvents(EVENT_DECODER_INIT))
|
||||
.containsExactly(
|
||||
@ -1442,15 +1361,6 @@ public final class AnalyticsCollectorTest {
|
||||
assertThat(listener.getEvents(EVENT_DOWNSTREAM_FORMAT_CHANGED))
|
||||
.containsExactly(contentBeforeMidroll, midrollAd, contentAfterMidroll)
|
||||
.inOrder();
|
||||
assertThat(listener.getEvents(EVENT_MEDIA_PERIOD_CREATED))
|
||||
.containsExactly(contentBeforeMidroll, midrollAd, contentAfterMidroll, contentAfterMidroll)
|
||||
.inOrder();
|
||||
assertThat(listener.getEvents(EVENT_MEDIA_PERIOD_RELEASED))
|
||||
.containsExactly(contentBeforeMidroll, contentAfterMidroll, midrollAd)
|
||||
.inOrder();
|
||||
assertThat(listener.getEvents(EVENT_READING_STARTED))
|
||||
.containsExactly(contentBeforeMidroll, midrollAd, contentAfterMidroll)
|
||||
.inOrder();
|
||||
assertThat(listener.getEvents(EVENT_DECODER_ENABLED))
|
||||
.containsExactly(contentBeforeMidroll, midrollAd)
|
||||
.inOrder();
|
||||
@ -1943,21 +1853,6 @@ public final class AnalyticsCollectorTest {
|
||||
reportedEvents.add(new ReportedEvent(EVENT_UPSTREAM_DISCARDED, eventTime));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMediaPeriodCreated(EventTime eventTime) {
|
||||
reportedEvents.add(new ReportedEvent(EVENT_MEDIA_PERIOD_CREATED, eventTime));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMediaPeriodReleased(EventTime eventTime) {
|
||||
reportedEvents.add(new ReportedEvent(EVENT_MEDIA_PERIOD_RELEASED, eventTime));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReadingStarted(EventTime eventTime) {
|
||||
reportedEvents.add(new ReportedEvent(EVENT_READING_STARTED, eventTime));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBandwidthEstimate(
|
||||
EventTime eventTime, int totalLoadTimeMs, long totalBytesLoaded, long bitrateEstimate) {
|
||||
|
@ -102,7 +102,6 @@ import org.checkerframework.checker.nullness.compatqual.NullableType;
|
||||
private DashManifest manifest;
|
||||
private int periodIndex;
|
||||
private List<EventStream> eventStreams;
|
||||
private boolean notifiedReadingStarted;
|
||||
|
||||
public DashMediaPeriod(
|
||||
int id,
|
||||
@ -144,7 +143,6 @@ import org.checkerframework.checker.nullness.compatqual.NullableType;
|
||||
buildTrackGroups(drmSessionManager, period.adaptationSets, eventStreams);
|
||||
trackGroups = result.first;
|
||||
trackGroupInfos = result.second;
|
||||
mediaSourceEventDispatcher.mediaPeriodCreated();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -183,7 +181,6 @@ import org.checkerframework.checker.nullness.compatqual.NullableType;
|
||||
sampleStream.release(this);
|
||||
}
|
||||
callback = null;
|
||||
mediaSourceEventDispatcher.mediaPeriodReleased();
|
||||
}
|
||||
|
||||
// ChunkSampleStream.ReleaseCallback implementation.
|
||||
@ -320,10 +317,6 @@ import org.checkerframework.checker.nullness.compatqual.NullableType;
|
||||
|
||||
@Override
|
||||
public long readDiscontinuity() {
|
||||
if (!notifiedReadingStarted) {
|
||||
mediaSourceEventDispatcher.readingStarted();
|
||||
notifiedReadingStarted = true;
|
||||
}
|
||||
return C.TIME_UNSET;
|
||||
}
|
||||
|
||||
|
@ -89,7 +89,6 @@ public final class HlsMediaPeriod implements MediaPeriod, HlsSampleStreamWrapper
|
||||
// Maps sample stream wrappers to variant/rendition index by matching array positions.
|
||||
private int[][] manifestUrlIndicesPerWrapper;
|
||||
private SequenceableLoader compositeSequenceableLoader;
|
||||
private boolean notifiedReadingStarted;
|
||||
|
||||
/**
|
||||
* Creates an HLS media period.
|
||||
@ -144,7 +143,6 @@ public final class HlsMediaPeriod implements MediaPeriod, HlsSampleStreamWrapper
|
||||
sampleStreamWrappers = new HlsSampleStreamWrapper[0];
|
||||
enabledSampleStreamWrappers = new HlsSampleStreamWrapper[0];
|
||||
manifestUrlIndicesPerWrapper = new int[0][];
|
||||
eventDispatcher.mediaPeriodCreated();
|
||||
}
|
||||
|
||||
public void release() {
|
||||
@ -153,7 +151,6 @@ public final class HlsMediaPeriod implements MediaPeriod, HlsSampleStreamWrapper
|
||||
sampleStreamWrapper.release();
|
||||
}
|
||||
callback = null;
|
||||
eventDispatcher.mediaPeriodReleased();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -381,10 +378,6 @@ public final class HlsMediaPeriod implements MediaPeriod, HlsSampleStreamWrapper
|
||||
|
||||
@Override
|
||||
public long readDiscontinuity() {
|
||||
if (!notifiedReadingStarted) {
|
||||
eventDispatcher.readingStarted();
|
||||
notifiedReadingStarted = true;
|
||||
}
|
||||
return C.TIME_UNSET;
|
||||
}
|
||||
|
||||
|
@ -61,7 +61,6 @@ import org.checkerframework.checker.nullness.compatqual.NullableType;
|
||||
private SsManifest manifest;
|
||||
private ChunkSampleStream<SsChunkSource>[] sampleStreams;
|
||||
private SequenceableLoader compositeSequenceableLoader;
|
||||
private boolean notifiedReadingStarted;
|
||||
|
||||
public SsMediaPeriod(
|
||||
SsManifest manifest,
|
||||
@ -88,7 +87,6 @@ import org.checkerframework.checker.nullness.compatqual.NullableType;
|
||||
sampleStreams = newSampleStreamArray(0);
|
||||
compositeSequenceableLoader =
|
||||
compositeSequenceableLoaderFactory.createCompositeSequenceableLoader(sampleStreams);
|
||||
mediaSourceEventDispatcher.mediaPeriodCreated();
|
||||
}
|
||||
|
||||
public void updateManifest(SsManifest manifest) {
|
||||
@ -104,7 +102,6 @@ import org.checkerframework.checker.nullness.compatqual.NullableType;
|
||||
sampleStream.release();
|
||||
}
|
||||
callback = null;
|
||||
mediaSourceEventDispatcher.mediaPeriodReleased();
|
||||
}
|
||||
|
||||
// MediaPeriod implementation.
|
||||
@ -201,10 +198,6 @@ import org.checkerframework.checker.nullness.compatqual.NullableType;
|
||||
|
||||
@Override
|
||||
public long readDiscontinuity() {
|
||||
if (!notifiedReadingStarted) {
|
||||
mediaSourceEventDispatcher.readingStarted();
|
||||
notifiedReadingStarted = true;
|
||||
}
|
||||
return C.TIME_UNSET;
|
||||
}
|
||||
|
||||
|
@ -68,7 +68,6 @@ public class FakeMediaPeriod implements MediaPeriod {
|
||||
@Nullable private Callback prepareCallback;
|
||||
|
||||
private boolean deferOnPrepared;
|
||||
private boolean notifiedReadingStarted;
|
||||
private boolean prepared;
|
||||
private long seekOffsetUs;
|
||||
private long discontinuityPositionUs;
|
||||
@ -154,7 +153,6 @@ public class FakeMediaPeriod implements MediaPeriod {
|
||||
discontinuityPositionUs = C.TIME_UNSET;
|
||||
sampleStreams = new ArrayList<>();
|
||||
fakePreparationLoadTaskId = LoadEventInfo.getNewId();
|
||||
mediaSourceEventDispatcher.mediaPeriodCreated();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -191,7 +189,6 @@ public class FakeMediaPeriod implements MediaPeriod {
|
||||
for (int i = 0; i < sampleStreams.size(); i++) {
|
||||
releaseSampleStream(sampleStreams.get(i));
|
||||
}
|
||||
mediaSourceEventDispatcher.mediaPeriodReleased();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -273,10 +270,6 @@ public class FakeMediaPeriod implements MediaPeriod {
|
||||
@Override
|
||||
public long readDiscontinuity() {
|
||||
assertThat(prepared).isTrue();
|
||||
if (!notifiedReadingStarted) {
|
||||
mediaSourceEventDispatcher.readingStarted();
|
||||
notifiedReadingStarted = true;
|
||||
}
|
||||
long positionDiscontinuityUs = this.discontinuityPositionUs;
|
||||
this.discontinuityPositionUs = C.TIME_UNSET;
|
||||
return positionDiscontinuityUs;
|
||||
|
@ -44,7 +44,6 @@ import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
import java.util.concurrent.LinkedBlockingDeque;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
/** A runner for {@link MediaSource} tests. */
|
||||
public class MediaSourceTestRunner {
|
||||
@ -59,8 +58,6 @@ public class MediaSourceTestRunner {
|
||||
|
||||
private final LinkedBlockingDeque<Timeline> timelines;
|
||||
private final CopyOnWriteArrayList<Pair<Integer, MediaPeriodId>> completedLoads;
|
||||
private final AtomicReference<MediaPeriodId> lastCreatedMediaPeriod;
|
||||
private final AtomicReference<MediaPeriodId> lastReleasedMediaPeriod;
|
||||
|
||||
private Timeline timeline;
|
||||
|
||||
@ -78,8 +75,6 @@ public class MediaSourceTestRunner {
|
||||
mediaSourceListener = new MediaSourceListener();
|
||||
timelines = new LinkedBlockingDeque<>();
|
||||
completedLoads = new CopyOnWriteArrayList<>();
|
||||
lastCreatedMediaPeriod = new AtomicReference<>();
|
||||
lastReleasedMediaPeriod = new AtomicReference<>();
|
||||
mediaSource.addEventListener(playbackHandler, mediaSourceListener);
|
||||
}
|
||||
|
||||
@ -270,7 +265,6 @@ public class MediaSourceTestRunner {
|
||||
private void assertPrepareAndReleasePeriod(MediaPeriodId mediaPeriodId)
|
||||
throws InterruptedException {
|
||||
MediaPeriod mediaPeriod = createPeriod(mediaPeriodId);
|
||||
assertThat(lastCreatedMediaPeriod.getAndSet(/* newValue= */ null)).isEqualTo(mediaPeriodId);
|
||||
CountDownLatch preparedLatch = preparePeriod(mediaPeriod, 0);
|
||||
assertThat(preparedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue();
|
||||
// MediaSource is supposed to support multiple calls to createPeriod without an intervening call
|
||||
@ -282,16 +276,11 @@ public class MediaSourceTestRunner {
|
||||
mediaPeriodId.adIndexInAdGroup,
|
||||
mediaPeriodId.windowSequenceNumber + 1000);
|
||||
MediaPeriod secondMediaPeriod = createPeriod(secondMediaPeriodId);
|
||||
assertThat(lastCreatedMediaPeriod.getAndSet(/* newValue= */ null))
|
||||
.isEqualTo(secondMediaPeriodId);
|
||||
CountDownLatch secondPreparedLatch = preparePeriod(secondMediaPeriod, 0);
|
||||
assertThat(secondPreparedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue();
|
||||
// Release the periods.
|
||||
releasePeriod(mediaPeriod);
|
||||
assertThat(lastReleasedMediaPeriod.getAndSet(/* newValue= */ null)).isEqualTo(mediaPeriodId);
|
||||
releasePeriod(secondMediaPeriod);
|
||||
assertThat(lastReleasedMediaPeriod.getAndSet(/* newValue= */ null))
|
||||
.isEqualTo(secondMediaPeriodId);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -355,18 +344,6 @@ public class MediaSourceTestRunner {
|
||||
|
||||
// MediaSourceEventListener methods.
|
||||
|
||||
@Override
|
||||
public void onMediaPeriodCreated(int windowIndex, MediaPeriodId mediaPeriodId) {
|
||||
Assertions.checkState(Looper.myLooper() == playbackThread.getLooper());
|
||||
lastCreatedMediaPeriod.set(mediaPeriodId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMediaPeriodReleased(int windowIndex, MediaPeriodId mediaPeriodId) {
|
||||
Assertions.checkState(Looper.myLooper() == playbackThread.getLooper());
|
||||
lastReleasedMediaPeriod.set(mediaPeriodId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadStarted(
|
||||
int windowIndex,
|
||||
@ -406,11 +383,6 @@ public class MediaSourceTestRunner {
|
||||
Assertions.checkState(Looper.myLooper() == playbackThread.getLooper());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReadingStarted(int windowIndex, MediaPeriodId mediaPeriodId) {
|
||||
Assertions.checkState(Looper.myLooper() == playbackThread.getLooper());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpstreamDiscarded(
|
||||
int windowIndex, @Nullable MediaPeriodId mediaPeriodId, MediaLoadData mediaLoadData) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user