Simplify usage of MediaItem.Builder in DashMediaSource

This change only calls setters if we need to override the existing value
(or more specifically, set a value that's absent).

PiperOrigin-RevId: 397979904
This commit is contained in:
ibaker 2021-09-21 14:26:13 +01:00 committed by bachinger
parent 387e14acef
commit 9932c12d77

View File

@ -312,28 +312,25 @@ public final class DashMediaSource extends BaseMediaSource {
*/ */
public DashMediaSource createMediaSource(DashManifest manifest, MediaItem mediaItem) { public DashMediaSource createMediaSource(DashManifest manifest, MediaItem mediaItem) {
Assertions.checkArgument(!manifest.dynamic); Assertions.checkArgument(!manifest.dynamic);
List<StreamKey> streamKeys = MediaItem.Builder mediaItemBuilder =
mediaItem.playbackProperties != null && !mediaItem.playbackProperties.streamKeys.isEmpty() mediaItem.buildUpon().setMimeType(MimeTypes.APPLICATION_MPD);
? mediaItem.playbackProperties.streamKeys if (mediaItem.playbackProperties == null) {
: this.streamKeys; mediaItemBuilder.setUri(Uri.EMPTY);
if (!streamKeys.isEmpty()) { }
if (mediaItem.playbackProperties == null || mediaItem.playbackProperties.tag == null) {
mediaItemBuilder.setTag(tag);
}
if (mediaItem.liveConfiguration.targetOffsetMs == C.TIME_UNSET) {
mediaItemBuilder.setLiveTargetOffsetMs(targetLiveOffsetOverrideMs);
}
if (mediaItem.playbackProperties == null
|| mediaItem.playbackProperties.streamKeys.isEmpty()) {
mediaItemBuilder.setStreamKeys(streamKeys);
}
mediaItem = mediaItemBuilder.build();
if (!checkNotNull(mediaItem.playbackProperties).streamKeys.isEmpty()) {
manifest = manifest.copy(streamKeys); manifest = manifest.copy(streamKeys);
} }
boolean hasUri = mediaItem.playbackProperties != null;
boolean hasTag = hasUri && mediaItem.playbackProperties.tag != null;
boolean hasTargetLiveOffset = mediaItem.liveConfiguration.targetOffsetMs != C.TIME_UNSET;
mediaItem =
mediaItem
.buildUpon()
.setMimeType(MimeTypes.APPLICATION_MPD)
.setUri(hasUri ? mediaItem.playbackProperties.uri : Uri.EMPTY)
.setTag(hasTag ? mediaItem.playbackProperties.tag : tag)
.setLiveTargetOffsetMs(
hasTargetLiveOffset
? mediaItem.liveConfiguration.targetOffsetMs
: targetLiveOffsetOverrideMs)
.setStreamKeys(streamKeys)
.build();
return new DashMediaSource( return new DashMediaSource(
mediaItem, mediaItem,
manifest, manifest,