Commit 556dd7e9 by Oliver Woodman

Merge pull request #5187 from BrainCrumbz:feat/get-tag

PiperOrigin-RevId: 224166374
parents b993367a a11a8716
...@@ -77,6 +77,12 @@ public final class ImaAdsMediaSource extends BaseMediaSource implements SourceIn ...@@ -77,6 +77,12 @@ public final class ImaAdsMediaSource extends BaseMediaSource implements SourceIn
} }
@Override @Override
@Nullable
public Object getTag() {
return adsMediaSource.getTag();
}
@Override
public void prepareSourceInternal( public void prepareSourceInternal(
final ExoPlayer player, final ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
......
...@@ -187,6 +187,12 @@ public final class ClippingMediaSource extends CompositeMediaSource<Void> { ...@@ -187,6 +187,12 @@ public final class ClippingMediaSource extends CompositeMediaSource<Void> {
} }
@Override @Override
@Nullable
public Object getTag() {
return mediaSource.getTag();
}
@Override
public void prepareSourceInternal( public void prepareSourceInternal(
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
......
...@@ -454,6 +454,12 @@ public class ConcatenatingMediaSource extends CompositeMediaSource<MediaSourceHo ...@@ -454,6 +454,12 @@ public class ConcatenatingMediaSource extends CompositeMediaSource<MediaSourceHo
} }
@Override @Override
@Nullable
public Object getTag() {
return null;
}
@Override
public final synchronized void prepareSourceInternal( public final synchronized void prepareSourceInternal(
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
...@@ -1070,6 +1076,12 @@ public class ConcatenatingMediaSource extends CompositeMediaSource<MediaSourceHo ...@@ -1070,6 +1076,12 @@ public class ConcatenatingMediaSource extends CompositeMediaSource<MediaSourceHo
} }
@Override @Override
@Nullable
public Object getTag() {
return null;
}
@Override
protected void releaseSourceInternal() { protected void releaseSourceInternal() {
// Do nothing. // Do nothing.
} }
......
...@@ -359,6 +359,12 @@ public final class ExtractorMediaSource extends BaseMediaSource ...@@ -359,6 +359,12 @@ public final class ExtractorMediaSource extends BaseMediaSource
} }
@Override @Override
@Nullable
public Object getTag() {
return tag;
}
@Override
public void prepareSourceInternal( public void prepareSourceInternal(
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
......
...@@ -65,6 +65,12 @@ public final class LoopingMediaSource extends CompositeMediaSource<Void> { ...@@ -65,6 +65,12 @@ public final class LoopingMediaSource extends CompositeMediaSource<Void> {
} }
@Override @Override
@Nullable
public Object getTag() {
return childSource.getTag();
}
@Override
public void prepareSourceInternal( public void prepareSourceInternal(
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
......
...@@ -219,6 +219,12 @@ public interface MediaSource { ...@@ -219,6 +219,12 @@ public interface MediaSource {
*/ */
void removeEventListener(MediaSourceEventListener eventListener); void removeEventListener(MediaSourceEventListener eventListener);
/** Returns the tag set on the media source, or null if none was set. */
@Nullable
default Object getTag() {
return null;
}
/** /**
* Starts source preparation if not yet started, and adds a listener for timeline and/or manifest * Starts source preparation if not yet started, and adds a listener for timeline and/or manifest
* updates. * updates.
......
...@@ -99,6 +99,12 @@ public final class MergingMediaSource extends CompositeMediaSource<Integer> { ...@@ -99,6 +99,12 @@ public final class MergingMediaSource extends CompositeMediaSource<Integer> {
} }
@Override @Override
@Nullable
public Object getTag() {
return mediaSources.length > 0 ? mediaSources[0].getTag() : null;
}
@Override
public void prepareSourceInternal( public void prepareSourceInternal(
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
......
...@@ -185,6 +185,7 @@ public final class SingleSampleMediaSource extends BaseMediaSource { ...@@ -185,6 +185,7 @@ public final class SingleSampleMediaSource extends BaseMediaSource {
private final LoadErrorHandlingPolicy loadErrorHandlingPolicy; private final LoadErrorHandlingPolicy loadErrorHandlingPolicy;
private final boolean treatLoadErrorsAsEndOfStream; private final boolean treatLoadErrorsAsEndOfStream;
private final Timeline timeline; private final Timeline timeline;
@Nullable private final Object tag;
private @Nullable TransferListener transferListener; private @Nullable TransferListener transferListener;
...@@ -287,6 +288,7 @@ public final class SingleSampleMediaSource extends BaseMediaSource { ...@@ -287,6 +288,7 @@ public final class SingleSampleMediaSource extends BaseMediaSource {
this.durationUs = durationUs; this.durationUs = durationUs;
this.loadErrorHandlingPolicy = loadErrorHandlingPolicy; this.loadErrorHandlingPolicy = loadErrorHandlingPolicy;
this.treatLoadErrorsAsEndOfStream = treatLoadErrorsAsEndOfStream; this.treatLoadErrorsAsEndOfStream = treatLoadErrorsAsEndOfStream;
this.tag = tag;
dataSpec = new DataSpec(uri, DataSpec.FLAG_ALLOW_GZIP); dataSpec = new DataSpec(uri, DataSpec.FLAG_ALLOW_GZIP);
timeline = timeline =
new SinglePeriodTimeline(durationUs, /* isSeekable= */ true, /* isDynamic= */ false, tag); new SinglePeriodTimeline(durationUs, /* isSeekable= */ true, /* isDynamic= */ false, tag);
...@@ -295,6 +297,12 @@ public final class SingleSampleMediaSource extends BaseMediaSource { ...@@ -295,6 +297,12 @@ public final class SingleSampleMediaSource extends BaseMediaSource {
// MediaSource implementation. // MediaSource implementation.
@Override @Override
@Nullable
public Object getTag() {
return tag;
}
@Override
public void prepareSourceInternal( public void prepareSourceInternal(
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
......
...@@ -320,6 +320,12 @@ public final class AdsMediaSource extends CompositeMediaSource<MediaPeriodId> { ...@@ -320,6 +320,12 @@ public final class AdsMediaSource extends CompositeMediaSource<MediaPeriodId> {
} }
@Override @Override
@Nullable
public Object getTag() {
return contentMediaSource.getTag();
}
@Override
public void prepareSourceInternal( public void prepareSourceInternal(
final ExoPlayer player, final ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
......
...@@ -608,6 +608,12 @@ public final class DashMediaSource extends BaseMediaSource { ...@@ -608,6 +608,12 @@ public final class DashMediaSource extends BaseMediaSource {
// MediaSource implementation. // MediaSource implementation.
@Override @Override
@Nullable
public Object getTag() {
return tag;
}
@Override
public void prepareSourceInternal( public void prepareSourceInternal(
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
......
...@@ -391,6 +391,12 @@ public final class HlsMediaSource extends BaseMediaSource ...@@ -391,6 +391,12 @@ public final class HlsMediaSource extends BaseMediaSource
} }
@Override @Override
@Nullable
public Object getTag() {
return tag;
}
@Override
public void prepareSourceInternal( public void prepareSourceInternal(
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
......
...@@ -504,6 +504,12 @@ public final class SsMediaSource extends BaseMediaSource ...@@ -504,6 +504,12 @@ public final class SsMediaSource extends BaseMediaSource
// MediaSource implementation. // MediaSource implementation.
@Override @Override
@Nullable
public Object getTag() {
return tag;
}
@Override
public void prepareSourceInternal( public void prepareSourceInternal(
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
......
...@@ -89,6 +89,13 @@ public class FakeMediaSource extends BaseMediaSource { ...@@ -89,6 +89,13 @@ public class FakeMediaSource extends BaseMediaSource {
} }
@Override @Override
@Nullable
public Object getTag() {
boolean hasTimeline = timeline != null && !timeline.isEmpty();
return hasTimeline ? timeline.getWindow(0, new Timeline.Window()).tag : null;
}
@Override
public synchronized void prepareSourceInternal( public synchronized void prepareSourceInternal(
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment