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
656c97f1
authored
Sep 17, 2019
by
olly
Committed by
Oliver Woodman
Sep 17, 2019
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Minor DefaultDrmSessionManager tweaks
PiperOrigin-RevId: 269574864
parent
5df2f142
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
35 additions
and
30 deletions
library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManager.java
library/core/src/main/java/com/google/android/exoplayer2/drm/DummyExoMediaDrm.java
library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManager.java
View file @
656c97f1
...
...
@@ -343,7 +343,8 @@ public class DefaultDrmSessionManager<T extends ExoMediaCrypto>
/**
* Sets the mode, which determines the role of sessions acquired from the instance. This must be
* called before {@link #acquireSession(Looper, DrmInitData)} is called.
* called before {@link #acquireSession(Looper, DrmInitData)} or {@link
* #acquirePlaceholderSession(Looper)} is called.
*
* <p>By default, the mode is {@link #MODE_PLAYBACK} and a streaming license is requested when
* required.
...
...
@@ -410,6 +411,7 @@ public class DefaultDrmSessionManager<T extends ExoMediaCrypto>
@Override
@Nullable
public
DrmSession
<
T
>
acquirePlaceholderSession
(
Looper
playbackLooper
)
{
assertExpectedPlaybackLooper
(
playbackLooper
);
if
(!
allowPlaceholderSessions
||
mediaDrm
.
getExoMediaCryptoType
()
==
null
)
{
return
null
;
}
...
...
@@ -426,6 +428,7 @@ public class DefaultDrmSessionManager<T extends ExoMediaCrypto>
@Override
public
DrmSession
<
T
>
acquireSession
(
Looper
playbackLooper
,
DrmInitData
drmInitData
)
{
assertExpectedPlaybackLooper
(
playbackLooper
);
maybeCreateMediaDrmHandler
(
playbackLooper
);
List
<
SchemeData
>
schemeDatas
=
null
;
...
...
@@ -461,34 +464,6 @@ public class DefaultDrmSessionManager<T extends ExoMediaCrypto>
return
session
;
}
private
DefaultDrmSession
<
T
>
createNewDefaultSession
(
@Nullable
List
<
SchemeData
>
schemeDatas
,
boolean
isPlaceholderSession
)
{
return
new
DefaultDrmSession
<>(
uuid
,
mediaDrm
,
/* provisioningManager= */
this
,
/* releaseCallback= */
this
::
onSessionReleased
,
schemeDatas
,
mode
,
isPlaceholderSession
,
offlineLicenseKeySetId
,
optionalKeyRequestParameters
,
callback
,
Assertions
.
checkNotNull
(
playbackLooper
),
eventDispatcher
,
loadErrorHandlingPolicy
);
}
private
void
maybeCreateMediaDrmHandler
(
Looper
playbackLooper
)
{
Assertions
.
checkState
(
this
.
playbackLooper
==
null
||
this
.
playbackLooper
==
playbackLooper
);
if
(
sessions
.
isEmpty
())
{
this
.
playbackLooper
=
playbackLooper
;
if
(
mediaDrmHandler
==
null
)
{
mediaDrmHandler
=
new
MediaDrmHandler
(
playbackLooper
);
}
}
}
@Override
@Nullable
public
Class
<
T
>
getExoMediaCryptoType
(
DrmInitData
drmInitData
)
{
...
...
@@ -528,6 +503,35 @@ public class DefaultDrmSessionManager<T extends ExoMediaCrypto>
// Internal methods.
private
void
assertExpectedPlaybackLooper
(
Looper
playbackLooper
)
{
Assertions
.
checkState
(
this
.
playbackLooper
==
null
||
this
.
playbackLooper
==
playbackLooper
);
this
.
playbackLooper
=
playbackLooper
;
}
private
void
maybeCreateMediaDrmHandler
(
Looper
playbackLooper
)
{
if
(
mediaDrmHandler
==
null
)
{
mediaDrmHandler
=
new
MediaDrmHandler
(
playbackLooper
);
}
}
private
DefaultDrmSession
<
T
>
createNewDefaultSession
(
@Nullable
List
<
SchemeData
>
schemeDatas
,
boolean
isPlaceholderSession
)
{
return
new
DefaultDrmSession
<>(
uuid
,
mediaDrm
,
/* provisioningManager= */
this
,
/* releaseCallback= */
this
::
onSessionReleased
,
schemeDatas
,
mode
,
isPlaceholderSession
,
offlineLicenseKeySetId
,
optionalKeyRequestParameters
,
callback
,
Assertions
.
checkNotNull
(
playbackLooper
),
eventDispatcher
,
loadErrorHandlingPolicy
);
}
private
void
onSessionReleased
(
DefaultDrmSession
<
T
>
drmSession
)
{
sessions
.
remove
(
drmSession
);
if
(
placeholderDrmSession
==
drmSession
)
{
...
...
library/core/src/main/java/com/google/android/exoplayer2/drm/DummyExoMediaDrm.java
View file @
656c97f1
...
...
@@ -18,6 +18,7 @@ package com.google.android.exoplayer2.drm;
import
android.media.MediaDrmException
;
import
androidx.annotation.Nullable
;
import
androidx.annotation.RequiresApi
;
import
com.google.android.exoplayer2.util.Util
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -110,7 +111,7 @@ public final class DummyExoMediaDrm<T extends ExoMediaCrypto> implements ExoMedi
@Override
public
byte
[]
getPropertyByteArray
(
String
propertyName
)
{
return
new
byte
[
0
]
;
return
Util
.
EMPTY_BYTE_ARRAY
;
}
@Override
...
...
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