diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/ProgressiveMediaPeriod.java b/library/core/src/main/java/com/google/android/exoplayer2/source/ProgressiveMediaPeriod.java index 0229d1c812..3c0c35307b 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/source/ProgressiveMediaPeriod.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/source/ProgressiveMediaPeriod.java @@ -780,12 +780,10 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; trackFormat = trackFormat.buildUpon().setAverageBitrate(icyHeaders.bitrate).build(); } } - if (trackFormat.drmInitData != null) { - trackFormat = - trackFormat.copyWithExoMediaCryptoType( - drmSessionManager.getExoMediaCryptoType( - trackFormat.drmInitData, MimeTypes.getTrackType(trackFormat.sampleMimeType))); - } + trackFormat = + trackFormat.copyWithExoMediaCryptoType( + drmSessionManager.getExoMediaCryptoType( + trackFormat.drmInitData, MimeTypes.getTrackType(trackFormat.sampleMimeType))); trackArray[i] = new TrackGroup(trackFormat); } trackState = new TrackState(new TrackGroupArray(trackArray), trackIsAudioVideoFlags); diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/SampleQueue.java b/library/core/src/main/java/com/google/android/exoplayer2/source/SampleQueue.java index ca41896525..42b9187ad0 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/source/SampleQueue.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/source/SampleQueue.java @@ -826,11 +826,15 @@ public class SampleQueue implements TrackOutput { * @param outputFormatHolder The output {@link FormatHolder}. */ private void onFormatResult(Format newFormat, FormatHolder outputFormatHolder) { - outputFormatHolder.format = newFormat; boolean isFirstFormat = downstreamFormat == null; @Nullable DrmInitData oldDrmInitData = isFirstFormat ? null : downstreamFormat.drmInitData; downstreamFormat = newFormat; @Nullable DrmInitData newDrmInitData = newFormat.drmInitData; + + outputFormatHolder.format = + newFormat.copyWithExoMediaCryptoType( + drmSessionManager.getExoMediaCryptoType( + newFormat.drmInitData, MimeTypes.getTrackType(newFormat.sampleMimeType))); outputFormatHolder.drmSession = currentDrmSession; if (!isFirstFormat && Util.areEqual(oldDrmInitData, newDrmInitData)) { // Nothing to do. diff --git a/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaPeriod.java b/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaPeriod.java index 5d3089371a..c67c424284 100644 --- a/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaPeriod.java +++ b/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaPeriod.java @@ -25,7 +25,6 @@ import androidx.annotation.Nullable; import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.Format; import com.google.android.exoplayer2.SeekParameters; -import com.google.android.exoplayer2.drm.DrmInitData; import com.google.android.exoplayer2.drm.DrmSessionEventListener; import com.google.android.exoplayer2.drm.DrmSessionManager; import com.google.android.exoplayer2.offline.StreamKey; @@ -665,14 +664,10 @@ import org.checkerframework.checker.nullness.compatqual.NullableType; Format[] formats = new Format[representations.size()]; for (int j = 0; j < formats.length; j++) { Format format = representations.get(j).format; - DrmInitData drmInitData = format.drmInitData; - if (drmInitData != null) { - format = - format.copyWithExoMediaCryptoType( - drmSessionManager.getExoMediaCryptoType( - drmInitData, MimeTypes.getTrackType(format.sampleMimeType))); - } - formats[j] = format; + formats[j] = + format.copyWithExoMediaCryptoType( + drmSessionManager.getExoMediaCryptoType( + format.drmInitData, MimeTypes.getTrackType(format.sampleMimeType))); } AdaptationSet firstAdaptationSet = adaptationSets.get(adaptationSetIndices[0]); diff --git a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper.java b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper.java index dc3d090e82..0040724ee3 100644 --- a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper.java +++ b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper.java @@ -1318,13 +1318,10 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; Format[] exposedFormats = new Format[trackGroup.length]; for (int j = 0; j < trackGroup.length; j++) { Format format = trackGroup.getFormat(j); - if (format.drmInitData != null) { - format = - format.copyWithExoMediaCryptoType( - drmSessionManager.getExoMediaCryptoType( - format.drmInitData, MimeTypes.getTrackType(format.sampleMimeType))); - } - exposedFormats[j] = format; + exposedFormats[j] = + format.copyWithExoMediaCryptoType( + drmSessionManager.getExoMediaCryptoType( + format.drmInitData, MimeTypes.getTrackType(format.sampleMimeType))); } trackGroups[i] = new TrackGroup(exposedFormats); } diff --git a/library/smoothstreaming/src/main/java/com/google/android/exoplayer2/source/smoothstreaming/SsMediaPeriod.java b/library/smoothstreaming/src/main/java/com/google/android/exoplayer2/source/smoothstreaming/SsMediaPeriod.java index e991463999..f92d67e3b8 100644 --- a/library/smoothstreaming/src/main/java/com/google/android/exoplayer2/source/smoothstreaming/SsMediaPeriod.java +++ b/library/smoothstreaming/src/main/java/com/google/android/exoplayer2/source/smoothstreaming/SsMediaPeriod.java @@ -266,12 +266,10 @@ import org.checkerframework.checker.nullness.compatqual.NullableType; for (int j = 0; j < manifestFormats.length; j++) { Format manifestFormat = manifestFormats[j]; exposedFormats[j] = - manifestFormat.drmInitData != null - ? manifestFormat.copyWithExoMediaCryptoType( - drmSessionManager.getExoMediaCryptoType( - manifestFormat.drmInitData, - MimeTypes.getTrackType(manifestFormat.sampleMimeType))) - : manifestFormat; + manifestFormat.copyWithExoMediaCryptoType( + drmSessionManager.getExoMediaCryptoType( + manifestFormat.drmInitData, + MimeTypes.getTrackType(manifestFormat.sampleMimeType))); } trackGroups[i] = new TrackGroup(exposedFormats); }