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
efc7f556
authored
Nov 05, 2019
by
aquilescanta
Committed by
Oliver Woodman
Nov 05, 2019
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Make DefaultDrmSession package private
PiperOrigin-RevId: 278639779
parent
02a83a53
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
36 additions
and
36 deletions
library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSession.java
library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManager.java
library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSession.java
View file @
efc7f556
...
...
@@ -48,7 +48,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
/** A {@link DrmSession} that supports playbacks using {@link ExoMediaDrm}. */
@TargetApi
(
18
)
public
class
DefaultDrmSession
<
T
extends
ExoMediaCrypto
>
implements
DrmSession
<
T
>
{
/* package */
class
DefaultDrmSession
<
T
extends
ExoMediaCrypto
>
implements
DrmSession
<
T
>
{
/** Thrown when an unexpected exception or error is thrown during provisioning or key requests. */
public
static
final
class
UnexpectedDrmSessionException
extends
IOException
{
...
...
library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManager.java
View file @
efc7f556
...
...
@@ -23,7 +23,6 @@ import android.os.Message;
import
androidx.annotation.IntDef
;
import
androidx.annotation.Nullable
;
import
com.google.android.exoplayer2.C
;
import
com.google.android.exoplayer2.drm.DefaultDrmSession.ProvisioningManager
;
import
com.google.android.exoplayer2.drm.DrmInitData.SchemeData
;
import
com.google.android.exoplayer2.drm.DrmSession.DrmSessionException
;
import
com.google.android.exoplayer2.drm.ExoMediaDrm.OnEventListener
;
...
...
@@ -45,8 +44,7 @@ import java.util.UUID;
/** A {@link DrmSessionManager} that supports playbacks using {@link ExoMediaDrm}. */
@TargetApi
(
18
)
public
class
DefaultDrmSessionManager
<
T
extends
ExoMediaCrypto
>
implements
DrmSessionManager
<
T
>,
ProvisioningManager
<
T
>
{
public
class
DefaultDrmSessionManager
<
T
extends
ExoMediaCrypto
>
implements
DrmSessionManager
<
T
>
{
/**
* Builder for {@link DefaultDrmSessionManager} instances.
...
...
@@ -230,6 +228,7 @@ public class DefaultDrmSessionManager<T extends ExoMediaCrypto>
private
final
boolean
multiSession
;
private
final
boolean
preferSecureDecoders
;
@Flags
private
final
int
flags
;
private
final
ProvisioningManagerImpl
provisioningManagerImpl
;
private
final
LoadErrorHandlingPolicy
loadErrorHandlingPolicy
;
private
final
List
<
DefaultDrmSession
<
T
>>
sessions
;
...
...
@@ -348,6 +347,7 @@ public class DefaultDrmSessionManager<T extends ExoMediaCrypto>
this
.
preferSecureDecoders
=
preferSecureDecoders
;
this
.
flags
=
flags
;
this
.
loadErrorHandlingPolicy
=
loadErrorHandlingPolicy
;
provisioningManagerImpl
=
new
ProvisioningManagerImpl
();
mode
=
MODE_PLAYBACK
;
sessions
=
new
ArrayList
<>();
provisioningSessions
=
new
ArrayList
<>();
...
...
@@ -536,37 +536,6 @@ public class DefaultDrmSessionManager<T extends ExoMediaCrypto>
:
null
;
}
// ProvisioningManager implementation.
@Override
public
void
provisionRequired
(
DefaultDrmSession
<
T
>
session
)
{
if
(
provisioningSessions
.
contains
(
session
))
{
// The session has already requested provisioning.
return
;
}
provisioningSessions
.
add
(
session
);
if
(
provisioningSessions
.
size
()
==
1
)
{
// This is the first session requesting provisioning, so have it perform the operation.
session
.
provision
();
}
}
@Override
public
void
onProvisionCompleted
()
{
for
(
DefaultDrmSession
<
T
>
session
:
provisioningSessions
)
{
session
.
onProvisionCompleted
();
}
provisioningSessions
.
clear
();
}
@Override
public
void
onProvisionError
(
Exception
error
)
{
for
(
DefaultDrmSession
<
T
>
session
:
provisioningSessions
)
{
session
.
onProvisionError
(
error
);
}
provisioningSessions
.
clear
();
}
// Internal methods.
private
void
assertExpectedPlaybackLooper
(
Looper
playbackLooper
)
{
...
...
@@ -586,7 +555,7 @@ public class DefaultDrmSessionManager<T extends ExoMediaCrypto>
return
new
DefaultDrmSession
<>(
uuid
,
exoMediaDrm
,
/* provisioningManager= */
this
,
/* provisioningManager= */
provisioningManagerImpl
,
/* releaseCallback= */
this
::
onSessionReleased
,
schemeDatas
,
mode
,
...
...
@@ -664,6 +633,37 @@ public class DefaultDrmSessionManager<T extends ExoMediaCrypto>
}
}
private
class
ProvisioningManagerImpl
implements
DefaultDrmSession
.
ProvisioningManager
<
T
>
{
@Override
public
void
provisionRequired
(
DefaultDrmSession
<
T
>
session
)
{
if
(
provisioningSessions
.
contains
(
session
))
{
// The session has already requested provisioning.
return
;
}
provisioningSessions
.
add
(
session
);
if
(
provisioningSessions
.
size
()
==
1
)
{
// This is the first session requesting provisioning, so have it perform the operation.
session
.
provision
();
}
}
@Override
public
void
onProvisionCompleted
()
{
for
(
DefaultDrmSession
<
T
>
session
:
provisioningSessions
)
{
session
.
onProvisionCompleted
();
}
provisioningSessions
.
clear
();
}
@Override
public
void
onProvisionError
(
Exception
error
)
{
for
(
DefaultDrmSession
<
T
>
session
:
provisioningSessions
)
{
session
.
onProvisionError
(
error
);
}
provisioningSessions
.
clear
();
}
}
private
class
MediaDrmEventListener
implements
OnEventListener
<
T
>
{
@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