From a2ffcec2007ed07b13832418cf935ccd023716b0 Mon Sep 17 00:00:00 2001 From: olly Date: Fri, 14 Jul 2017 07:54:12 -0700 Subject: [PATCH] Fix NPE setting drm scheme type drmInitData can be null in DASH if all of the init data is specified at the manifest level instead. I took a look at injecting the manifest format into the extractors, so that we can actually copy the scheme type into it, but that's at least non-trivial enough to delay for a subsequent CL. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=161956246 --- .../android/exoplayer2/extractor/mp4/AtomParsers.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/extractor/mp4/AtomParsers.java b/library/core/src/main/java/com/google/android/exoplayer2/extractor/mp4/AtomParsers.java index ba190351c3..f7e3e846e9 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/extractor/mp4/AtomParsers.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/extractor/mp4/AtomParsers.java @@ -678,7 +678,8 @@ import java.util.List; parent, position, size); if (sampleEntryEncryptionData != null) { atomType = sampleEntryEncryptionData.first; - drmInitData = drmInitData.copyWithSchemeType(sampleEntryEncryptionData.second.schemeType); + drmInitData = drmInitData == null ? null + : drmInitData.copyWithSchemeType(sampleEntryEncryptionData.second.schemeType); out.trackEncryptionBoxes[entryIndex] = sampleEntryEncryptionData.second; } parent.setPosition(childPosition); @@ -857,7 +858,8 @@ import java.util.List; parent, position, size); if (sampleEntryEncryptionData != null) { atomType = sampleEntryEncryptionData.first; - drmInitData = drmInitData.copyWithSchemeType(sampleEntryEncryptionData.second.schemeType); + drmInitData = drmInitData == null ? null + : drmInitData.copyWithSchemeType(sampleEntryEncryptionData.second.schemeType); out.trackEncryptionBoxes[entryIndex] = sampleEntryEncryptionData.second; } parent.setPosition(childPosition);