Remove generic type parameter from TransferListener.
All known instances use DataSource as generic type and thus code can be simplified by removing the generic type altogether. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=205798542
This commit is contained in:
parent
9d0ec37ead
commit
ffdc17d0e0
@ -22,7 +22,6 @@ import android.util.Log;
|
||||
import com.google.android.exoplayer2.C;
|
||||
import com.google.android.exoplayer2.ExoPlayerLibraryInfo;
|
||||
import com.google.android.exoplayer2.upstream.BaseDataSource;
|
||||
import com.google.android.exoplayer2.upstream.DataSource;
|
||||
import com.google.android.exoplayer2.upstream.DataSourceException;
|
||||
import com.google.android.exoplayer2.upstream.DataSpec;
|
||||
import com.google.android.exoplayer2.upstream.HttpDataSource;
|
||||
@ -163,7 +162,7 @@ public class CronetDataSource extends BaseDataSource implements HttpDataSource {
|
||||
CronetEngine cronetEngine,
|
||||
Executor executor,
|
||||
Predicate<String> contentTypePredicate,
|
||||
@Nullable TransferListener<? super DataSource> listener) {
|
||||
@Nullable TransferListener listener) {
|
||||
this(cronetEngine, executor, contentTypePredicate, listener, DEFAULT_CONNECT_TIMEOUT_MILLIS,
|
||||
DEFAULT_READ_TIMEOUT_MILLIS, false, null, false);
|
||||
}
|
||||
@ -188,7 +187,7 @@ public class CronetDataSource extends BaseDataSource implements HttpDataSource {
|
||||
CronetEngine cronetEngine,
|
||||
Executor executor,
|
||||
Predicate<String> contentTypePredicate,
|
||||
@Nullable TransferListener<? super DataSource> listener,
|
||||
@Nullable TransferListener listener,
|
||||
int connectTimeoutMs,
|
||||
int readTimeoutMs,
|
||||
boolean resetTimeoutOnRedirects,
|
||||
@ -219,7 +218,7 @@ public class CronetDataSource extends BaseDataSource implements HttpDataSource {
|
||||
CronetEngine cronetEngine,
|
||||
Executor executor,
|
||||
Predicate<String> contentTypePredicate,
|
||||
@Nullable TransferListener<? super DataSource> listener,
|
||||
@Nullable TransferListener listener,
|
||||
int connectTimeoutMs,
|
||||
int readTimeoutMs,
|
||||
boolean resetTimeoutOnRedirects,
|
||||
@ -234,7 +233,7 @@ public class CronetDataSource extends BaseDataSource implements HttpDataSource {
|
||||
CronetEngine cronetEngine,
|
||||
Executor executor,
|
||||
Predicate<String> contentTypePredicate,
|
||||
@Nullable TransferListener<? super DataSource> listener,
|
||||
@Nullable TransferListener listener,
|
||||
int connectTimeoutMs,
|
||||
int readTimeoutMs,
|
||||
boolean resetTimeoutOnRedirects,
|
||||
|
@ -16,7 +16,6 @@
|
||||
package com.google.android.exoplayer2.ext.cronet;
|
||||
|
||||
import android.support.annotation.Nullable;
|
||||
import com.google.android.exoplayer2.upstream.DataSource;
|
||||
import com.google.android.exoplayer2.upstream.DefaultHttpDataSourceFactory;
|
||||
import com.google.android.exoplayer2.upstream.HttpDataSource;
|
||||
import com.google.android.exoplayer2.upstream.HttpDataSource.BaseFactory;
|
||||
@ -47,7 +46,7 @@ public final class CronetDataSourceFactory extends BaseFactory {
|
||||
private final CronetEngineWrapper cronetEngineWrapper;
|
||||
private final Executor executor;
|
||||
private final Predicate<String> contentTypePredicate;
|
||||
private final @Nullable TransferListener<? super DataSource> transferListener;
|
||||
private final @Nullable TransferListener transferListener;
|
||||
private final int connectTimeoutMs;
|
||||
private final int readTimeoutMs;
|
||||
private final boolean resetTimeoutOnRedirects;
|
||||
@ -224,7 +223,7 @@ public final class CronetDataSourceFactory extends BaseFactory {
|
||||
CronetEngineWrapper cronetEngineWrapper,
|
||||
Executor executor,
|
||||
Predicate<String> contentTypePredicate,
|
||||
@Nullable TransferListener<? super DataSource> transferListener,
|
||||
@Nullable TransferListener transferListener,
|
||||
HttpDataSource.Factory fallbackFactory) {
|
||||
this(cronetEngineWrapper, executor, contentTypePredicate, transferListener,
|
||||
DEFAULT_CONNECT_TIMEOUT_MILLIS, DEFAULT_READ_TIMEOUT_MILLIS, false, fallbackFactory);
|
||||
@ -252,7 +251,7 @@ public final class CronetDataSourceFactory extends BaseFactory {
|
||||
CronetEngineWrapper cronetEngineWrapper,
|
||||
Executor executor,
|
||||
Predicate<String> contentTypePredicate,
|
||||
@Nullable TransferListener<? super DataSource> transferListener,
|
||||
@Nullable TransferListener transferListener,
|
||||
String userAgent) {
|
||||
this(cronetEngineWrapper, executor, contentTypePredicate, transferListener,
|
||||
DEFAULT_CONNECT_TIMEOUT_MILLIS, DEFAULT_READ_TIMEOUT_MILLIS, false,
|
||||
@ -281,7 +280,7 @@ public final class CronetDataSourceFactory extends BaseFactory {
|
||||
CronetEngineWrapper cronetEngineWrapper,
|
||||
Executor executor,
|
||||
Predicate<String> contentTypePredicate,
|
||||
@Nullable TransferListener<? super DataSource> transferListener,
|
||||
@Nullable TransferListener transferListener,
|
||||
int connectTimeoutMs,
|
||||
int readTimeoutMs,
|
||||
boolean resetTimeoutOnRedirects,
|
||||
@ -314,7 +313,7 @@ public final class CronetDataSourceFactory extends BaseFactory {
|
||||
CronetEngineWrapper cronetEngineWrapper,
|
||||
Executor executor,
|
||||
Predicate<String> contentTypePredicate,
|
||||
@Nullable TransferListener<? super DataSource> transferListener,
|
||||
@Nullable TransferListener transferListener,
|
||||
int connectTimeoutMs,
|
||||
int readTimeoutMs,
|
||||
boolean resetTimeoutOnRedirects,
|
||||
|
@ -32,7 +32,6 @@ import android.net.Uri;
|
||||
import android.os.ConditionVariable;
|
||||
import android.os.SystemClock;
|
||||
import com.google.android.exoplayer2.C;
|
||||
import com.google.android.exoplayer2.upstream.DataSource;
|
||||
import com.google.android.exoplayer2.upstream.DataSpec;
|
||||
import com.google.android.exoplayer2.upstream.HttpDataSource;
|
||||
import com.google.android.exoplayer2.upstream.HttpDataSource.HttpDataSourceException;
|
||||
@ -87,7 +86,7 @@ public final class CronetDataSourceTest {
|
||||
@Mock private UrlRequest.Builder mockUrlRequestBuilder;
|
||||
@Mock private UrlRequest mockUrlRequest;
|
||||
@Mock private Predicate<String> mockContentTypePredicate;
|
||||
@Mock private TransferListener<DataSource> mockTransferListener;
|
||||
@Mock private TransferListener mockTransferListener;
|
||||
@Mock private Executor mockExecutor;
|
||||
@Mock private NetworkException mockNetworkException;
|
||||
@Mock private CronetEngine mockCronetEngine;
|
||||
|
@ -80,7 +80,7 @@ public final class ImaAdsMediaSource extends BaseMediaSource implements SourceIn
|
||||
public void prepareSourceInternal(
|
||||
final ExoPlayer player,
|
||||
boolean isTopLevelSource,
|
||||
@Nullable TransferListener<? super DataSource> mediaTransferListener) {
|
||||
@Nullable TransferListener mediaTransferListener) {
|
||||
adsMediaSource.prepareSource(
|
||||
player, isTopLevelSource, /* listener= */ this, mediaTransferListener);
|
||||
}
|
||||
|
@ -21,7 +21,6 @@ import android.support.annotation.Nullable;
|
||||
import com.google.android.exoplayer2.C;
|
||||
import com.google.android.exoplayer2.ExoPlayerLibraryInfo;
|
||||
import com.google.android.exoplayer2.upstream.BaseDataSource;
|
||||
import com.google.android.exoplayer2.upstream.DataSource;
|
||||
import com.google.android.exoplayer2.upstream.DataSourceException;
|
||||
import com.google.android.exoplayer2.upstream.DataSpec;
|
||||
import com.google.android.exoplayer2.upstream.HttpDataSource;
|
||||
@ -97,7 +96,7 @@ public class OkHttpDataSource extends BaseDataSource implements HttpDataSource {
|
||||
@NonNull Call.Factory callFactory,
|
||||
@Nullable String userAgent,
|
||||
@Nullable Predicate<String> contentTypePredicate,
|
||||
@Nullable TransferListener<? super DataSource> listener) {
|
||||
@Nullable TransferListener listener) {
|
||||
this(callFactory, userAgent, contentTypePredicate, listener, null, null);
|
||||
}
|
||||
|
||||
@ -117,7 +116,7 @@ public class OkHttpDataSource extends BaseDataSource implements HttpDataSource {
|
||||
@NonNull Call.Factory callFactory,
|
||||
@Nullable String userAgent,
|
||||
@Nullable Predicate<String> contentTypePredicate,
|
||||
@Nullable TransferListener<? super DataSource> listener,
|
||||
@Nullable TransferListener listener,
|
||||
@Nullable CacheControl cacheControl,
|
||||
@Nullable RequestProperties defaultRequestProperties) {
|
||||
super(/* isNetwork= */ true);
|
||||
|
@ -17,7 +17,6 @@ package com.google.android.exoplayer2.ext.okhttp;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import com.google.android.exoplayer2.upstream.DataSource;
|
||||
import com.google.android.exoplayer2.upstream.HttpDataSource;
|
||||
import com.google.android.exoplayer2.upstream.HttpDataSource.BaseFactory;
|
||||
import com.google.android.exoplayer2.upstream.HttpDataSource.Factory;
|
||||
@ -32,7 +31,7 @@ public final class OkHttpDataSourceFactory extends BaseFactory {
|
||||
|
||||
@NonNull private final Call.Factory callFactory;
|
||||
@Nullable private final String userAgent;
|
||||
@Nullable private final TransferListener<? super DataSource> listener;
|
||||
@Nullable private final TransferListener listener;
|
||||
@Nullable private final CacheControl cacheControl;
|
||||
|
||||
/**
|
||||
@ -63,8 +62,10 @@ public final class OkHttpDataSourceFactory extends BaseFactory {
|
||||
* @param userAgent An optional User-Agent string.
|
||||
* @param listener An optional listener.
|
||||
*/
|
||||
public OkHttpDataSourceFactory(@NonNull Call.Factory callFactory, @Nullable String userAgent,
|
||||
@Nullable TransferListener<? super DataSource> listener) {
|
||||
public OkHttpDataSourceFactory(
|
||||
@NonNull Call.Factory callFactory,
|
||||
@Nullable String userAgent,
|
||||
@Nullable TransferListener listener) {
|
||||
this(callFactory, userAgent, listener, /* cacheControl= */ null);
|
||||
}
|
||||
|
||||
@ -75,8 +76,10 @@ public final class OkHttpDataSourceFactory extends BaseFactory {
|
||||
* @param listener An optional listener.
|
||||
* @param cacheControl An optional {@link CacheControl} for setting the Cache-Control header.
|
||||
*/
|
||||
public OkHttpDataSourceFactory(@NonNull Call.Factory callFactory, @Nullable String userAgent,
|
||||
@Nullable TransferListener<? super DataSource> listener,
|
||||
public OkHttpDataSourceFactory(
|
||||
@NonNull Call.Factory callFactory,
|
||||
@Nullable String userAgent,
|
||||
@Nullable TransferListener listener,
|
||||
@Nullable CacheControl cacheControl) {
|
||||
this.callFactory = callFactory;
|
||||
this.userAgent = userAgent;
|
||||
|
@ -42,7 +42,7 @@ public final class RtmpDataSource extends BaseDataSource {
|
||||
}
|
||||
|
||||
/** @param listener An optional listener. */
|
||||
public RtmpDataSource(@Nullable TransferListener<? super DataSource> listener) {
|
||||
public RtmpDataSource(@Nullable TransferListener listener) {
|
||||
super(/* isNetwork= */ true);
|
||||
if (listener != null) {
|
||||
addTransferListener(listener);
|
||||
|
@ -25,14 +25,14 @@ import com.google.android.exoplayer2.upstream.TransferListener;
|
||||
*/
|
||||
public final class RtmpDataSourceFactory implements DataSource.Factory {
|
||||
|
||||
private final @Nullable TransferListener<? super DataSource> listener;
|
||||
private final @Nullable TransferListener listener;
|
||||
|
||||
public RtmpDataSourceFactory() {
|
||||
this(null);
|
||||
}
|
||||
|
||||
/** @param listener An optional listener. */
|
||||
public RtmpDataSourceFactory(@Nullable TransferListener<? super DataSource> listener) {
|
||||
public RtmpDataSourceFactory(@Nullable TransferListener listener) {
|
||||
this.listener = listener;
|
||||
}
|
||||
|
||||
|
@ -19,7 +19,6 @@ import android.os.Handler;
|
||||
import android.support.annotation.Nullable;
|
||||
import com.google.android.exoplayer2.ExoPlayer;
|
||||
import com.google.android.exoplayer2.Timeline;
|
||||
import com.google.android.exoplayer2.upstream.DataSource;
|
||||
import com.google.android.exoplayer2.upstream.TransferListener;
|
||||
import com.google.android.exoplayer2.util.Assertions;
|
||||
import java.util.ArrayList;
|
||||
@ -59,9 +58,7 @@ public abstract class BaseMediaSource implements MediaSource {
|
||||
* manifests and other data.
|
||||
*/
|
||||
protected abstract void prepareSourceInternal(
|
||||
ExoPlayer player,
|
||||
boolean isTopLevelSource,
|
||||
@Nullable TransferListener<? super DataSource> mediaTransferListener);
|
||||
ExoPlayer player, boolean isTopLevelSource, @Nullable TransferListener mediaTransferListener);
|
||||
|
||||
/**
|
||||
* Releases the source. This method is called exactly once after each call to {@link
|
||||
@ -147,7 +144,7 @@ public abstract class BaseMediaSource implements MediaSource {
|
||||
ExoPlayer player,
|
||||
boolean isTopLevelSource,
|
||||
SourceInfoRefreshListener listener,
|
||||
@Nullable TransferListener<? super DataSource> mediaTransferListener) {
|
||||
@Nullable TransferListener mediaTransferListener) {
|
||||
Assertions.checkArgument(this.player == null || this.player == player);
|
||||
sourceInfoListeners.add(listener);
|
||||
if (this.player == null) {
|
||||
|
@ -21,7 +21,6 @@ import com.google.android.exoplayer2.C;
|
||||
import com.google.android.exoplayer2.ExoPlayer;
|
||||
import com.google.android.exoplayer2.Timeline;
|
||||
import com.google.android.exoplayer2.upstream.Allocator;
|
||||
import com.google.android.exoplayer2.upstream.DataSource;
|
||||
import com.google.android.exoplayer2.upstream.TransferListener;
|
||||
import com.google.android.exoplayer2.util.Assertions;
|
||||
import java.io.IOException;
|
||||
@ -216,7 +215,7 @@ public final class ClippingMediaSource extends CompositeMediaSource<Void> {
|
||||
public void prepareSourceInternal(
|
||||
ExoPlayer player,
|
||||
boolean isTopLevelSource,
|
||||
@Nullable TransferListener<? super DataSource> mediaTransferListener) {
|
||||
@Nullable TransferListener mediaTransferListener) {
|
||||
super.prepareSourceInternal(player, isTopLevelSource, mediaTransferListener);
|
||||
prepareChildSource(/* id= */ null, mediaSource);
|
||||
}
|
||||
|
@ -20,7 +20,6 @@ import android.support.annotation.CallSuper;
|
||||
import android.support.annotation.Nullable;
|
||||
import com.google.android.exoplayer2.ExoPlayer;
|
||||
import com.google.android.exoplayer2.Timeline;
|
||||
import com.google.android.exoplayer2.upstream.DataSource;
|
||||
import com.google.android.exoplayer2.upstream.TransferListener;
|
||||
import com.google.android.exoplayer2.util.Assertions;
|
||||
import com.google.android.exoplayer2.util.Util;
|
||||
@ -38,7 +37,7 @@ public abstract class CompositeMediaSource<T> extends BaseMediaSource {
|
||||
|
||||
private @Nullable ExoPlayer player;
|
||||
private @Nullable Handler eventHandler;
|
||||
private @Nullable TransferListener<? super DataSource> mediaTransferListener;
|
||||
private @Nullable TransferListener mediaTransferListener;
|
||||
|
||||
/** Create composite media source without child sources. */
|
||||
protected CompositeMediaSource() {
|
||||
@ -50,7 +49,7 @@ public abstract class CompositeMediaSource<T> extends BaseMediaSource {
|
||||
public void prepareSourceInternal(
|
||||
ExoPlayer player,
|
||||
boolean isTopLevelSource,
|
||||
@Nullable TransferListener<? super DataSource> mediaTransferListener) {
|
||||
@Nullable TransferListener mediaTransferListener) {
|
||||
this.player = player;
|
||||
this.mediaTransferListener = mediaTransferListener;
|
||||
eventHandler = new Handler();
|
||||
|
@ -26,7 +26,6 @@ import com.google.android.exoplayer2.Timeline;
|
||||
import com.google.android.exoplayer2.source.ConcatenatingMediaSource.MediaSourceHolder;
|
||||
import com.google.android.exoplayer2.source.ShuffleOrder.DefaultShuffleOrder;
|
||||
import com.google.android.exoplayer2.upstream.Allocator;
|
||||
import com.google.android.exoplayer2.upstream.DataSource;
|
||||
import com.google.android.exoplayer2.upstream.TransferListener;
|
||||
import com.google.android.exoplayer2.util.Assertions;
|
||||
import com.google.android.exoplayer2.util.Util;
|
||||
@ -376,7 +375,7 @@ public class ConcatenatingMediaSource extends CompositeMediaSource<MediaSourceHo
|
||||
public final synchronized void prepareSourceInternal(
|
||||
ExoPlayer player,
|
||||
boolean isTopLevelSource,
|
||||
@Nullable TransferListener<? super DataSource> mediaTransferListener) {
|
||||
@Nullable TransferListener mediaTransferListener) {
|
||||
super.prepareSourceInternal(player, isTopLevelSource, mediaTransferListener);
|
||||
this.player = player;
|
||||
playerApplicationHandler = new Handler(player.getApplicationLooper());
|
||||
|
@ -241,7 +241,7 @@ public final class ExtractorMediaSource extends BaseMediaSource
|
||||
|
||||
private long timelineDurationUs;
|
||||
private boolean timelineIsSeekable;
|
||||
private @Nullable TransferListener<? super DataSource> transferListener;
|
||||
private @Nullable TransferListener transferListener;
|
||||
|
||||
/**
|
||||
* @param uri The {@link Uri} of the media stream.
|
||||
@ -347,7 +347,7 @@ public final class ExtractorMediaSource extends BaseMediaSource
|
||||
public void prepareSourceInternal(
|
||||
ExoPlayer player,
|
||||
boolean isTopLevelSource,
|
||||
@Nullable TransferListener<? super DataSource> mediaTransferListener) {
|
||||
@Nullable TransferListener mediaTransferListener) {
|
||||
transferListener = mediaTransferListener;
|
||||
notifySourceInfoRefreshed(timelineDurationUs, /* isSeekable= */ false);
|
||||
}
|
||||
|
@ -22,7 +22,6 @@ import com.google.android.exoplayer2.Player;
|
||||
import com.google.android.exoplayer2.Timeline;
|
||||
import com.google.android.exoplayer2.source.ShuffleOrder.UnshuffledShuffleOrder;
|
||||
import com.google.android.exoplayer2.upstream.Allocator;
|
||||
import com.google.android.exoplayer2.upstream.DataSource;
|
||||
import com.google.android.exoplayer2.upstream.TransferListener;
|
||||
import com.google.android.exoplayer2.util.Assertions;
|
||||
|
||||
@ -65,7 +64,7 @@ public final class LoopingMediaSource extends CompositeMediaSource<Void> {
|
||||
public void prepareSourceInternal(
|
||||
ExoPlayer player,
|
||||
boolean isTopLevelSource,
|
||||
@Nullable TransferListener<? super DataSource> mediaTransferListener) {
|
||||
@Nullable TransferListener mediaTransferListener) {
|
||||
super.prepareSourceInternal(player, isTopLevelSource, mediaTransferListener);
|
||||
prepareChildSource(/* id= */ null, childSource);
|
||||
}
|
||||
|
@ -21,7 +21,6 @@ import com.google.android.exoplayer2.C;
|
||||
import com.google.android.exoplayer2.ExoPlayer;
|
||||
import com.google.android.exoplayer2.Timeline;
|
||||
import com.google.android.exoplayer2.upstream.Allocator;
|
||||
import com.google.android.exoplayer2.upstream.DataSource;
|
||||
import com.google.android.exoplayer2.upstream.TransferListener;
|
||||
import java.io.IOException;
|
||||
|
||||
@ -257,7 +256,7 @@ public interface MediaSource {
|
||||
ExoPlayer player,
|
||||
boolean isTopLevelSource,
|
||||
SourceInfoRefreshListener listener,
|
||||
@Nullable TransferListener<? super DataSource> mediaTransferListener);
|
||||
@Nullable TransferListener mediaTransferListener);
|
||||
|
||||
/**
|
||||
* Throws any pending error encountered while loading or refreshing source information.
|
||||
|
@ -20,7 +20,6 @@ import android.support.annotation.Nullable;
|
||||
import com.google.android.exoplayer2.ExoPlayer;
|
||||
import com.google.android.exoplayer2.Timeline;
|
||||
import com.google.android.exoplayer2.upstream.Allocator;
|
||||
import com.google.android.exoplayer2.upstream.DataSource;
|
||||
import com.google.android.exoplayer2.upstream.TransferListener;
|
||||
import java.io.IOException;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -102,7 +101,7 @@ public final class MergingMediaSource extends CompositeMediaSource<Integer> {
|
||||
public void prepareSourceInternal(
|
||||
ExoPlayer player,
|
||||
boolean isTopLevelSource,
|
||||
@Nullable TransferListener<? super DataSource> mediaTransferListener) {
|
||||
@Nullable TransferListener mediaTransferListener) {
|
||||
super.prepareSourceInternal(player, isTopLevelSource, mediaTransferListener);
|
||||
for (int i = 0; i < mediaSources.length; i++) {
|
||||
prepareChildSource(i, mediaSources[i]);
|
||||
|
@ -49,7 +49,7 @@ import java.util.Arrays;
|
||||
|
||||
private final DataSpec dataSpec;
|
||||
private final DataSource.Factory dataSourceFactory;
|
||||
private final @Nullable TransferListener<? super DataSource> transferListener;
|
||||
private final @Nullable TransferListener transferListener;
|
||||
private final int minLoadableRetryCount;
|
||||
private final EventDispatcher eventDispatcher;
|
||||
private final TrackGroupArray tracks;
|
||||
@ -70,7 +70,7 @@ import java.util.Arrays;
|
||||
public SingleSampleMediaPeriod(
|
||||
DataSpec dataSpec,
|
||||
DataSource.Factory dataSourceFactory,
|
||||
@Nullable TransferListener<? super DataSource> transferListener,
|
||||
@Nullable TransferListener transferListener,
|
||||
Format format,
|
||||
long durationUs,
|
||||
int minLoadableRetryCount,
|
||||
|
@ -169,7 +169,7 @@ public final class SingleSampleMediaSource extends BaseMediaSource {
|
||||
private final boolean treatLoadErrorsAsEndOfStream;
|
||||
private final Timeline timeline;
|
||||
|
||||
private @Nullable TransferListener<? super DataSource> transferListener;
|
||||
private @Nullable TransferListener transferListener;
|
||||
|
||||
/**
|
||||
* @param uri The {@link Uri} of the media stream.
|
||||
@ -274,7 +274,7 @@ public final class SingleSampleMediaSource extends BaseMediaSource {
|
||||
public void prepareSourceInternal(
|
||||
ExoPlayer player,
|
||||
boolean isTopLevelSource,
|
||||
@Nullable TransferListener<? super DataSource> mediaTransferListener) {
|
||||
@Nullable TransferListener mediaTransferListener) {
|
||||
transferListener = mediaTransferListener;
|
||||
refreshSourceInfo(timeline, /* manifest= */ null);
|
||||
}
|
||||
|
@ -309,7 +309,7 @@ public final class AdsMediaSource extends CompositeMediaSource<MediaPeriodId> {
|
||||
public void prepareSourceInternal(
|
||||
final ExoPlayer player,
|
||||
boolean isTopLevelSource,
|
||||
@Nullable TransferListener<? super DataSource> mediaTransferListener) {
|
||||
@Nullable TransferListener mediaTransferListener) {
|
||||
super.prepareSourceInternal(player, isTopLevelSource, mediaTransferListener);
|
||||
Assertions.checkArgument(isTopLevelSource);
|
||||
final ComponentListener componentListener = new ComponentListener();
|
||||
|
@ -56,7 +56,7 @@ public final class AssetDataSource extends BaseDataSource {
|
||||
* @param context A context.
|
||||
* @param listener An optional listener.
|
||||
*/
|
||||
public AssetDataSource(Context context, @Nullable TransferListener<? super DataSource> listener) {
|
||||
public AssetDataSource(Context context, @Nullable TransferListener listener) {
|
||||
super(/* isNetwork= */ false);
|
||||
this.assetManager = context.getAssets();
|
||||
if (listener != null) {
|
||||
|
@ -49,7 +49,7 @@ public interface BandwidthMeter {
|
||||
* from data transfers. May be null, if no transfer listener is used.
|
||||
*/
|
||||
@Nullable
|
||||
TransferListener<? super DataSource> getTransferListener();
|
||||
TransferListener getTransferListener();
|
||||
|
||||
/**
|
||||
* Adds an {@link EventListener} to be informed of bandwidth samples.
|
||||
|
@ -29,7 +29,7 @@ import java.util.ArrayList;
|
||||
public abstract class BaseDataSource implements DataSource {
|
||||
|
||||
private final boolean isNetwork;
|
||||
private final ArrayList<TransferListener<? super DataSource>> listeners;
|
||||
private final ArrayList<TransferListener> listeners;
|
||||
|
||||
private @Nullable DataSpec dataSpec;
|
||||
|
||||
@ -44,7 +44,7 @@ public abstract class BaseDataSource implements DataSource {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void addTransferListener(TransferListener<? super DataSource> transferListener) {
|
||||
public final void addTransferListener(TransferListener transferListener) {
|
||||
listeners.add(transferListener);
|
||||
}
|
||||
|
||||
|
@ -60,8 +60,7 @@ public final class ContentDataSource extends BaseDataSource {
|
||||
* @param context A context.
|
||||
* @param listener An optional listener.
|
||||
*/
|
||||
public ContentDataSource(
|
||||
Context context, @Nullable TransferListener<? super DataSource> listener) {
|
||||
public ContentDataSource(Context context, @Nullable TransferListener listener) {
|
||||
super(/* isNetwork= */ false);
|
||||
this.resolver = context.getContentResolver();
|
||||
if (listener != null) {
|
||||
|
@ -44,7 +44,7 @@ public interface DataSource {
|
||||
*
|
||||
* @param transferListener A {@link TransferListener}.
|
||||
*/
|
||||
default void addTransferListener(TransferListener<? super DataSource> transferListener) {
|
||||
default void addTransferListener(TransferListener transferListener) {
|
||||
// TODO: Make non-default once all DataSources implement this method.
|
||||
}
|
||||
|
||||
|
@ -26,7 +26,7 @@ import com.google.android.exoplayer2.util.SlidingPercentile;
|
||||
* Estimates bandwidth by listening to data transfers. The bandwidth estimate is calculated using a
|
||||
* {@link SlidingPercentile} and is updated each time a transfer ends.
|
||||
*/
|
||||
public final class DefaultBandwidthMeter implements BandwidthMeter, TransferListener<Object> {
|
||||
public final class DefaultBandwidthMeter implements BandwidthMeter, TransferListener {
|
||||
|
||||
/** Default initial bitrate estimate in bits per second. */
|
||||
public static final long DEFAULT_INITIAL_BITRATE_ESTIMATE = 1_000_000;
|
||||
@ -169,7 +169,7 @@ public final class DefaultBandwidthMeter implements BandwidthMeter, TransferList
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable TransferListener<? super DataSource> getTransferListener() {
|
||||
public @Nullable TransferListener getTransferListener() {
|
||||
return this;
|
||||
}
|
||||
|
||||
@ -184,12 +184,13 @@ public final class DefaultBandwidthMeter implements BandwidthMeter, TransferList
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTransferInitializing(Object source, DataSpec dataSpec, boolean isNetwork) {
|
||||
public void onTransferInitializing(DataSource source, DataSpec dataSpec, boolean isNetwork) {
|
||||
// Do nothing.
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized void onTransferStart(Object source, DataSpec dataSpec, boolean isNetwork) {
|
||||
public synchronized void onTransferStart(
|
||||
DataSource source, DataSpec dataSpec, boolean isNetwork) {
|
||||
if (!isNetwork) {
|
||||
return;
|
||||
}
|
||||
@ -201,7 +202,7 @@ public final class DefaultBandwidthMeter implements BandwidthMeter, TransferList
|
||||
|
||||
@Override
|
||||
public synchronized void onBytesTransferred(
|
||||
Object source, DataSpec dataSpec, boolean isNetwork, int bytes) {
|
||||
DataSource source, DataSpec dataSpec, boolean isNetwork, int bytes) {
|
||||
if (!isNetwork) {
|
||||
return;
|
||||
}
|
||||
@ -209,7 +210,7 @@ public final class DefaultBandwidthMeter implements BandwidthMeter, TransferList
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized void onTransferEnd(Object source, DataSpec dataSpec, boolean isNetwork) {
|
||||
public synchronized void onTransferEnd(DataSource source, DataSpec dataSpec, boolean isNetwork) {
|
||||
if (!isNetwork) {
|
||||
return;
|
||||
}
|
||||
|
@ -57,7 +57,7 @@ public final class DefaultDataSource implements DataSource {
|
||||
private static final String SCHEME_RAW = RawResourceDataSource.RAW_RESOURCE_SCHEME;
|
||||
|
||||
private final Context context;
|
||||
private final List<TransferListener<? super DataSource>> transferListeners;
|
||||
private final List<TransferListener> transferListeners;
|
||||
private final DataSource baseDataSource;
|
||||
|
||||
// Lazily initialized.
|
||||
@ -81,7 +81,7 @@ public final class DefaultDataSource implements DataSource {
|
||||
*/
|
||||
public DefaultDataSource(
|
||||
Context context,
|
||||
@Nullable TransferListener<? super DataSource> listener,
|
||||
@Nullable TransferListener listener,
|
||||
String userAgent,
|
||||
boolean allowCrossProtocolRedirects) {
|
||||
this(context, listener, userAgent, DefaultHttpDataSource.DEFAULT_CONNECT_TIMEOUT_MILLIS,
|
||||
@ -103,7 +103,7 @@ public final class DefaultDataSource implements DataSource {
|
||||
*/
|
||||
public DefaultDataSource(
|
||||
Context context,
|
||||
@Nullable TransferListener<? super DataSource> listener,
|
||||
@Nullable TransferListener listener,
|
||||
String userAgent,
|
||||
int connectTimeoutMillis,
|
||||
int readTimeoutMillis,
|
||||
@ -123,9 +123,7 @@ public final class DefaultDataSource implements DataSource {
|
||||
* content. This {@link DataSource} should normally support at least http(s).
|
||||
*/
|
||||
public DefaultDataSource(
|
||||
Context context,
|
||||
@Nullable TransferListener<? super DataSource> listener,
|
||||
DataSource baseDataSource) {
|
||||
Context context, @Nullable TransferListener listener, DataSource baseDataSource) {
|
||||
this.context = context.getApplicationContext();
|
||||
this.baseDataSource = Assertions.checkNotNull(baseDataSource);
|
||||
transferListeners = new ArrayList<>();
|
||||
@ -135,7 +133,7 @@ public final class DefaultDataSource implements DataSource {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addTransferListener(TransferListener<? super DataSource> transferListener) {
|
||||
public void addTransferListener(TransferListener transferListener) {
|
||||
baseDataSource.addTransferListener(transferListener);
|
||||
transferListeners.add(transferListener);
|
||||
maybeAddListenerToDataSource(fileDataSource, transferListener);
|
||||
@ -271,7 +269,7 @@ public final class DefaultDataSource implements DataSource {
|
||||
}
|
||||
|
||||
private void maybeAddListenerToDataSource(
|
||||
@Nullable DataSource dataSource, TransferListener<? super DataSource> listener) {
|
||||
@Nullable DataSource dataSource, TransferListener listener) {
|
||||
if (dataSource != null) {
|
||||
dataSource.addTransferListener(listener);
|
||||
}
|
||||
|
@ -26,7 +26,7 @@ import com.google.android.exoplayer2.upstream.DataSource.Factory;
|
||||
public final class DefaultDataSourceFactory implements Factory {
|
||||
|
||||
private final Context context;
|
||||
private final @Nullable TransferListener<? super DataSource> listener;
|
||||
private final @Nullable TransferListener listener;
|
||||
private final DataSource.Factory baseDataSourceFactory;
|
||||
|
||||
/**
|
||||
@ -43,7 +43,7 @@ public final class DefaultDataSourceFactory implements Factory {
|
||||
* @param listener An optional listener.
|
||||
*/
|
||||
public DefaultDataSourceFactory(
|
||||
Context context, String userAgent, @Nullable TransferListener<? super DataSource> listener) {
|
||||
Context context, String userAgent, @Nullable TransferListener listener) {
|
||||
this(context, listener, new DefaultHttpDataSourceFactory(userAgent, listener));
|
||||
}
|
||||
|
||||
@ -66,7 +66,7 @@ public final class DefaultDataSourceFactory implements Factory {
|
||||
*/
|
||||
public DefaultDataSourceFactory(
|
||||
Context context,
|
||||
@Nullable TransferListener<? super DataSource> listener,
|
||||
@Nullable TransferListener listener,
|
||||
DataSource.Factory baseDataSourceFactory) {
|
||||
this.context = context.getApplicationContext();
|
||||
this.listener = listener;
|
||||
|
@ -105,7 +105,7 @@ public class DefaultHttpDataSource extends BaseDataSource implements HttpDataSou
|
||||
public DefaultHttpDataSource(
|
||||
String userAgent,
|
||||
@Nullable Predicate<String> contentTypePredicate,
|
||||
@Nullable TransferListener<? super DataSource> listener) {
|
||||
@Nullable TransferListener listener) {
|
||||
this(userAgent, contentTypePredicate, listener, DEFAULT_CONNECT_TIMEOUT_MILLIS,
|
||||
DEFAULT_READ_TIMEOUT_MILLIS);
|
||||
}
|
||||
@ -124,7 +124,7 @@ public class DefaultHttpDataSource extends BaseDataSource implements HttpDataSou
|
||||
public DefaultHttpDataSource(
|
||||
String userAgent,
|
||||
@Nullable Predicate<String> contentTypePredicate,
|
||||
@Nullable TransferListener<? super DataSource> listener,
|
||||
@Nullable TransferListener listener,
|
||||
int connectTimeoutMillis,
|
||||
int readTimeoutMillis) {
|
||||
this(userAgent, contentTypePredicate, listener, connectTimeoutMillis, readTimeoutMillis, false,
|
||||
@ -150,7 +150,7 @@ public class DefaultHttpDataSource extends BaseDataSource implements HttpDataSou
|
||||
public DefaultHttpDataSource(
|
||||
String userAgent,
|
||||
@Nullable Predicate<String> contentTypePredicate,
|
||||
@Nullable TransferListener<? super DataSource> listener,
|
||||
@Nullable TransferListener listener,
|
||||
int connectTimeoutMillis,
|
||||
int readTimeoutMillis,
|
||||
boolean allowCrossProtocolRedirects,
|
||||
|
@ -23,7 +23,7 @@ import com.google.android.exoplayer2.upstream.HttpDataSource.Factory;
|
||||
public final class DefaultHttpDataSourceFactory extends BaseFactory {
|
||||
|
||||
private final String userAgent;
|
||||
private final @Nullable TransferListener<? super DataSource> listener;
|
||||
private final @Nullable TransferListener listener;
|
||||
private final int connectTimeoutMillis;
|
||||
private final int readTimeoutMillis;
|
||||
private final boolean allowCrossProtocolRedirects;
|
||||
@ -50,8 +50,7 @@ public final class DefaultHttpDataSourceFactory extends BaseFactory {
|
||||
* @param listener An optional listener.
|
||||
* @see #DefaultHttpDataSourceFactory(String, TransferListener, int, int, boolean)
|
||||
*/
|
||||
public DefaultHttpDataSourceFactory(
|
||||
String userAgent, @Nullable TransferListener<? super DataSource> listener) {
|
||||
public DefaultHttpDataSourceFactory(String userAgent, @Nullable TransferListener listener) {
|
||||
this(userAgent, listener, DefaultHttpDataSource.DEFAULT_CONNECT_TIMEOUT_MILLIS,
|
||||
DefaultHttpDataSource.DEFAULT_READ_TIMEOUT_MILLIS, false);
|
||||
}
|
||||
@ -90,7 +89,7 @@ public final class DefaultHttpDataSourceFactory extends BaseFactory {
|
||||
*/
|
||||
public DefaultHttpDataSourceFactory(
|
||||
String userAgent,
|
||||
@Nullable TransferListener<? super DataSource> listener,
|
||||
@Nullable TransferListener listener,
|
||||
int connectTimeoutMillis,
|
||||
int readTimeoutMillis,
|
||||
boolean allowCrossProtocolRedirects) {
|
||||
|
@ -46,7 +46,7 @@ public final class FileDataSource extends BaseDataSource {
|
||||
}
|
||||
|
||||
/** @param listener An optional listener. */
|
||||
public FileDataSource(@Nullable TransferListener<? super DataSource> listener) {
|
||||
public FileDataSource(@Nullable TransferListener listener) {
|
||||
super(/* isNetwork= */ false);
|
||||
if (listener != null) {
|
||||
addTransferListener(listener);
|
||||
|
@ -22,13 +22,13 @@ import android.support.annotation.Nullable;
|
||||
*/
|
||||
public final class FileDataSourceFactory implements DataSource.Factory {
|
||||
|
||||
private final @Nullable TransferListener<? super DataSource> listener;
|
||||
private final @Nullable TransferListener listener;
|
||||
|
||||
public FileDataSourceFactory() {
|
||||
this(null);
|
||||
}
|
||||
|
||||
public FileDataSourceFactory(@Nullable TransferListener<? super DataSource> listener) {
|
||||
public FileDataSourceFactory(@Nullable TransferListener listener) {
|
||||
this.listener = listener;
|
||||
}
|
||||
|
||||
|
@ -54,7 +54,7 @@ public final class PriorityDataSource implements DataSource {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addTransferListener(TransferListener<? super DataSource> transferListener) {
|
||||
public void addTransferListener(TransferListener transferListener) {
|
||||
upstream.addTransferListener(transferListener);
|
||||
}
|
||||
|
||||
|
@ -81,8 +81,7 @@ public final class RawResourceDataSource extends BaseDataSource {
|
||||
* @param context A context.
|
||||
* @param listener An optional listener.
|
||||
*/
|
||||
public RawResourceDataSource(
|
||||
Context context, @Nullable TransferListener<? super DataSource> listener) {
|
||||
public RawResourceDataSource(Context context, @Nullable TransferListener listener) {
|
||||
super(/* isNetwork= */ false);
|
||||
this.resources = context.getResources();
|
||||
if (listener != null) {
|
||||
|
@ -71,7 +71,7 @@ public final class StatsDataSource implements DataSource {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addTransferListener(TransferListener<? super DataSource> transferListener) {
|
||||
public void addTransferListener(TransferListener transferListener) {
|
||||
dataSource.addTransferListener(transferListener);
|
||||
}
|
||||
|
||||
|
@ -44,7 +44,7 @@ public final class TeeDataSource implements DataSource {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addTransferListener(TransferListener<? super DataSource> transferListener) {
|
||||
public void addTransferListener(TransferListener transferListener) {
|
||||
upstream.addTransferListener(transferListener);
|
||||
}
|
||||
|
||||
|
@ -22,20 +22,20 @@ package com.google.android.exoplayer2.upstream;
|
||||
*
|
||||
* <ol>
|
||||
* <li>Initializing the underlying resource (e.g. opening a HTTP connection). {@link
|
||||
* #onTransferInitializing(Object, DataSpec, boolean)} is called before the initialization
|
||||
* #onTransferInitializing(DataSource, DataSpec, boolean)} is called before the initialization
|
||||
* starts.
|
||||
* <li>Starting the transfer after successfully initializing the resource. {@link
|
||||
* #onTransferStart(Object, DataSpec, boolean)} is called. Note that this only happens if the
|
||||
* initialization was successful.
|
||||
* <li>Transferring data. {@link #onBytesTransferred(Object, DataSpec, boolean, int)} is called
|
||||
* frequently during the transfer to indicate progress.
|
||||
* <li>Closing the transfer and the underlying resource. {@link #onTransferEnd(Object, DataSpec,
|
||||
* boolean)} is called. Note that each {@link #onTransferStart(Object, DataSpec, boolean)}
|
||||
* will have exactly one corresponding call to {@link #onTransferEnd(Object, DataSpec,
|
||||
* boolean)}.
|
||||
* #onTransferStart(DataSource, DataSpec, boolean)} is called. Note that this only happens if
|
||||
* the initialization was successful.
|
||||
* <li>Transferring data. {@link #onBytesTransferred(DataSource, DataSpec, boolean, int)} is
|
||||
* called frequently during the transfer to indicate progress.
|
||||
* <li>Closing the transfer and the underlying resource. {@link #onTransferEnd(DataSource,
|
||||
* DataSpec, boolean)} is called. Note that each {@link #onTransferStart(DataSource, DataSpec,
|
||||
* boolean)} will have exactly one corresponding call to {@link #onTransferEnd(DataSource,
|
||||
* DataSpec, boolean)}.
|
||||
* </ol>
|
||||
*/
|
||||
public interface TransferListener<S> {
|
||||
public interface TransferListener {
|
||||
|
||||
/**
|
||||
* Called when a transfer is being initialized.
|
||||
@ -44,7 +44,7 @@ public interface TransferListener<S> {
|
||||
* @param dataSpec Describes the data for which the transfer is initialized.
|
||||
* @param isNetwork Whether the data is transferred through a network.
|
||||
*/
|
||||
void onTransferInitializing(S source, DataSpec dataSpec, boolean isNetwork);
|
||||
void onTransferInitializing(DataSource source, DataSpec dataSpec, boolean isNetwork);
|
||||
|
||||
/**
|
||||
* Called when a transfer starts.
|
||||
@ -53,7 +53,7 @@ public interface TransferListener<S> {
|
||||
* @param dataSpec Describes the data being transferred.
|
||||
* @param isNetwork Whether the data is transferred through a network.
|
||||
*/
|
||||
void onTransferStart(S source, DataSpec dataSpec, boolean isNetwork);
|
||||
void onTransferStart(DataSource source, DataSpec dataSpec, boolean isNetwork);
|
||||
|
||||
/**
|
||||
* Called incrementally during a transfer.
|
||||
@ -63,7 +63,8 @@ public interface TransferListener<S> {
|
||||
* @param isNetwork Whether the data is transferred through a network.
|
||||
* @param bytesTransferred The number of bytes transferred since the previous call to this method
|
||||
*/
|
||||
void onBytesTransferred(S source, DataSpec dataSpec, boolean isNetwork, int bytesTransferred);
|
||||
void onBytesTransferred(
|
||||
DataSource source, DataSpec dataSpec, boolean isNetwork, int bytesTransferred);
|
||||
|
||||
/**
|
||||
* Called when a transfer ends.
|
||||
@ -72,5 +73,5 @@ public interface TransferListener<S> {
|
||||
* @param dataSpec Describes the data being transferred.
|
||||
* @param isNetwork Whether the data is transferred through a network.
|
||||
*/
|
||||
void onTransferEnd(S source, DataSpec dataSpec, boolean isNetwork);
|
||||
void onTransferEnd(DataSource source, DataSpec dataSpec, boolean isNetwork);
|
||||
}
|
||||
|
@ -64,7 +64,7 @@ public final class UdpDataSource extends BaseDataSource {
|
||||
private int packetRemaining;
|
||||
|
||||
/** @param listener An optional listener. */
|
||||
public UdpDataSource(@Nullable TransferListener<? super DataSource> listener) {
|
||||
public UdpDataSource(@Nullable TransferListener listener) {
|
||||
this(listener, DEFAULT_MAX_PACKET_SIZE);
|
||||
}
|
||||
|
||||
@ -72,7 +72,7 @@ public final class UdpDataSource extends BaseDataSource {
|
||||
* @param listener An optional listener.
|
||||
* @param maxPacketSize The maximum datagram packet size, in bytes.
|
||||
*/
|
||||
public UdpDataSource(@Nullable TransferListener<? super DataSource> listener, int maxPacketSize) {
|
||||
public UdpDataSource(@Nullable TransferListener listener, int maxPacketSize) {
|
||||
this(listener, maxPacketSize, DEAFULT_SOCKET_TIMEOUT_MILLIS);
|
||||
}
|
||||
|
||||
@ -83,9 +83,7 @@ public final class UdpDataSource extends BaseDataSource {
|
||||
* as an infinite timeout.
|
||||
*/
|
||||
public UdpDataSource(
|
||||
@Nullable TransferListener<? super DataSource> listener,
|
||||
int maxPacketSize,
|
||||
int socketTimeoutMillis) {
|
||||
@Nullable TransferListener listener, int maxPacketSize, int socketTimeoutMillis) {
|
||||
super(/* isNetwork= */ true);
|
||||
this.socketTimeoutMillis = socketTimeoutMillis;
|
||||
packetBuffer = new byte[maxPacketSize];
|
||||
|
@ -258,7 +258,7 @@ public final class CacheDataSource implements DataSource {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addTransferListener(TransferListener<? super DataSource> transferListener) {
|
||||
public void addTransferListener(TransferListener transferListener) {
|
||||
cacheReadDataSource.addTransferListener(transferListener);
|
||||
upstreamDataSource.addTransferListener(transferListener);
|
||||
}
|
||||
|
@ -42,7 +42,7 @@ public final class AesCipherDataSource implements DataSource {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addTransferListener(TransferListener<? super DataSource> transferListener) {
|
||||
public void addTransferListener(TransferListener transferListener) {
|
||||
upstream.addTransferListener(transferListener);
|
||||
}
|
||||
|
||||
|
@ -45,7 +45,6 @@ import com.google.android.exoplayer2.testutil.FakeTrackSelection;
|
||||
import com.google.android.exoplayer2.testutil.FakeTrackSelector;
|
||||
import com.google.android.exoplayer2.testutil.RobolectricUtil;
|
||||
import com.google.android.exoplayer2.upstream.Allocator;
|
||||
import com.google.android.exoplayer2.upstream.DataSource;
|
||||
import com.google.android.exoplayer2.upstream.TransferListener;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
@ -234,7 +233,7 @@ public final class ExoPlayerTest {
|
||||
public synchronized void prepareSourceInternal(
|
||||
ExoPlayer player,
|
||||
boolean isTopLevelSource,
|
||||
@Nullable TransferListener<? super DataSource> mediaTransferListener) {
|
||||
@Nullable TransferListener mediaTransferListener) {
|
||||
super.prepareSourceInternal(player, isTopLevelSource, mediaTransferListener);
|
||||
// We've queued a source info refresh on the playback thread's event queue. Allow the
|
||||
// test thread to prepare the player with the third source, and block this thread (the
|
||||
@ -582,7 +581,7 @@ public final class ExoPlayerTest {
|
||||
TrackGroupArray trackGroupArray,
|
||||
Allocator allocator,
|
||||
EventDispatcher eventDispatcher,
|
||||
@Nullable TransferListener<? super DataSource> transferListener) {
|
||||
@Nullable TransferListener transferListener) {
|
||||
FakeMediaPeriod mediaPeriod = new FakeMediaPeriod(trackGroupArray, eventDispatcher);
|
||||
mediaPeriod.setSeekToUsOffset(10);
|
||||
return mediaPeriod;
|
||||
@ -617,7 +616,7 @@ public final class ExoPlayerTest {
|
||||
TrackGroupArray trackGroupArray,
|
||||
Allocator allocator,
|
||||
EventDispatcher eventDispatcher,
|
||||
@Nullable TransferListener<? super DataSource> transferListener) {
|
||||
@Nullable TransferListener transferListener) {
|
||||
FakeMediaPeriod mediaPeriod = new FakeMediaPeriod(trackGroupArray, eventDispatcher);
|
||||
mediaPeriod.setDiscontinuityPositionUs(10);
|
||||
return mediaPeriod;
|
||||
@ -643,7 +642,7 @@ public final class ExoPlayerTest {
|
||||
TrackGroupArray trackGroupArray,
|
||||
Allocator allocator,
|
||||
EventDispatcher eventDispatcher,
|
||||
@Nullable TransferListener<? super DataSource> transferListener) {
|
||||
@Nullable TransferListener transferListener) {
|
||||
FakeMediaPeriod mediaPeriod = new FakeMediaPeriod(trackGroupArray, eventDispatcher);
|
||||
mediaPeriod.setDiscontinuityPositionUs(0);
|
||||
return mediaPeriod;
|
||||
@ -880,7 +879,7 @@ public final class ExoPlayerTest {
|
||||
TrackGroupArray trackGroupArray,
|
||||
Allocator allocator,
|
||||
EventDispatcher eventDispatcher,
|
||||
@Nullable TransferListener<? super DataSource> transferListener) {
|
||||
@Nullable TransferListener transferListener) {
|
||||
// Defer completing preparation of the period until playback parameters have been set.
|
||||
fakeMediaPeriodHolder[0] =
|
||||
new FakeMediaPeriod(trackGroupArray, eventDispatcher, /* deferOnPrepared= */ true);
|
||||
|
@ -37,7 +37,6 @@ import com.google.android.exoplayer2.testutil.MediaSourceTestRunner;
|
||||
import com.google.android.exoplayer2.testutil.RobolectricUtil;
|
||||
import com.google.android.exoplayer2.testutil.TimelineAsserts;
|
||||
import com.google.android.exoplayer2.upstream.Allocator;
|
||||
import com.google.android.exoplayer2.upstream.DataSource;
|
||||
import com.google.android.exoplayer2.upstream.TransferListener;
|
||||
import java.io.IOException;
|
||||
import org.junit.Before;
|
||||
@ -481,7 +480,7 @@ public final class ClippingMediaSourceTest {
|
||||
TrackGroupArray trackGroupArray,
|
||||
Allocator allocator,
|
||||
EventDispatcher eventDispatcher,
|
||||
@Nullable TransferListener<? super DataSource> transferListener) {
|
||||
@Nullable TransferListener transferListener) {
|
||||
eventDispatcher.downstreamFormatChanged(
|
||||
new MediaLoadData(
|
||||
C.DATA_TYPE_MEDIA,
|
||||
|
@ -117,7 +117,7 @@ public class BaseDataSourceTest {
|
||||
}
|
||||
}
|
||||
|
||||
private static final class TestTransferListener implements TransferListener<DataSource> {
|
||||
private static final class TestTransferListener implements TransferListener {
|
||||
|
||||
public Object lastTransferInitializingSource;
|
||||
public DataSpec lastTransferInitializingDataSpec;
|
||||
|
@ -21,7 +21,6 @@ import com.google.android.exoplayer2.source.chunk.ChunkSource;
|
||||
import com.google.android.exoplayer2.source.dash.PlayerEmsgHandler.PlayerTrackEmsgHandler;
|
||||
import com.google.android.exoplayer2.source.dash.manifest.DashManifest;
|
||||
import com.google.android.exoplayer2.trackselection.TrackSelection;
|
||||
import com.google.android.exoplayer2.upstream.DataSource;
|
||||
import com.google.android.exoplayer2.upstream.LoaderErrorThrower;
|
||||
import com.google.android.exoplayer2.upstream.TransferListener;
|
||||
|
||||
@ -61,7 +60,7 @@ public interface DashChunkSource extends ChunkSource {
|
||||
boolean enableEventMessageTrack,
|
||||
boolean enableCea608Track,
|
||||
@Nullable PlayerTrackEmsgHandler playerEmsgHandler,
|
||||
@Nullable TransferListener<? super DataSource> transferListener);
|
||||
@Nullable TransferListener transferListener);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -42,7 +42,6 @@ import com.google.android.exoplayer2.source.dash.manifest.Period;
|
||||
import com.google.android.exoplayer2.source.dash.manifest.Representation;
|
||||
import com.google.android.exoplayer2.trackselection.TrackSelection;
|
||||
import com.google.android.exoplayer2.upstream.Allocator;
|
||||
import com.google.android.exoplayer2.upstream.DataSource;
|
||||
import com.google.android.exoplayer2.upstream.LoaderErrorThrower;
|
||||
import com.google.android.exoplayer2.upstream.TransferListener;
|
||||
import com.google.android.exoplayer2.util.MimeTypes;
|
||||
@ -62,7 +61,7 @@ import java.util.List;
|
||||
|
||||
/* package */ final int id;
|
||||
private final DashChunkSource.Factory chunkSourceFactory;
|
||||
private final @Nullable TransferListener<? super DataSource> transferListener;
|
||||
private final @Nullable TransferListener transferListener;
|
||||
private final int minLoadableRetryCount;
|
||||
private final long elapsedRealtimeOffset;
|
||||
private final LoaderErrorThrower manifestLoaderErrorThrower;
|
||||
@ -89,7 +88,7 @@ import java.util.List;
|
||||
DashManifest manifest,
|
||||
int periodIndex,
|
||||
DashChunkSource.Factory chunkSourceFactory,
|
||||
@Nullable TransferListener<? super DataSource> transferListener,
|
||||
@Nullable TransferListener transferListener,
|
||||
int minLoadableRetryCount,
|
||||
EventDispatcher eventDispatcher,
|
||||
long elapsedRealtimeOffset,
|
||||
|
@ -344,7 +344,7 @@ public final class DashMediaSource extends BaseMediaSource {
|
||||
|
||||
private DataSource dataSource;
|
||||
private Loader loader;
|
||||
private @Nullable TransferListener<? super DataSource> mediaTransferListener;
|
||||
private @Nullable TransferListener mediaTransferListener;
|
||||
|
||||
private IOException manifestFatalError;
|
||||
private Handler handler;
|
||||
@ -596,7 +596,7 @@ public final class DashMediaSource extends BaseMediaSource {
|
||||
public void prepareSourceInternal(
|
||||
ExoPlayer player,
|
||||
boolean isTopLevelSource,
|
||||
@Nullable TransferListener<? super DataSource> mediaTransferListener) {
|
||||
@Nullable TransferListener mediaTransferListener) {
|
||||
this.mediaTransferListener = mediaTransferListener;
|
||||
if (sideloadedManifest) {
|
||||
processManifest(false);
|
||||
|
@ -89,7 +89,7 @@ public class DefaultDashChunkSource implements DashChunkSource {
|
||||
boolean enableEventMessageTrack,
|
||||
boolean enableCea608Track,
|
||||
@Nullable PlayerTrackEmsgHandler playerEmsgHandler,
|
||||
@Nullable TransferListener<? super DataSource> transferListener) {
|
||||
@Nullable TransferListener transferListener) {
|
||||
DataSource dataSource = dataSourceFactory.createDataSource();
|
||||
if (transferListener != null) {
|
||||
dataSource.addTransferListener(transferListener);
|
||||
|
@ -65,7 +65,7 @@ import javax.crypto.spec.SecretKeySpec;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addTransferListener(TransferListener<? super DataSource> transferListener) {
|
||||
public void addTransferListener(TransferListener transferListener) {
|
||||
upstream.addTransferListener(transferListener);
|
||||
}
|
||||
|
||||
|
@ -129,7 +129,7 @@ import java.util.List;
|
||||
HlsPlaylistTracker playlistTracker,
|
||||
HlsUrl[] variants,
|
||||
HlsDataSourceFactory dataSourceFactory,
|
||||
@Nullable TransferListener<? super DataSource> mediaTransferListener,
|
||||
@Nullable TransferListener mediaTransferListener,
|
||||
TimestampAdjusterProvider timestampAdjusterProvider,
|
||||
List<Format> muxedCaptionFormats) {
|
||||
this.extractorFactory = extractorFactory;
|
||||
|
@ -55,7 +55,7 @@ public final class HlsMediaPeriod implements MediaPeriod, HlsSampleStreamWrapper
|
||||
private final HlsExtractorFactory extractorFactory;
|
||||
private final HlsPlaylistTracker playlistTracker;
|
||||
private final HlsDataSourceFactory dataSourceFactory;
|
||||
private final @Nullable TransferListener<? super DataSource> mediaTransferListener;
|
||||
private final @Nullable TransferListener mediaTransferListener;
|
||||
private final LoadErrorHandlingPolicy<Chunk> chunkLoadErrorHandlingPolicy;
|
||||
private final int minLoadableRetryCount;
|
||||
private final EventDispatcher eventDispatcher;
|
||||
@ -94,7 +94,7 @@ public final class HlsMediaPeriod implements MediaPeriod, HlsSampleStreamWrapper
|
||||
HlsExtractorFactory extractorFactory,
|
||||
HlsPlaylistTracker playlistTracker,
|
||||
HlsDataSourceFactory dataSourceFactory,
|
||||
@Nullable TransferListener<? super DataSource> mediaTransferListener,
|
||||
@Nullable TransferListener mediaTransferListener,
|
||||
LoadErrorHandlingPolicy<Chunk> chunkLoadErrorHandlingPolicy,
|
||||
int minLoadableRetryCount,
|
||||
EventDispatcher eventDispatcher,
|
||||
|
@ -287,7 +287,7 @@ public final class HlsMediaSource extends BaseMediaSource
|
||||
private final HlsPlaylistTracker playlistTracker;
|
||||
private final @Nullable Object tag;
|
||||
|
||||
private @Nullable TransferListener<? super DataSource> mediaTransferListener;
|
||||
private @Nullable TransferListener mediaTransferListener;
|
||||
|
||||
/**
|
||||
* @param manifestUri The {@link Uri} of the HLS manifest.
|
||||
@ -402,7 +402,7 @@ public final class HlsMediaSource extends BaseMediaSource
|
||||
public void prepareSourceInternal(
|
||||
ExoPlayer player,
|
||||
boolean isTopLevelSource,
|
||||
@Nullable TransferListener<? super DataSource> mediaTransferListener) {
|
||||
@Nullable TransferListener mediaTransferListener) {
|
||||
this.mediaTransferListener = mediaTransferListener;
|
||||
EventDispatcher eventDispatcher = createEventDispatcher(/* mediaPeriodId= */ null);
|
||||
playlistTracker.start(manifestUri, eventDispatcher, /* listener= */ this);
|
||||
|
@ -61,7 +61,7 @@ public class DefaultSsChunkSource implements SsChunkSource {
|
||||
int elementIndex,
|
||||
TrackSelection trackSelection,
|
||||
TrackEncryptionBox[] trackEncryptionBoxes,
|
||||
@Nullable TransferListener<? super DataSource> transferListener) {
|
||||
@Nullable TransferListener transferListener) {
|
||||
DataSource dataSource = dataSourceFactory.createDataSource();
|
||||
if (transferListener != null) {
|
||||
dataSource.addTransferListener(transferListener);
|
||||
|
@ -20,7 +20,6 @@ import com.google.android.exoplayer2.extractor.mp4.TrackEncryptionBox;
|
||||
import com.google.android.exoplayer2.source.chunk.ChunkSource;
|
||||
import com.google.android.exoplayer2.source.smoothstreaming.manifest.SsManifest;
|
||||
import com.google.android.exoplayer2.trackselection.TrackSelection;
|
||||
import com.google.android.exoplayer2.upstream.DataSource;
|
||||
import com.google.android.exoplayer2.upstream.LoaderErrorThrower;
|
||||
import com.google.android.exoplayer2.upstream.TransferListener;
|
||||
|
||||
@ -50,7 +49,7 @@ public interface SsChunkSource extends ChunkSource {
|
||||
int streamElementIndex,
|
||||
TrackSelection trackSelection,
|
||||
TrackEncryptionBox[] trackEncryptionBoxes,
|
||||
@Nullable TransferListener<? super DataSource> transferListener);
|
||||
@Nullable TransferListener transferListener);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -32,7 +32,6 @@ import com.google.android.exoplayer2.source.smoothstreaming.manifest.SsManifest;
|
||||
import com.google.android.exoplayer2.source.smoothstreaming.manifest.SsManifest.ProtectionElement;
|
||||
import com.google.android.exoplayer2.trackselection.TrackSelection;
|
||||
import com.google.android.exoplayer2.upstream.Allocator;
|
||||
import com.google.android.exoplayer2.upstream.DataSource;
|
||||
import com.google.android.exoplayer2.upstream.LoaderErrorThrower;
|
||||
import com.google.android.exoplayer2.upstream.TransferListener;
|
||||
import java.io.IOException;
|
||||
@ -47,7 +46,7 @@ import java.util.ArrayList;
|
||||
private static final int INITIALIZATION_VECTOR_SIZE = 8;
|
||||
|
||||
private final SsChunkSource.Factory chunkSourceFactory;
|
||||
private final @Nullable TransferListener<? super DataSource> transferListener;
|
||||
private final @Nullable TransferListener transferListener;
|
||||
private final LoaderErrorThrower manifestLoaderErrorThrower;
|
||||
private final int minLoadableRetryCount;
|
||||
private final EventDispatcher eventDispatcher;
|
||||
@ -65,7 +64,7 @@ import java.util.ArrayList;
|
||||
public SsMediaPeriod(
|
||||
SsManifest manifest,
|
||||
SsChunkSource.Factory chunkSourceFactory,
|
||||
@Nullable TransferListener<? super DataSource> transferListener,
|
||||
@Nullable TransferListener transferListener,
|
||||
CompositeSequenceableLoaderFactory compositeSequenceableLoaderFactory,
|
||||
int minLoadableRetryCount,
|
||||
EventDispatcher eventDispatcher,
|
||||
|
@ -295,7 +295,7 @@ public final class SsMediaSource extends BaseMediaSource
|
||||
private DataSource manifestDataSource;
|
||||
private Loader manifestLoader;
|
||||
private LoaderErrorThrower manifestLoaderErrorThrower;
|
||||
private @Nullable TransferListener<? super DataSource> mediaTransferListener;
|
||||
private @Nullable TransferListener mediaTransferListener;
|
||||
|
||||
private long manifestLoadStartTimestamp;
|
||||
private SsManifest manifest;
|
||||
@ -477,7 +477,7 @@ public final class SsMediaSource extends BaseMediaSource
|
||||
public void prepareSourceInternal(
|
||||
ExoPlayer player,
|
||||
boolean isTopLevelSource,
|
||||
@Nullable TransferListener<? super DataSource> mediaTransferListener) {
|
||||
@Nullable TransferListener mediaTransferListener) {
|
||||
this.mediaTransferListener = mediaTransferListener;
|
||||
if (sideloadedManifest) {
|
||||
manifestLoaderErrorThrower = new LoaderErrorThrower.Dummy();
|
||||
|
@ -307,8 +307,8 @@ public final class DashTestRunner {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected MediaSource buildSource(HostActivity host, String userAgent,
|
||||
TransferListener<? super DataSource> mediaTransferListener) {
|
||||
protected MediaSource buildSource(
|
||||
HostActivity host, String userAgent, TransferListener mediaTransferListener) {
|
||||
DataSource.Factory manifestDataSourceFactory = dataSourceFactory != null
|
||||
? dataSourceFactory : new DefaultDataSourceFactory(host, userAgent);
|
||||
DataSource.Factory mediaDataSourceFactory = dataSourceFactory != null
|
||||
|
@ -41,7 +41,6 @@ import com.google.android.exoplayer2.trackselection.AdaptiveTrackSelection;
|
||||
import com.google.android.exoplayer2.trackselection.DefaultTrackSelector;
|
||||
import com.google.android.exoplayer2.trackselection.MappingTrackSelector;
|
||||
import com.google.android.exoplayer2.upstream.BandwidthMeter;
|
||||
import com.google.android.exoplayer2.upstream.DataSource;
|
||||
import com.google.android.exoplayer2.upstream.DefaultBandwidthMeter;
|
||||
import com.google.android.exoplayer2.upstream.TransferListener;
|
||||
import com.google.android.exoplayer2.util.Clock;
|
||||
@ -377,8 +376,8 @@ public abstract class ExoHostedTest
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
protected abstract MediaSource buildSource(HostActivity host, String userAgent,
|
||||
TransferListener<? super DataSource> mediaTransferListener);
|
||||
protected abstract MediaSource buildSource(
|
||||
HostActivity host, String userAgent, TransferListener mediaTransferListener);
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
protected void onPlayerErrorInternal(ExoPlaybackException error) {
|
||||
|
@ -25,7 +25,6 @@ import com.google.android.exoplayer2.source.TrackGroupArray;
|
||||
import com.google.android.exoplayer2.source.chunk.ChunkSampleStream;
|
||||
import com.google.android.exoplayer2.trackselection.TrackSelection;
|
||||
import com.google.android.exoplayer2.upstream.Allocator;
|
||||
import com.google.android.exoplayer2.upstream.DataSource;
|
||||
import com.google.android.exoplayer2.upstream.TransferListener;
|
||||
import com.google.android.exoplayer2.util.MimeTypes;
|
||||
import java.util.ArrayList;
|
||||
@ -40,7 +39,7 @@ public class FakeAdaptiveMediaPeriod extends FakeMediaPeriod
|
||||
|
||||
private final Allocator allocator;
|
||||
private final FakeChunkSource.Factory chunkSourceFactory;
|
||||
private final @Nullable TransferListener<? super DataSource> transferListener;
|
||||
private final @Nullable TransferListener transferListener;
|
||||
private final long durationUs;
|
||||
|
||||
private Callback callback;
|
||||
@ -53,7 +52,7 @@ public class FakeAdaptiveMediaPeriod extends FakeMediaPeriod
|
||||
Allocator allocator,
|
||||
FakeChunkSource.Factory chunkSourceFactory,
|
||||
long durationUs,
|
||||
@Nullable TransferListener<? super DataSource> transferListener) {
|
||||
@Nullable TransferListener transferListener) {
|
||||
super(trackGroupArray, eventDispatcher);
|
||||
this.allocator = allocator;
|
||||
this.chunkSourceFactory = chunkSourceFactory;
|
||||
|
@ -24,7 +24,6 @@ import com.google.android.exoplayer2.source.MediaSourceEventListener;
|
||||
import com.google.android.exoplayer2.source.MediaSourceEventListener.EventDispatcher;
|
||||
import com.google.android.exoplayer2.source.TrackGroupArray;
|
||||
import com.google.android.exoplayer2.upstream.Allocator;
|
||||
import com.google.android.exoplayer2.upstream.DataSource;
|
||||
import com.google.android.exoplayer2.upstream.TransferListener;
|
||||
|
||||
/**
|
||||
@ -53,7 +52,7 @@ public class FakeAdaptiveMediaSource extends FakeMediaSource {
|
||||
TrackGroupArray trackGroupArray,
|
||||
Allocator allocator,
|
||||
EventDispatcher eventDispatcher,
|
||||
@Nullable TransferListener<? super DataSource> transferListener) {
|
||||
@Nullable TransferListener transferListener) {
|
||||
Period period = timeline.getPeriod(id.periodIndex, new Period());
|
||||
return new FakeAdaptiveMediaPeriod(
|
||||
trackGroupArray,
|
||||
|
@ -57,7 +57,7 @@ public final class FakeChunkSource implements ChunkSource {
|
||||
public FakeChunkSource createChunkSource(
|
||||
TrackSelection trackSelection,
|
||||
long durationUs,
|
||||
@Nullable TransferListener<? super DataSource> transferListener) {
|
||||
@Nullable TransferListener transferListener) {
|
||||
FakeAdaptiveDataSet dataSet =
|
||||
dataSetFactory.createDataSet(trackSelection.getTrackGroup(), durationUs);
|
||||
dataSourceFactory.setFakeDataSet(dataSet);
|
||||
|
@ -40,11 +40,11 @@ public class FakeDataSource extends BaseDataSource {
|
||||
*/
|
||||
public static class Factory implements DataSource.Factory {
|
||||
|
||||
protected final TransferListener<? super DataSource> transferListener;
|
||||
protected final TransferListener transferListener;
|
||||
protected FakeDataSet fakeDataSet;
|
||||
protected boolean isNetwork;
|
||||
|
||||
public Factory(@Nullable TransferListener<? super DataSource> transferListener) {
|
||||
public Factory(@Nullable TransferListener transferListener) {
|
||||
this.transferListener = transferListener;
|
||||
}
|
||||
|
||||
@ -83,9 +83,7 @@ public class FakeDataSource extends BaseDataSource {
|
||||
}
|
||||
|
||||
public FakeDataSource(
|
||||
FakeDataSet fakeDataSet,
|
||||
@Nullable TransferListener<? super DataSource> transferListener,
|
||||
boolean isNetwork) {
|
||||
FakeDataSet fakeDataSet, @Nullable TransferListener transferListener, boolean isNetwork) {
|
||||
super(isNetwork);
|
||||
Assertions.checkNotNull(fakeDataSet);
|
||||
this.fakeDataSet = fakeDataSet;
|
||||
|
@ -35,7 +35,6 @@ import com.google.android.exoplayer2.source.MediaSourceEventListener.MediaLoadDa
|
||||
import com.google.android.exoplayer2.source.TrackGroup;
|
||||
import com.google.android.exoplayer2.source.TrackGroupArray;
|
||||
import com.google.android.exoplayer2.upstream.Allocator;
|
||||
import com.google.android.exoplayer2.upstream.DataSource;
|
||||
import com.google.android.exoplayer2.upstream.DataSpec;
|
||||
import com.google.android.exoplayer2.upstream.TransferListener;
|
||||
import com.google.android.exoplayer2.util.Assertions;
|
||||
@ -61,7 +60,7 @@ public class FakeMediaSource extends BaseMediaSource {
|
||||
private boolean preparedSource;
|
||||
private boolean releasedSource;
|
||||
private Handler sourceInfoRefreshHandler;
|
||||
private @Nullable TransferListener<? super DataSource> transferListener;
|
||||
private @Nullable TransferListener transferListener;
|
||||
|
||||
/**
|
||||
* Creates a {@link FakeMediaSource}. This media source creates {@link FakeMediaPeriod}s with a
|
||||
@ -92,7 +91,7 @@ public class FakeMediaSource extends BaseMediaSource {
|
||||
public synchronized void prepareSourceInternal(
|
||||
ExoPlayer player,
|
||||
boolean isTopLevelSource,
|
||||
@Nullable TransferListener<? super DataSource> mediaTransferListener) {
|
||||
@Nullable TransferListener mediaTransferListener) {
|
||||
assertThat(preparedSource).isFalse();
|
||||
transferListener = mediaTransferListener;
|
||||
preparedSource = true;
|
||||
@ -206,7 +205,7 @@ public class FakeMediaSource extends BaseMediaSource {
|
||||
TrackGroupArray trackGroupArray,
|
||||
Allocator allocator,
|
||||
EventDispatcher eventDispatcher,
|
||||
@Nullable TransferListener<? super DataSource> transferListener) {
|
||||
@Nullable TransferListener transferListener) {
|
||||
return new FakeMediaPeriod(trackGroupArray, eventDispatcher);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user