mirror of
https://github.com/samsonjs/media.git
synced 2026-04-21 13:55:47 +00:00
Make DefaultDrmSession package private
PiperOrigin-RevId: 278639779
This commit is contained in:
parent
02a83a5377
commit
efc7f55616
2 changed files with 36 additions and 36 deletions
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue