From 78d83304af63e5f781d325525cf7137e98ca3ed2 Mon Sep 17 00:00:00 2001 From: olly Date: Fri, 22 Jun 2018 07:01:57 -0700 Subject: [PATCH] Extract scheme specific data from PSSH for some FireOS devices ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=201679215 --- .../android/exoplayer2/drm/FrameworkMediaDrm.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) 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 9f30cef0f8..a10c4c612e 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 @@ -121,11 +121,17 @@ public final class FrameworkMediaDrm implements ExoMediaDrm optionalParameters) throws NotProvisionedException { - // Prior to L the Widevine CDM required data to be extracted from the PSSH atom. - if (Util.SDK_INT < 21 && C.WIDEVINE_UUID.equals(uuid)) { + // Prior to L the Widevine CDM required data to be extracted from the PSSH atom. Some Amazon + // devices also required data to be extracted from the PSSH atom for PlayReady. + if ((Util.SDK_INT < 21 && C.WIDEVINE_UUID.equals(uuid)) + || (C.PLAYREADY_UUID.equals(uuid) + && "Amazon".equals(Util.MANUFACTURER) + && ("AFTB".equals(Util.MODEL) // Fire TV Gen 1 + || "AFTS".equals(Util.MODEL) // Fire TV Gen 2 + || "AFTM".equals(Util.MODEL)))) { // Fire TV Stick Gen 1 byte[] psshData = PsshAtomUtil.parseSchemeSpecificData(init, uuid); if (psshData == null) { - // Extraction failed. schemeData isn't a Widevine PSSH atom, so leave it unchanged. + // Extraction failed. schemeData isn't a PSSH atom, so leave it unchanged. } else { init = psshData; }