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; ...@@ -29,7 +29,6 @@ import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.drm.DrmInitData.SchemeData; import com.google.android.exoplayer2.drm.DrmInitData.SchemeData;
import com.google.android.exoplayer2.drm.ExoMediaDrm.KeyRequest; import com.google.android.exoplayer2.drm.ExoMediaDrm.KeyRequest;
import com.google.android.exoplayer2.drm.ExoMediaDrm.ProvisionRequest; 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.upstream.LoadErrorHandlingPolicy;
import com.google.android.exoplayer2.util.Assertions; import com.google.android.exoplayer2.util.Assertions;
import com.google.android.exoplayer2.util.EventDispatcher; import com.google.android.exoplayer2.util.EventDispatcher;
...@@ -143,8 +142,8 @@ public class DefaultDrmSession<T extends ExoMediaCrypto> implements DrmSession<T ...@@ -143,8 +142,8 @@ public class DefaultDrmSession<T extends ExoMediaCrypto> implements DrmSession<T
* @param callback The media DRM callback. * @param callback The media DRM callback.
* @param playbackLooper The playback looper. * @param playbackLooper The playback looper.
* @param eventDispatcher The dispatcher for DRM session manager events. * @param eventDispatcher The dispatcher for DRM session manager events.
* @param initialDrmRequestRetryCount The number of times to retry for initial provisioning and * @param loadErrorHandlingPolicy The {@link LoadErrorHandlingPolicy} for key and provisioning
* key request before reporting error. * requests.
*/ */
public DefaultDrmSession( public DefaultDrmSession(
UUID uuid, UUID uuid,
...@@ -158,7 +157,7 @@ public class DefaultDrmSession<T extends ExoMediaCrypto> implements DrmSession<T ...@@ -158,7 +157,7 @@ public class DefaultDrmSession<T extends ExoMediaCrypto> implements DrmSession<T
MediaDrmCallback callback, MediaDrmCallback callback,
Looper playbackLooper, Looper playbackLooper,
EventDispatcher<DefaultDrmSessionEventListener> eventDispatcher, EventDispatcher<DefaultDrmSessionEventListener> eventDispatcher,
int initialDrmRequestRetryCount) { LoadErrorHandlingPolicy loadErrorHandlingPolicy) {
if (mode == DefaultDrmSessionManager.MODE_QUERY if (mode == DefaultDrmSessionManager.MODE_QUERY
|| mode == DefaultDrmSessionManager.MODE_RELEASE) { || mode == DefaultDrmSessionManager.MODE_RELEASE) {
Assertions.checkNotNull(offlineLicenseKeySetId); Assertions.checkNotNull(offlineLicenseKeySetId);
...@@ -177,9 +176,7 @@ public class DefaultDrmSession<T extends ExoMediaCrypto> implements DrmSession<T ...@@ -177,9 +176,7 @@ public class DefaultDrmSession<T extends ExoMediaCrypto> implements DrmSession<T
this.optionalKeyRequestParameters = optionalKeyRequestParameters; this.optionalKeyRequestParameters = optionalKeyRequestParameters;
this.callback = callback; this.callback = callback;
this.eventDispatcher = eventDispatcher; this.eventDispatcher = eventDispatcher;
loadErrorHandlingPolicy = this.loadErrorHandlingPolicy = loadErrorHandlingPolicy;
new DefaultLoadErrorHandlingPolicy(
/* minimumLoadableRetryCount= */ initialDrmRequestRetryCount);
state = STATE_OPENING; state = STATE_OPENING;
responseHandler = new ResponseHandler(playbackLooper); responseHandler = new ResponseHandler(playbackLooper);
} }
......
...@@ -28,6 +28,8 @@ import com.google.android.exoplayer2.drm.DefaultDrmSession.ProvisioningManager; ...@@ -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.DrmInitData.SchemeData;
import com.google.android.exoplayer2.drm.DrmSession.DrmSessionException; import com.google.android.exoplayer2.drm.DrmSession.DrmSessionException;
import com.google.android.exoplayer2.drm.ExoMediaDrm.OnEventListener; 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.Assertions;
import com.google.android.exoplayer2.util.EventDispatcher; import com.google.android.exoplayer2.util.EventDispatcher;
import com.google.android.exoplayer2.util.Log; import com.google.android.exoplayer2.util.Log;
...@@ -91,7 +93,7 @@ public class DefaultDrmSessionManager<T extends ExoMediaCrypto> ...@@ -91,7 +93,7 @@ public class DefaultDrmSessionManager<T extends ExoMediaCrypto>
@Nullable private final HashMap<String, String> optionalKeyRequestParameters; @Nullable private final HashMap<String, String> optionalKeyRequestParameters;
private final EventDispatcher<DefaultDrmSessionEventListener> eventDispatcher; private final EventDispatcher<DefaultDrmSessionEventListener> eventDispatcher;
private final boolean multiSession; private final boolean multiSession;
private final int initialDrmRequestRetryCount; private final LoadErrorHandlingPolicy loadErrorHandlingPolicy;
private final List<DefaultDrmSession<T>> sessions; private final List<DefaultDrmSession<T>> sessions;
private final List<DefaultDrmSession<T>> provisioningSessions; private final List<DefaultDrmSession<T>> provisioningSessions;
...@@ -224,6 +226,22 @@ public class DefaultDrmSessionManager<T extends ExoMediaCrypto> ...@@ -224,6 +226,22 @@ public class DefaultDrmSessionManager<T extends ExoMediaCrypto>
@Nullable HashMap<String, String> optionalKeyRequestParameters, @Nullable HashMap<String, String> optionalKeyRequestParameters,
boolean multiSession, boolean multiSession,
int initialDrmRequestRetryCount) { 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(uuid);
Assertions.checkNotNull(mediaDrm); Assertions.checkNotNull(mediaDrm);
Assertions.checkArgument(!C.COMMON_PSSH_UUID.equals(uuid), "Use C.CLEARKEY_UUID instead"); Assertions.checkArgument(!C.COMMON_PSSH_UUID.equals(uuid), "Use C.CLEARKEY_UUID instead");
...@@ -233,7 +251,7 @@ public class DefaultDrmSessionManager<T extends ExoMediaCrypto> ...@@ -233,7 +251,7 @@ public class DefaultDrmSessionManager<T extends ExoMediaCrypto>
this.optionalKeyRequestParameters = optionalKeyRequestParameters; this.optionalKeyRequestParameters = optionalKeyRequestParameters;
this.eventDispatcher = new EventDispatcher<>(); this.eventDispatcher = new EventDispatcher<>();
this.multiSession = multiSession; this.multiSession = multiSession;
this.initialDrmRequestRetryCount = initialDrmRequestRetryCount; this.loadErrorHandlingPolicy = loadErrorHandlingPolicy;
mode = MODE_PLAYBACK; mode = MODE_PLAYBACK;
sessions = new ArrayList<>(); sessions = new ArrayList<>();
provisioningSessions = new ArrayList<>(); provisioningSessions = new ArrayList<>();
...@@ -429,7 +447,7 @@ public class DefaultDrmSessionManager<T extends ExoMediaCrypto> ...@@ -429,7 +447,7 @@ public class DefaultDrmSessionManager<T extends ExoMediaCrypto>
callback, callback,
playbackLooper, playbackLooper,
eventDispatcher, eventDispatcher,
initialDrmRequestRetryCount); loadErrorHandlingPolicy);
sessions.add(session); sessions.add(session);
} }
session.acquireReference(); 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