Commit 578398c2 by aquilescanta Committed by Toni

Move DefaultLoadErrorHandling creation to DefaultDrmSessionManager

Issue:#6334
PiperOrigin-RevId: 266910499
parent 260db031
......@@ -29,7 +29,6 @@ import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.drm.DrmInitData.SchemeData;
import com.google.android.exoplayer2.drm.ExoMediaDrm.KeyRequest;
import com.google.android.exoplayer2.drm.ExoMediaDrm.ProvisionRequest;
import com.google.android.exoplayer2.upstream.DefaultLoadErrorHandlingPolicy;
import com.google.android.exoplayer2.upstream.LoadErrorHandlingPolicy;
import com.google.android.exoplayer2.util.Assertions;
import com.google.android.exoplayer2.util.EventDispatcher;
......@@ -143,8 +142,8 @@ public class DefaultDrmSession<T extends ExoMediaCrypto> implements DrmSession<T
* @param callback The media DRM callback.
* @param playbackLooper The playback looper.
* @param eventDispatcher The dispatcher for DRM session manager events.
* @param initialDrmRequestRetryCount The number of times to retry for initial provisioning and
* key request before reporting error.
* @param loadErrorHandlingPolicy The {@link LoadErrorHandlingPolicy} for key and provisioning
* requests.
*/
public DefaultDrmSession(
UUID uuid,
......@@ -158,7 +157,7 @@ public class DefaultDrmSession<T extends ExoMediaCrypto> implements DrmSession<T
MediaDrmCallback callback,
Looper playbackLooper,
EventDispatcher<DefaultDrmSessionEventListener> eventDispatcher,
int initialDrmRequestRetryCount) {
LoadErrorHandlingPolicy loadErrorHandlingPolicy) {
if (mode == DefaultDrmSessionManager.MODE_QUERY
|| mode == DefaultDrmSessionManager.MODE_RELEASE) {
Assertions.checkNotNull(offlineLicenseKeySetId);
......@@ -177,9 +176,7 @@ public class DefaultDrmSession<T extends ExoMediaCrypto> implements DrmSession<T
this.optionalKeyRequestParameters = optionalKeyRequestParameters;
this.callback = callback;
this.eventDispatcher = eventDispatcher;
loadErrorHandlingPolicy =
new DefaultLoadErrorHandlingPolicy(
/* minimumLoadableRetryCount= */ initialDrmRequestRetryCount);
this.loadErrorHandlingPolicy = loadErrorHandlingPolicy;
state = STATE_OPENING;
responseHandler = new ResponseHandler(playbackLooper);
}
......
......@@ -28,6 +28,8 @@ 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;
import com.google.android.exoplayer2.upstream.DefaultLoadErrorHandlingPolicy;
import com.google.android.exoplayer2.upstream.LoadErrorHandlingPolicy;
import com.google.android.exoplayer2.util.Assertions;
import com.google.android.exoplayer2.util.EventDispatcher;
import com.google.android.exoplayer2.util.Log;
......@@ -91,7 +93,7 @@ public class DefaultDrmSessionManager<T extends ExoMediaCrypto>
@Nullable private final HashMap<String, String> optionalKeyRequestParameters;
private final EventDispatcher<DefaultDrmSessionEventListener> eventDispatcher;
private final boolean multiSession;
private final int initialDrmRequestRetryCount;
private final LoadErrorHandlingPolicy loadErrorHandlingPolicy;
private final List<DefaultDrmSession<T>> sessions;
private final List<DefaultDrmSession<T>> provisioningSessions;
......@@ -224,6 +226,22 @@ public class DefaultDrmSessionManager<T extends ExoMediaCrypto>
@Nullable HashMap<String, String> optionalKeyRequestParameters,
boolean multiSession,
int initialDrmRequestRetryCount) {
this(
uuid,
mediaDrm,
callback,
optionalKeyRequestParameters,
multiSession,
new DefaultLoadErrorHandlingPolicy(initialDrmRequestRetryCount));
}
private DefaultDrmSessionManager(
UUID uuid,
ExoMediaDrm<T> mediaDrm,
MediaDrmCallback callback,
@Nullable HashMap<String, String> optionalKeyRequestParameters,
boolean multiSession,
LoadErrorHandlingPolicy loadErrorHandlingPolicy) {
Assertions.checkNotNull(uuid);
Assertions.checkNotNull(mediaDrm);
Assertions.checkArgument(!C.COMMON_PSSH_UUID.equals(uuid), "Use C.CLEARKEY_UUID instead");
......@@ -233,7 +251,7 @@ public class DefaultDrmSessionManager<T extends ExoMediaCrypto>
this.optionalKeyRequestParameters = optionalKeyRequestParameters;
this.eventDispatcher = new EventDispatcher<>();
this.multiSession = multiSession;
this.initialDrmRequestRetryCount = initialDrmRequestRetryCount;
this.loadErrorHandlingPolicy = loadErrorHandlingPolicy;
mode = MODE_PLAYBACK;
sessions = new ArrayList<>();
provisioningSessions = new ArrayList<>();
......@@ -429,7 +447,7 @@ public class DefaultDrmSessionManager<T extends ExoMediaCrypto>
callback,
playbackLooper,
eventDispatcher,
initialDrmRequestRetryCount);
loadErrorHandlingPolicy);
sessions.add(session);
}
session.acquireReference();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment