mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +08:00
Merge pull request #7099 from matamegger:feature/fix_pssh_v1_on_firetv
PiperOrigin-RevId: 303937576
This commit is contained in:
commit
918172cca7
@ -128,6 +128,10 @@
|
|||||||
([#7134](https://github.com/google/ExoPlayer/issues/7134)).
|
([#7134](https://github.com/google/ExoPlayer/issues/7134)).
|
||||||
* Fix failure to play WAV files that contain trailing non-media bytes
|
* Fix failure to play WAV files that contain trailing non-media bytes
|
||||||
([#7129](https://github.com/google/ExoPlayer/issues/7129))
|
([#7129](https://github.com/google/ExoPlayer/issues/7129))
|
||||||
|
* DRM:
|
||||||
|
* Fix playback of Widevine protected content that only provides V1 PSSH atoms
|
||||||
|
on API levels 21 and 22.
|
||||||
|
* Fix playback of PlayReady content on Fire TV Stick (Gen 2).
|
||||||
* DASH:
|
* DASH:
|
||||||
* Update the manifest URI to avoid repeated HTTP redirects
|
* Update the manifest URI to avoid repeated HTTP redirects
|
||||||
([#6907](https://github.com/google/ExoPlayer/issues/6907)).
|
([#6907](https://github.com/google/ExoPlayer/issues/6907)).
|
||||||
|
@ -369,14 +369,20 @@ public final class FrameworkMediaDrm implements ExoMediaDrm {
|
|||||||
C.PLAYREADY_UUID, addLaUrlAttributeIfMissing(schemeSpecificData));
|
C.PLAYREADY_UUID, addLaUrlAttributeIfMissing(schemeSpecificData));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prior to L the Widevine CDM required data to be extracted from the PSSH atom. Some Amazon
|
// Prior to API level 21, the Widevine CDM required scheme specific data to be extracted from
|
||||||
// devices also required data to be extracted from the PSSH atom for PlayReady.
|
// the PSSH atom. We also extract the data on API levels 21 and 22 because these API levels
|
||||||
if ((Util.SDK_INT < 21 && C.WIDEVINE_UUID.equals(uuid))
|
// don't handle V1 PSSH atoms, but do handle scheme specific data regardless of whether it's
|
||||||
|
// extracted from a V0 or a V1 PSSH atom. Hence extracting the data allows us to support content
|
||||||
|
// that only provides V1 PSSH atoms. API levels 23 and above understand V0 and V1 PSSH atoms,
|
||||||
|
// and so we do not extract the data.
|
||||||
|
// Some Amazon devices also require data to be extracted from the PSSH atom for PlayReady.
|
||||||
|
if ((Util.SDK_INT < 23 && C.WIDEVINE_UUID.equals(uuid))
|
||||||
|| (C.PLAYREADY_UUID.equals(uuid)
|
|| (C.PLAYREADY_UUID.equals(uuid)
|
||||||
&& "Amazon".equals(Util.MANUFACTURER)
|
&& "Amazon".equals(Util.MANUFACTURER)
|
||||||
&& ("AFTB".equals(Util.MODEL) // Fire TV Gen 1
|
&& ("AFTB".equals(Util.MODEL) // Fire TV Gen 1
|
||||||
|| "AFTS".equals(Util.MODEL) // Fire TV Gen 2
|
|| "AFTS".equals(Util.MODEL) // Fire TV Gen 2
|
||||||
|| "AFTM".equals(Util.MODEL)))) { // Fire TV Stick Gen 1
|
|| "AFTM".equals(Util.MODEL) // Fire TV Stick Gen 1
|
||||||
|
|| "AFTT".equals(Util.MODEL)))) { // Fire TV Stick Gen 2
|
||||||
byte[] psshData = PsshAtomUtil.parseSchemeSpecificData(initData, uuid);
|
byte[] psshData = PsshAtomUtil.parseSchemeSpecificData(initData, uuid);
|
||||||
if (psshData != null) {
|
if (psshData != null) {
|
||||||
// Extraction succeeded, so return the extracted data.
|
// Extraction succeeded, so return the extracted data.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user