Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
SDK
/
exoplayer
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
c75f3f77
authored
Mar 31, 2020
by
Oliver Woodman
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Merge pull request #7099 from matamegger:feature/fix_pssh_v1_on_firetv
PiperOrigin-RevId: 303937576
parent
1f44a4db
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
17 additions
and
7 deletions
RELEASENOTES.md
library/core/src/main/java/com/google/android/exoplayer2/drm/FrameworkMediaDrm.java
RELEASENOTES.md
View file @
c75f3f77
...
@@ -18,10 +18,14 @@
...
@@ -18,10 +18,14 @@
(
[
#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
)
).
*
Parse period
`AssetIdentifier`
elements.
*
Parse period
`AssetIdentifier`
elements.
*
UI: Add an option to set whether to use the orientation sensor for rotation
*
UI: Add an option to set whether to use the orientation sensor for rotation
in spherical playbacks
in spherical playbacks
(
[
#6761
](
https://github.com/google/ExoPlayer/issues/6761
)
).
(
[
#6761
](
https://github.com/google/ExoPlayer/issues/6761
)
).
...
...
library/core/src/main/java/com/google/android/exoplayer2/drm/FrameworkMediaDrm.java
View file @
c75f3f77
...
@@ -341,14 +341,20 @@ public final class FrameworkMediaDrm implements ExoMediaDrm<FrameworkMediaCrypto
...
@@ -341,14 +341,20 @@ public final class FrameworkMediaDrm implements ExoMediaDrm<FrameworkMediaCrypto
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.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment