diff --git a/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java b/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java index e2954fb6ff..f60e1c15a2 100644 --- a/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java +++ b/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java @@ -376,15 +376,21 @@ public final class DashMediaSource extends BaseMediaSource { manifestParser = new DashManifestParser(); } List streamKeys = - !mediaItem.playbackProperties.streamKeys.isEmpty() - ? mediaItem.playbackProperties.streamKeys - : this.streamKeys; + mediaItem.playbackProperties.streamKeys.isEmpty() + ? this.streamKeys + : mediaItem.playbackProperties.streamKeys; if (!streamKeys.isEmpty()) { manifestParser = new FilteringManifestParser<>(manifestParser, streamKeys); } - if (mediaItem.playbackProperties.tag == null && tag != null) { + + boolean needsTag = mediaItem.playbackProperties.tag == null && tag != null; + boolean needsStreamKeys = + mediaItem.playbackProperties.streamKeys.isEmpty() && !streamKeys.isEmpty(); + if (needsTag && needsStreamKeys) { mediaItem = mediaItem.buildUpon().setTag(tag).setStreamKeys(streamKeys).build(); - } else if (mediaItem.playbackProperties.streamKeys.isEmpty() && !streamKeys.isEmpty()) { + } else if (needsTag) { + mediaItem = mediaItem.buildUpon().setTag(tag).build(); + } else if (needsStreamKeys) { mediaItem = mediaItem.buildUpon().setStreamKeys(streamKeys).build(); } return new DashMediaSource(