From f44e30c7543e63bb8aec54f27626d4c70e808c48 Mon Sep 17 00:00:00 2001 From: olly Date: Tue, 29 Aug 2017 07:19:48 -0700 Subject: [PATCH] Fix mapping CLEARKEY_UUID to COMMON_PSSH_UUID This mapping when we call into platform components also needs to be applied when creating the MediaCrypto instance. The fix is to stop propagating the UUID through all the createMediaCrypto methods. This is unnecessary, since the eventual target already knows its own UUID! Issue: #3138 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=166843372 --- .../android/exoplayer2/drm/DefaultDrmSession.java | 2 +- .../google/android/exoplayer2/drm/DrmInitData.java | 2 +- .../google/android/exoplayer2/drm/ExoMediaDrm.java | 4 +--- .../android/exoplayer2/drm/FrameworkMediaDrm.java | 11 +++++------ 4 files changed, 8 insertions(+), 11 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSession.java b/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSession.java index cfb2cf9d8a..b4dab7b971 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSession.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSession.java @@ -226,7 +226,7 @@ import java.util.UUID; try { sessionId = mediaDrm.openSession(); - mediaCrypto = mediaDrm.createMediaCrypto(uuid, sessionId); + mediaCrypto = mediaDrm.createMediaCrypto(sessionId); state = STATE_OPENED; return true; } catch (NotProvisionedException e) { diff --git a/library/core/src/main/java/com/google/android/exoplayer2/drm/DrmInitData.java b/library/core/src/main/java/com/google/android/exoplayer2/drm/DrmInitData.java index 9fa6547a00..d814ece31d 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/drm/DrmInitData.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/drm/DrmInitData.java @@ -60,7 +60,7 @@ public final class DrmInitData implements Comparator, Parcelable { if (cloneSchemeDatas) { schemeDatas = schemeDatas.clone(); } - // Sorting ensures that universal scheme data(i.e. data that applies to all schemes) is matched + // Sorting ensures that universal scheme data (i.e. data that applies to all schemes) is matched // last. It's also required by the equals and hashcode implementations. Arrays.sort(schemeDatas, this); // Check for no duplicates. diff --git a/library/core/src/main/java/com/google/android/exoplayer2/drm/ExoMediaDrm.java b/library/core/src/main/java/com/google/android/exoplayer2/drm/ExoMediaDrm.java index 3d765dbef5..63387f19e1 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/drm/ExoMediaDrm.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/drm/ExoMediaDrm.java @@ -22,7 +22,6 @@ import android.media.NotProvisionedException; import android.media.ResourceBusyException; import java.util.HashMap; import java.util.Map; -import java.util.UUID; /** * Used to obtain keys for decrypting protected media streams. See {@link android.media.MediaDrm}. @@ -137,11 +136,10 @@ public interface ExoMediaDrm { /** * @see android.media.MediaCrypto#MediaCrypto(UUID, byte[]) * - * @param uuid The UUID of the crypto scheme. * @param initData Opaque initialization data specific to the crypto scheme. * @return An object extends {@link ExoMediaCrypto}, using opaque crypto scheme specific data. * @throws MediaCryptoException */ - T createMediaCrypto(UUID uuid, byte[] initData) throws MediaCryptoException; + T createMediaCrypto(byte[] initData) throws MediaCryptoException; } diff --git a/library/core/src/main/java/com/google/android/exoplayer2/drm/FrameworkMediaDrm.java b/library/core/src/main/java/com/google/android/exoplayer2/drm/FrameworkMediaDrm.java index 5d0cb038d4..d664cb69a9 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/drm/FrameworkMediaDrm.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/drm/FrameworkMediaDrm.java @@ -37,6 +37,7 @@ import java.util.UUID; @TargetApi(18) public final class FrameworkMediaDrm implements ExoMediaDrm { + private final UUID uuid; private final MediaDrm mediaDrm; /** @@ -59,10 +60,9 @@ public final class FrameworkMediaDrm implements ExoMediaDrm