mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +08:00
Make some no-op refactoring in CmcdData
- Moved static fields for object type, stream type, etc. from `CmcdData.Factory` to `CmcdData`. - Removed redundant `CmcdData` prefix from `@ObjectType` and `@StreamingFormat` annotations. #cleanup PiperOrigin-RevId: 705159876
This commit is contained in:
parent
893b3775d4
commit
de31a3745c
@ -65,36 +65,6 @@ public final class CmcdData {
|
||||
/** {@link CmcdData.Factory} for {@link CmcdData} instances. */
|
||||
public static final class Factory {
|
||||
|
||||
/** Represents the Dynamic Adaptive Streaming over HTTP (DASH) format. */
|
||||
public static final String STREAMING_FORMAT_DASH = "d";
|
||||
|
||||
/** Represents the HTTP Live Streaming (HLS) format. */
|
||||
public static final String STREAMING_FORMAT_HLS = "h";
|
||||
|
||||
/** Represents the Smooth Streaming (SS) format. */
|
||||
public static final String STREAMING_FORMAT_SS = "s";
|
||||
|
||||
/** Represents the Video on Demand (VOD) stream type. */
|
||||
public static final String STREAM_TYPE_VOD = "v";
|
||||
|
||||
/** Represents the Live Streaming stream type. */
|
||||
public static final String STREAM_TYPE_LIVE = "l";
|
||||
|
||||
/** Represents the object type for an initialization segment in a media container. */
|
||||
public static final String OBJECT_TYPE_INIT_SEGMENT = "i";
|
||||
|
||||
/** Represents the object type for audio-only content in a media container. */
|
||||
public static final String OBJECT_TYPE_AUDIO_ONLY = "a";
|
||||
|
||||
/** Represents the object type for video-only content in a media container. */
|
||||
public static final String OBJECT_TYPE_VIDEO_ONLY = "v";
|
||||
|
||||
/** Represents the object type for muxed audio and video content in a media container. */
|
||||
public static final String OBJECT_TYPE_MUXED_AUDIO_AND_VIDEO = "av";
|
||||
|
||||
/** Represents the object type for a manifest or playlist file, in a media container. */
|
||||
public static final String OBJECT_TYPE_MANIFEST = "m";
|
||||
|
||||
/**
|
||||
* Custom key names MUST carry a hyphenated prefix to ensure that there will not be a namespace
|
||||
* collision with future revisions to this specification. Clients SHOULD use a reverse-DNS
|
||||
@ -103,7 +73,7 @@ public final class CmcdData {
|
||||
private static final Pattern CUSTOM_KEY_NAME_PATTERN = Pattern.compile(".*-.*");
|
||||
|
||||
private final CmcdConfiguration cmcdConfiguration;
|
||||
private final @CmcdData.StreamingFormat String streamingFormat;
|
||||
private final @StreamingFormat String streamingFormat;
|
||||
@Nullable private ExoTrackSelection trackSelection;
|
||||
private long bufferedDurationUs;
|
||||
private float playbackRate;
|
||||
@ -111,7 +81,7 @@ public final class CmcdData {
|
||||
private boolean didRebuffer;
|
||||
private boolean isBufferEmpty;
|
||||
private long chunkDurationUs;
|
||||
@Nullable private @CmcdData.ObjectType String objectType;
|
||||
@Nullable private @ObjectType String objectType;
|
||||
@Nullable private String nextObjectRequest;
|
||||
@Nullable private String nextRangeRequest;
|
||||
|
||||
@ -121,8 +91,7 @@ public final class CmcdData {
|
||||
* @param cmcdConfiguration The {@link CmcdConfiguration} for this source.
|
||||
* @param streamingFormat The streaming format of the media content.
|
||||
*/
|
||||
public Factory(
|
||||
CmcdConfiguration cmcdConfiguration, @CmcdData.StreamingFormat String streamingFormat) {
|
||||
public Factory(CmcdConfiguration cmcdConfiguration, @StreamingFormat String streamingFormat) {
|
||||
this.cmcdConfiguration = cmcdConfiguration;
|
||||
this.bufferedDurationUs = C.TIME_UNSET;
|
||||
this.playbackRate = C.RATE_UNSET;
|
||||
@ -180,7 +149,7 @@ public final class CmcdData {
|
||||
* <p>Default is {@code null}.
|
||||
*/
|
||||
@CanIgnoreReturnValue
|
||||
public Factory setObjectType(@Nullable @CmcdData.ObjectType String objectType) {
|
||||
public Factory setObjectType(@Nullable @ObjectType String objectType) {
|
||||
this.objectType = objectType;
|
||||
return this;
|
||||
}
|
||||
@ -421,13 +390,13 @@ public final class CmcdData {
|
||||
}
|
||||
|
||||
private static boolean isManifestObjectType(@Nullable @ObjectType String objectType) {
|
||||
return Objects.equals(objectType, Factory.OBJECT_TYPE_MANIFEST);
|
||||
return Objects.equals(objectType, OBJECT_TYPE_MANIFEST);
|
||||
}
|
||||
|
||||
private static boolean isMediaObjectType(@Nullable @ObjectType String objectType) {
|
||||
return Objects.equals(objectType, Factory.OBJECT_TYPE_AUDIO_ONLY)
|
||||
|| Objects.equals(objectType, Factory.OBJECT_TYPE_VIDEO_ONLY)
|
||||
|| Objects.equals(objectType, Factory.OBJECT_TYPE_MUXED_AUDIO_AND_VIDEO);
|
||||
return Objects.equals(objectType, OBJECT_TYPE_AUDIO_ONLY)
|
||||
|| Objects.equals(objectType, OBJECT_TYPE_VIDEO_ONLY)
|
||||
|| Objects.equals(objectType, OBJECT_TYPE_MUXED_AUDIO_AND_VIDEO);
|
||||
}
|
||||
|
||||
private void validateCustomDataListFormat(List<String> customDataList) {
|
||||
@ -440,35 +409,61 @@ public final class CmcdData {
|
||||
|
||||
/** Indicates the streaming format used for media content. */
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
@StringDef({
|
||||
Factory.STREAMING_FORMAT_DASH,
|
||||
Factory.STREAMING_FORMAT_HLS,
|
||||
Factory.STREAMING_FORMAT_SS
|
||||
})
|
||||
@StringDef({STREAMING_FORMAT_DASH, STREAMING_FORMAT_HLS, STREAMING_FORMAT_SS})
|
||||
@Documented
|
||||
@Target(TYPE_USE)
|
||||
public @interface StreamingFormat {}
|
||||
|
||||
/** Represents the Dynamic Adaptive Streaming over HTTP (DASH) format. */
|
||||
public static final String STREAMING_FORMAT_DASH = "d";
|
||||
|
||||
/** Represents the HTTP Live Streaming (HLS) format. */
|
||||
public static final String STREAMING_FORMAT_HLS = "h";
|
||||
|
||||
/** Represents the Smooth Streaming (SS) format. */
|
||||
public static final String STREAMING_FORMAT_SS = "s";
|
||||
|
||||
/** Indicates the type of streaming for media content. */
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
@StringDef({Factory.STREAM_TYPE_VOD, Factory.STREAM_TYPE_LIVE})
|
||||
@StringDef({STREAM_TYPE_VOD, STREAM_TYPE_LIVE})
|
||||
@Documented
|
||||
@Target(TYPE_USE)
|
||||
public @interface StreamType {}
|
||||
|
||||
/** Represents the Video on Demand (VOD) stream type. */
|
||||
public static final String STREAM_TYPE_VOD = "v";
|
||||
|
||||
/** Represents the Live Streaming stream type. */
|
||||
public static final String STREAM_TYPE_LIVE = "l";
|
||||
|
||||
/** Indicates the media type of current object being requested. */
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
@StringDef({
|
||||
Factory.OBJECT_TYPE_INIT_SEGMENT,
|
||||
Factory.OBJECT_TYPE_AUDIO_ONLY,
|
||||
Factory.OBJECT_TYPE_VIDEO_ONLY,
|
||||
Factory.OBJECT_TYPE_MUXED_AUDIO_AND_VIDEO,
|
||||
Factory.OBJECT_TYPE_MANIFEST
|
||||
OBJECT_TYPE_INIT_SEGMENT,
|
||||
OBJECT_TYPE_AUDIO_ONLY,
|
||||
OBJECT_TYPE_VIDEO_ONLY,
|
||||
OBJECT_TYPE_MUXED_AUDIO_AND_VIDEO,
|
||||
OBJECT_TYPE_MANIFEST
|
||||
})
|
||||
@Documented
|
||||
@Target(TYPE_USE)
|
||||
public @interface ObjectType {}
|
||||
|
||||
/** Represents the object type for an initialization segment in a media container. */
|
||||
public static final String OBJECT_TYPE_INIT_SEGMENT = "i";
|
||||
|
||||
/** Represents the object type for audio-only content in a media container. */
|
||||
public static final String OBJECT_TYPE_AUDIO_ONLY = "a";
|
||||
|
||||
/** Represents the object type for video-only content in a media container. */
|
||||
public static final String OBJECT_TYPE_VIDEO_ONLY = "v";
|
||||
|
||||
/** Represents the object type for muxed audio and video content in a media container. */
|
||||
public static final String OBJECT_TYPE_MUXED_AUDIO_AND_VIDEO = "av";
|
||||
|
||||
/** Represents the object type for a manifest or playlist file, in a media container. */
|
||||
public static final String OBJECT_TYPE_MANIFEST = "m";
|
||||
|
||||
private static final Joiner COMMA_JOINER = Joiner.on(",");
|
||||
|
||||
private final CmcdObject cmcdObject;
|
||||
|
@ -45,16 +45,16 @@ public class CmcdDataTest {
|
||||
"Track selection must be set",
|
||||
IllegalStateException.class,
|
||||
() ->
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.Factory.STREAMING_FORMAT_DASH)
|
||||
.setObjectType(CmcdData.Factory.OBJECT_TYPE_INIT_SEGMENT)
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.STREAMING_FORMAT_DASH)
|
||||
.setObjectType(CmcdData.OBJECT_TYPE_INIT_SEGMENT)
|
||||
.createCmcdData());
|
||||
|
||||
assertThrows(
|
||||
"Buffered duration must be set",
|
||||
IllegalStateException.class,
|
||||
() ->
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.Factory.STREAMING_FORMAT_DASH)
|
||||
.setObjectType(CmcdData.Factory.OBJECT_TYPE_AUDIO_ONLY)
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.STREAMING_FORMAT_DASH)
|
||||
.setObjectType(CmcdData.OBJECT_TYPE_AUDIO_ONLY)
|
||||
.setTrackSelection(trackSelection)
|
||||
.setChunkDurationUs(100_000)
|
||||
.createCmcdData());
|
||||
@ -63,8 +63,8 @@ public class CmcdDataTest {
|
||||
"Chunk duration must be set",
|
||||
IllegalStateException.class,
|
||||
() ->
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.Factory.STREAMING_FORMAT_DASH)
|
||||
.setObjectType(CmcdData.Factory.OBJECT_TYPE_AUDIO_ONLY)
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.STREAMING_FORMAT_DASH)
|
||||
.setObjectType(CmcdData.OBJECT_TYPE_AUDIO_ONLY)
|
||||
.setTrackSelection(trackSelection)
|
||||
.setBufferedDurationUs(100_000)
|
||||
.createCmcdData());
|
||||
@ -94,9 +94,9 @@ public class CmcdDataTest {
|
||||
when(trackSelection.getLatestBitrateEstimate()).thenReturn(500_000L);
|
||||
DataSpec dataSpec = new DataSpec.Builder().setUri(Uri.EMPTY).build();
|
||||
CmcdData cmcdData =
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.Factory.STREAMING_FORMAT_DASH)
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.STREAMING_FORMAT_DASH)
|
||||
.setTrackSelection(trackSelection)
|
||||
.setObjectType(CmcdData.Factory.OBJECT_TYPE_AUDIO_ONLY)
|
||||
.setObjectType(CmcdData.OBJECT_TYPE_AUDIO_ONLY)
|
||||
.setBufferedDurationUs(1_760_000)
|
||||
.setPlaybackRate(2.0f)
|
||||
.setIsLive(true)
|
||||
@ -144,8 +144,8 @@ public class CmcdDataTest {
|
||||
when(trackSelection.getLatestBitrateEstimate()).thenReturn(500_000L);
|
||||
DataSpec dataSpec = new DataSpec.Builder().setUri(Uri.EMPTY).build();
|
||||
CmcdData cmcdData =
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.Factory.STREAMING_FORMAT_DASH)
|
||||
.setObjectType(CmcdData.Factory.OBJECT_TYPE_AUDIO_ONLY)
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.STREAMING_FORMAT_DASH)
|
||||
.setObjectType(CmcdData.OBJECT_TYPE_AUDIO_ONLY)
|
||||
.setTrackSelection(trackSelection)
|
||||
.setBufferedDurationUs(1_760_000)
|
||||
.setPlaybackRate(2.0f)
|
||||
@ -174,8 +174,8 @@ public class CmcdDataTest {
|
||||
cmcdConfigurationFactory.createCmcdConfiguration(mediaItem);
|
||||
DataSpec dataSpec = new DataSpec.Builder().setUri(Uri.EMPTY).build();
|
||||
CmcdData cmcdData =
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.Factory.STREAMING_FORMAT_DASH)
|
||||
.setObjectType(CmcdData.Factory.OBJECT_TYPE_MANIFEST)
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.STREAMING_FORMAT_DASH)
|
||||
.setObjectType(CmcdData.OBJECT_TYPE_MANIFEST)
|
||||
.createCmcdData();
|
||||
|
||||
dataSpec = cmcdData.addToDataSpec(dataSpec);
|
||||
@ -199,8 +199,8 @@ public class CmcdDataTest {
|
||||
cmcdConfigurationFactory.createCmcdConfiguration(mediaItem);
|
||||
DataSpec dataSpec = new DataSpec.Builder().setUri(Uri.EMPTY).build();
|
||||
CmcdData cmcdData =
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.Factory.STREAMING_FORMAT_DASH)
|
||||
.setObjectType(CmcdData.Factory.OBJECT_TYPE_MANIFEST)
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.STREAMING_FORMAT_DASH)
|
||||
.setObjectType(CmcdData.OBJECT_TYPE_MANIFEST)
|
||||
.createCmcdData();
|
||||
|
||||
dataSpec = cmcdData.addToDataSpec(dataSpec);
|
||||
@ -226,7 +226,7 @@ public class CmcdDataTest {
|
||||
when(trackSelection.getLatestBitrateEstimate()).thenReturn(500_000L);
|
||||
DataSpec dataSpec = new DataSpec.Builder().setUri(Uri.EMPTY).build();
|
||||
CmcdData cmcdData =
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.Factory.STREAMING_FORMAT_DASH)
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.STREAMING_FORMAT_DASH)
|
||||
.setTrackSelection(trackSelection)
|
||||
.setPlaybackRate(2.0f)
|
||||
.setIsLive(true)
|
||||
@ -268,7 +268,7 @@ public class CmcdDataTest {
|
||||
when(trackSelection.getLatestBitrateEstimate()).thenReturn(500_000L);
|
||||
DataSpec dataSpec = new DataSpec.Builder().setUri(Uri.EMPTY).build();
|
||||
CmcdData cmcdData =
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.Factory.STREAMING_FORMAT_DASH)
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.STREAMING_FORMAT_DASH)
|
||||
.setTrackSelection(trackSelection)
|
||||
.setPlaybackRate(2.0f)
|
||||
.setIsLive(true)
|
||||
@ -307,8 +307,8 @@ public class CmcdDataTest {
|
||||
cmcdConfigurationFactory.createCmcdConfiguration(MediaItem.EMPTY);
|
||||
DataSpec dataSpec = new DataSpec.Builder().setUri(Uri.EMPTY).build();
|
||||
CmcdData cmcdData =
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.Factory.STREAMING_FORMAT_DASH)
|
||||
.setObjectType(CmcdData.Factory.OBJECT_TYPE_MANIFEST)
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.STREAMING_FORMAT_DASH)
|
||||
.setObjectType(CmcdData.OBJECT_TYPE_MANIFEST)
|
||||
.createCmcdData();
|
||||
|
||||
dataSpec = cmcdData.addToDataSpec(dataSpec);
|
||||
@ -347,8 +347,8 @@ public class CmcdDataTest {
|
||||
cmcdConfigurationFactory.createCmcdConfiguration(MediaItem.EMPTY);
|
||||
DataSpec dataSpec = new DataSpec.Builder().setUri(Uri.EMPTY).build();
|
||||
CmcdData cmcdData =
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.Factory.STREAMING_FORMAT_DASH)
|
||||
.setObjectType(CmcdData.Factory.OBJECT_TYPE_MANIFEST)
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.STREAMING_FORMAT_DASH)
|
||||
.setObjectType(CmcdData.OBJECT_TYPE_MANIFEST)
|
||||
.createCmcdData();
|
||||
|
||||
dataSpec = cmcdData.addToDataSpec(dataSpec);
|
||||
@ -381,8 +381,8 @@ public class CmcdDataTest {
|
||||
assertThrows(
|
||||
IllegalStateException.class,
|
||||
() ->
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.Factory.STREAMING_FORMAT_DASH)
|
||||
.setObjectType(CmcdData.Factory.OBJECT_TYPE_MANIFEST)
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.STREAMING_FORMAT_DASH)
|
||||
.setObjectType(CmcdData.OBJECT_TYPE_MANIFEST)
|
||||
.createCmcdData());
|
||||
}
|
||||
}
|
||||
|
@ -1105,8 +1105,8 @@ public final class DashMediaSource extends BaseMediaSource {
|
||||
new DataSpec.Builder().setUri(manifestUri).setFlags(DataSpec.FLAG_ALLOW_GZIP).build();
|
||||
if (cmcdConfiguration != null) {
|
||||
CmcdData.Factory cmcdDataFactory =
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.Factory.STREAMING_FORMAT_DASH)
|
||||
.setObjectType(CmcdData.Factory.OBJECT_TYPE_MANIFEST);
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.STREAMING_FORMAT_DASH)
|
||||
.setObjectType(CmcdData.OBJECT_TYPE_MANIFEST);
|
||||
if (manifest != null) {
|
||||
cmcdDataFactory.setIsLive(manifest.dynamic);
|
||||
}
|
||||
|
@ -421,7 +421,7 @@ public class DefaultDashChunkSource implements DashChunkSource {
|
||||
CmcdData.Factory cmcdDataFactory =
|
||||
cmcdConfiguration == null
|
||||
? null
|
||||
: new CmcdData.Factory(cmcdConfiguration, CmcdData.Factory.STREAMING_FORMAT_DASH)
|
||||
: new CmcdData.Factory(cmcdConfiguration, CmcdData.STREAMING_FORMAT_DASH)
|
||||
.setTrackSelection(trackSelection)
|
||||
.setBufferedDurationUs(max(0, bufferedDurationUs))
|
||||
.setPlaybackRate(loadingInfo.playbackSpeed)
|
||||
@ -747,7 +747,7 @@ public class DefaultDashChunkSource implements DashChunkSource {
|
||||
/* httpRequestHeaders= */ ImmutableMap.of());
|
||||
if (cmcdDataFactory != null) {
|
||||
CmcdData cmcdData =
|
||||
cmcdDataFactory.setObjectType(CmcdData.Factory.OBJECT_TYPE_INIT_SEGMENT).createCmcdData();
|
||||
cmcdDataFactory.setObjectType(CmcdData.OBJECT_TYPE_INIT_SEGMENT).createCmcdData();
|
||||
dataSpec = cmcdData.addToDataSpec(dataSpec);
|
||||
}
|
||||
|
||||
|
@ -507,7 +507,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
@Nullable CmcdData.Factory cmcdDataFactory = null;
|
||||
if (cmcdConfiguration != null) {
|
||||
cmcdDataFactory =
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.Factory.STREAMING_FORMAT_HLS)
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.STREAMING_FORMAT_HLS)
|
||||
.setTrackSelection(trackSelection)
|
||||
.setBufferedDurationUs(max(0, bufferedDurationUs))
|
||||
.setPlaybackRate(loadingInfo.playbackSpeed)
|
||||
@ -516,7 +516,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
.setIsBufferEmpty(queue.isEmpty())
|
||||
.setObjectType(
|
||||
getIsMuxedAudioAndVideo()
|
||||
? CmcdData.Factory.OBJECT_TYPE_MUXED_AUDIO_AND_VIDEO
|
||||
? CmcdData.OBJECT_TYPE_MUXED_AUDIO_AND_VIDEO
|
||||
: CmcdData.Factory.getObjectType(trackSelection));
|
||||
long nextMediaSequence =
|
||||
segmentBaseHolder.partIndex == C.INDEX_UNSET
|
||||
@ -930,7 +930,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
new DataSpec.Builder().setUri(keyUri).setFlags(DataSpec.FLAG_ALLOW_GZIP).build();
|
||||
if (cmcdDataFactory != null) {
|
||||
if (isInitSegment) {
|
||||
cmcdDataFactory.setObjectType(CmcdData.Factory.OBJECT_TYPE_INIT_SEGMENT);
|
||||
cmcdDataFactory.setObjectType(CmcdData.OBJECT_TYPE_INIT_SEGMENT);
|
||||
}
|
||||
CmcdData cmcdData = cmcdDataFactory.createCmcdData();
|
||||
dataSpec = cmcdData.addToDataSpec(dataSpec);
|
||||
|
@ -146,9 +146,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
|
||||
.build();
|
||||
if (cmcdDataFactory != null) {
|
||||
CmcdData cmcdData =
|
||||
cmcdDataFactory
|
||||
.setObjectType(CmcdData.Factory.OBJECT_TYPE_INIT_SEGMENT)
|
||||
.createCmcdData();
|
||||
cmcdDataFactory.setObjectType(CmcdData.OBJECT_TYPE_INIT_SEGMENT).createCmcdData();
|
||||
initDataSpec = cmcdData.addToDataSpec(initDataSpec);
|
||||
}
|
||||
|
||||
|
@ -150,8 +150,8 @@ public final class DefaultHlsPlaylistTracker
|
||||
.build();
|
||||
if (cmcdConfiguration != null) {
|
||||
CmcdData cmcdData =
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.Factory.STREAMING_FORMAT_HLS)
|
||||
.setObjectType(CmcdData.Factory.OBJECT_TYPE_MANIFEST)
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.STREAMING_FORMAT_HLS)
|
||||
.setObjectType(CmcdData.OBJECT_TYPE_MANIFEST)
|
||||
.createCmcdData();
|
||||
cmcdData.addToDataSpec(dataSpec);
|
||||
}
|
||||
@ -791,8 +791,8 @@ public final class DefaultHlsPlaylistTracker
|
||||
.build();
|
||||
if (cmcdConfiguration != null) {
|
||||
CmcdData.Factory cmcdDataFactory =
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.Factory.STREAMING_FORMAT_HLS)
|
||||
.setObjectType(CmcdData.Factory.OBJECT_TYPE_MANIFEST);
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.STREAMING_FORMAT_HLS)
|
||||
.setObjectType(CmcdData.OBJECT_TYPE_MANIFEST);
|
||||
if (primaryMediaPlaylistSnapshot != null) {
|
||||
cmcdDataFactory.setIsLive(!primaryMediaPlaylistSnapshot.hasEndTag);
|
||||
}
|
||||
|
@ -360,7 +360,7 @@ public class DefaultSsChunkSource implements SsChunkSource {
|
||||
@Nullable CmcdData.Factory cmcdDataFactory = null;
|
||||
if (cmcdConfiguration != null) {
|
||||
cmcdDataFactory =
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.Factory.STREAMING_FORMAT_SS)
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.STREAMING_FORMAT_SS)
|
||||
.setTrackSelection(trackSelection)
|
||||
.setBufferedDurationUs(max(0, bufferedDurationUs))
|
||||
.setPlaybackRate(loadingInfo.playbackSpeed)
|
||||
|
@ -682,8 +682,8 @@ public final class SsMediaSource extends BaseMediaSource
|
||||
new DataSpec.Builder().setUri(manifestUri).setFlags(DataSpec.FLAG_ALLOW_GZIP).build();
|
||||
if (cmcdConfiguration != null) {
|
||||
CmcdData.Factory cmcdDataFactory =
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.Factory.STREAMING_FORMAT_SS)
|
||||
.setObjectType(CmcdData.Factory.OBJECT_TYPE_MANIFEST);
|
||||
new CmcdData.Factory(cmcdConfiguration, CmcdData.STREAMING_FORMAT_SS)
|
||||
.setObjectType(CmcdData.OBJECT_TYPE_MANIFEST);
|
||||
if (manifest != null) {
|
||||
cmcdDataFactory.setIsLive(manifest.isLive);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user