Rabbit-R1/android (non root)/smali/smali_classes2/androidx/media3/exoplayer/drm/DefaultDrmSession.smali
2024-05-21 17:08:36 -04:00

1660 lines
51 KiB
Smali

.class Landroidx/media3/exoplayer/drm/DefaultDrmSession;
.super Ljava/lang/Object;
.source "DefaultDrmSession.java"
# interfaces
.implements Landroidx/media3/exoplayer/drm/DrmSession;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Landroidx/media3/exoplayer/drm/DefaultDrmSession$ResponseHandler;,
Landroidx/media3/exoplayer/drm/DefaultDrmSession$ProvisioningManager;,
Landroidx/media3/exoplayer/drm/DefaultDrmSession$ReferenceCountListener;,
Landroidx/media3/exoplayer/drm/DefaultDrmSession$RequestHandler;,
Landroidx/media3/exoplayer/drm/DefaultDrmSession$RequestTask;,
Landroidx/media3/exoplayer/drm/DefaultDrmSession$UnexpectedDrmSessionException;
}
.end annotation
# static fields
.field private static final MAX_LICENSE_DURATION_TO_RENEW_SECONDS:I = 0x3c
.field private static final MSG_KEYS:I = 0x1
.field private static final MSG_PROVISION:I = 0x0
.field private static final TAG:Ljava/lang/String; = "DefaultDrmSession"
# instance fields
.field private final callback:Landroidx/media3/exoplayer/drm/MediaDrmCallback;
.field private cryptoConfig:Landroidx/media3/decoder/CryptoConfig;
.field private currentKeyRequest:Landroidx/media3/exoplayer/drm/ExoMediaDrm$KeyRequest;
.field private currentProvisionRequest:Landroidx/media3/exoplayer/drm/ExoMediaDrm$ProvisionRequest;
.field private final eventDispatchers:Landroidx/media3/common/util/CopyOnWriteMultiset;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroidx/media3/common/util/CopyOnWriteMultiset<",
"Landroidx/media3/exoplayer/drm/DrmSessionEventListener$EventDispatcher;",
">;"
}
.end annotation
.end field
.field private final isPlaceholderSession:Z
.field private final keyRequestParameters:Ljava/util/HashMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/HashMap<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field
.field private lastException:Landroidx/media3/exoplayer/drm/DrmSession$DrmSessionException;
.field private final loadErrorHandlingPolicy:Landroidx/media3/exoplayer/upstream/LoadErrorHandlingPolicy;
.field private final mediaDrm:Landroidx/media3/exoplayer/drm/ExoMediaDrm;
.field private final mode:I
.field private offlineLicenseKeySetId:[B
.field private final playClearSamplesWithoutKeys:Z
.field private final playbackLooper:Landroid/os/Looper;
.field private final playerId:Landroidx/media3/exoplayer/analytics/PlayerId;
.field private final provisioningManager:Landroidx/media3/exoplayer/drm/DefaultDrmSession$ProvisioningManager;
.field private referenceCount:I
.field private final referenceCountListener:Landroidx/media3/exoplayer/drm/DefaultDrmSession$ReferenceCountListener;
.field private requestHandler:Landroidx/media3/exoplayer/drm/DefaultDrmSession$RequestHandler;
.field private requestHandlerThread:Landroid/os/HandlerThread;
.field private final responseHandler:Landroidx/media3/exoplayer/drm/DefaultDrmSession$ResponseHandler;
.field public final schemeDatas:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Landroidx/media3/common/DrmInitData$SchemeData;",
">;"
}
.end annotation
.end field
.field private sessionId:[B
.field private state:I
.field private final uuid:Ljava/util/UUID;
# direct methods
.method public constructor <init>(Ljava/util/UUID;Landroidx/media3/exoplayer/drm/ExoMediaDrm;Landroidx/media3/exoplayer/drm/DefaultDrmSession$ProvisioningManager;Landroidx/media3/exoplayer/drm/DefaultDrmSession$ReferenceCountListener;Ljava/util/List;IZZ[BLjava/util/HashMap;Landroidx/media3/exoplayer/drm/MediaDrmCallback;Landroid/os/Looper;Landroidx/media3/exoplayer/upstream/LoadErrorHandlingPolicy;Landroidx/media3/exoplayer/analytics/PlayerId;)V
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/UUID;",
"Landroidx/media3/exoplayer/drm/ExoMediaDrm;",
"Landroidx/media3/exoplayer/drm/DefaultDrmSession$ProvisioningManager;",
"Landroidx/media3/exoplayer/drm/DefaultDrmSession$ReferenceCountListener;",
"Ljava/util/List<",
"Landroidx/media3/common/DrmInitData$SchemeData;",
">;IZZ[B",
"Ljava/util/HashMap<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;",
"Landroidx/media3/exoplayer/drm/MediaDrmCallback;",
"Landroid/os/Looper;",
"Landroidx/media3/exoplayer/upstream/LoadErrorHandlingPolicy;",
"Landroidx/media3/exoplayer/analytics/PlayerId;",
")V"
}
.end annotation
.line 189
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/4 v0, 0x1
if-eq p6, v0, :cond_0
const/4 v0, 0x3
if-ne p6, v0, :cond_1
.line 192
:cond_0
invoke-static {p9}, Landroidx/media3/common/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
:cond_1
iput-object p1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->uuid:Ljava/util/UUID;
iput-object p3, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->provisioningManager:Landroidx/media3/exoplayer/drm/DefaultDrmSession$ProvisioningManager;
iput-object p4, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->referenceCountListener:Landroidx/media3/exoplayer/drm/DefaultDrmSession$ReferenceCountListener;
iput-object p2, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->mediaDrm:Landroidx/media3/exoplayer/drm/ExoMediaDrm;
iput p6, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->mode:I
iput-boolean p7, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->playClearSamplesWithoutKeys:Z
iput-boolean p8, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->isPlaceholderSession:Z
if-eqz p9, :cond_2
iput-object p9, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->offlineLicenseKeySetId:[B
const/4 p1, 0x0
iput-object p1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->schemeDatas:Ljava/util/List;
goto :goto_0
.line 205
:cond_2
invoke-static {p5}, Landroidx/media3/common/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Ljava/util/List;
invoke-static {p1}, Ljava/util/Collections;->unmodifiableList(Ljava/util/List;)Ljava/util/List;
move-result-object p1
iput-object p1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->schemeDatas:Ljava/util/List;
:goto_0
iput-object p10, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->keyRequestParameters:Ljava/util/HashMap;
iput-object p11, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->callback:Landroidx/media3/exoplayer/drm/MediaDrmCallback;
.line 209
new-instance p1, Landroidx/media3/common/util/CopyOnWriteMultiset;
invoke-direct {p1}, Landroidx/media3/common/util/CopyOnWriteMultiset;-><init>()V
iput-object p1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->eventDispatchers:Landroidx/media3/common/util/CopyOnWriteMultiset;
iput-object p13, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->loadErrorHandlingPolicy:Landroidx/media3/exoplayer/upstream/LoadErrorHandlingPolicy;
iput-object p14, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->playerId:Landroidx/media3/exoplayer/analytics/PlayerId;
const/4 p1, 0x2
iput p1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->state:I
iput-object p12, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->playbackLooper:Landroid/os/Looper;
.line 214
new-instance p1, Landroidx/media3/exoplayer/drm/DefaultDrmSession$ResponseHandler;
invoke-direct {p1, p0, p12}, Landroidx/media3/exoplayer/drm/DefaultDrmSession$ResponseHandler;-><init>(Landroidx/media3/exoplayer/drm/DefaultDrmSession;Landroid/os/Looper;)V
iput-object p1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->responseHandler:Landroidx/media3/exoplayer/drm/DefaultDrmSession$ResponseHandler;
return-void
.end method
.method static synthetic access$000(Landroidx/media3/exoplayer/drm/DefaultDrmSession;Ljava/lang/Object;Ljava/lang/Object;)V
.locals 0
.line 61
invoke-direct {p0, p1, p2}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->onProvisionResponse(Ljava/lang/Object;Ljava/lang/Object;)V
return-void
.end method
.method static synthetic access$100(Landroidx/media3/exoplayer/drm/DefaultDrmSession;Ljava/lang/Object;Ljava/lang/Object;)V
.locals 0
.line 61
invoke-direct {p0, p1, p2}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->onKeyResponse(Ljava/lang/Object;Ljava/lang/Object;)V
return-void
.end method
.method static synthetic access$200(Landroidx/media3/exoplayer/drm/DefaultDrmSession;)Ljava/util/UUID;
.locals 0
.line 61
iget-object p0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->uuid:Ljava/util/UUID;
return-object p0
.end method
.method static synthetic access$300(Landroidx/media3/exoplayer/drm/DefaultDrmSession;)Landroidx/media3/exoplayer/drm/MediaDrmCallback;
.locals 0
.line 61
iget-object p0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->callback:Landroidx/media3/exoplayer/drm/MediaDrmCallback;
return-object p0
.end method
.method static synthetic access$400(Landroidx/media3/exoplayer/drm/DefaultDrmSession;)Landroidx/media3/exoplayer/upstream/LoadErrorHandlingPolicy;
.locals 0
.line 61
iget-object p0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->loadErrorHandlingPolicy:Landroidx/media3/exoplayer/upstream/LoadErrorHandlingPolicy;
return-object p0
.end method
.method static synthetic access$500(Landroidx/media3/exoplayer/drm/DefaultDrmSession;)Landroidx/media3/exoplayer/drm/DefaultDrmSession$ResponseHandler;
.locals 0
.line 61
iget-object p0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->responseHandler:Landroidx/media3/exoplayer/drm/DefaultDrmSession$ResponseHandler;
return-object p0
.end method
.method private dispatchEvent(Landroidx/media3/common/util/Consumer;)V
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroidx/media3/common/util/Consumer<",
"Landroidx/media3/exoplayer/drm/DrmSessionEventListener$EventDispatcher;",
">;)V"
}
.end annotation
iget-object p0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->eventDispatchers:Landroidx/media3/common/util/CopyOnWriteMultiset;
.line 572
invoke-virtual {p0}, Landroidx/media3/common/util/CopyOnWriteMultiset;->elementSet()Ljava/util/Set;
move-result-object p0
invoke-interface {p0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object p0
:goto_0
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_0
invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroidx/media3/exoplayer/drm/DrmSessionEventListener$EventDispatcher;
.line 573
invoke-interface {p1, v0}, Landroidx/media3/common/util/Consumer;->accept(Ljava/lang/Object;)V
goto :goto_0
:cond_0
return-void
.end method
.method private doLicense(Z)V
.locals 8
.annotation runtime Lorg/checkerframework/checker/nullness/qual/RequiresNonNull;
value = {
"sessionId"
}
.end annotation
iget-boolean v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->isPlaceholderSession:Z
if-eqz v0, :cond_0
return-void
:cond_0
iget-object v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->sessionId:[B
.line 433
invoke-static {v0}, Landroidx/media3/common/util/Util;->castNonNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, [B
iget v1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->mode:I
const/4 v2, 0x1
const/4 v3, 0x2
if-eqz v1, :cond_4
if-eq v1, v2, :cond_4
if-eq v1, v3, :cond_2
const/4 v0, 0x3
if-eq v1, v0, :cond_1
goto/16 :goto_0
:cond_1
iget-object v1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->offlineLicenseKeySetId:[B
.line 463
invoke-static {v1}, Landroidx/media3/common/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
iget-object v1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->sessionId:[B
.line 464
invoke-static {v1}, Landroidx/media3/common/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
iget-object v1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->offlineLicenseKeySetId:[B
.line 465
invoke-direct {p0, v1, v0, p1}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->postKeyRequest([BIZ)V
goto :goto_0
:cond_2
iget-object v1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->offlineLicenseKeySetId:[B
if-eqz v1, :cond_3
.line 458
invoke-direct {p0}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->restoreKeys()Z
move-result v1
if-eqz v1, :cond_9
.line 459
:cond_3
invoke-direct {p0, v0, v3, p1}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->postKeyRequest([BIZ)V
goto :goto_0
:cond_4
iget-object v1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->offlineLicenseKeySetId:[B
if-nez v1, :cond_5
.line 438
invoke-direct {p0, v0, v2, p1}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->postKeyRequest([BIZ)V
goto :goto_0
:cond_5
iget v1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->state:I
const/4 v2, 0x4
if-eq v1, v2, :cond_6
.line 439
invoke-direct {p0}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->restoreKeys()Z
move-result v1
if-eqz v1, :cond_9
.line 440
:cond_6
invoke-direct {p0}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->getLicenseDurationRemainingSec()J
move-result-wide v4
iget v1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->mode:I
if-nez v1, :cond_7
const-wide/16 v6, 0x3c
cmp-long v1, v4, v6
if-gtz v1, :cond_7
.line 443
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "Offline license has expired or will expire soon. Remaining seconds: "
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v1, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
const-string v2, "DefaultDrmSession"
invoke-static {v2, v1}, Landroidx/media3/common/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 448
invoke-direct {p0, v0, v3, p1}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->postKeyRequest([BIZ)V
goto :goto_0
:cond_7
const-wide/16 v0, 0x0
cmp-long p1, v4, v0
if-gtz p1, :cond_8
.line 450
new-instance p1, Landroidx/media3/exoplayer/drm/KeysExpiredException;
invoke-direct {p1}, Landroidx/media3/exoplayer/drm/KeysExpiredException;-><init>()V
invoke-direct {p0, p1, v3}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->onError(Ljava/lang/Exception;I)V
goto :goto_0
:cond_8
iput v2, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->state:I
.line 453
new-instance p1, Landroidx/media3/exoplayer/drm/DefaultDrmSession$$ExternalSyntheticLambda2;
invoke-direct {p1}, Landroidx/media3/exoplayer/drm/DefaultDrmSession$$ExternalSyntheticLambda2;-><init>()V
invoke-direct {p0, p1}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->dispatchEvent(Landroidx/media3/common/util/Consumer;)V
:cond_9
:goto_0
return-void
.end method
.method private getLicenseDurationRemainingSec()J
.locals 4
.line 484
sget-object v0, Landroidx/media3/common/C;->WIDEVINE_UUID:Ljava/util/UUID;
iget-object v1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->uuid:Ljava/util/UUID;
invoke-virtual {v0, v1}, Ljava/util/UUID;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_0
const-wide v0, 0x7fffffffffffffffL
return-wide v0
.line 488
:cond_0
invoke-static {p0}, Landroidx/media3/exoplayer/drm/WidevineUtil;->getLicenseDurationRemainingSec(Landroidx/media3/exoplayer/drm/DrmSession;)Landroid/util/Pair;
move-result-object p0
invoke-static {p0}, Landroidx/media3/common/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Landroid/util/Pair;
.line 489
iget-object v0, p0, Landroid/util/Pair;->first:Ljava/lang/Object;
check-cast v0, Ljava/lang/Long;
invoke-virtual {v0}, Ljava/lang/Long;->longValue()J
move-result-wide v0
iget-object p0, p0, Landroid/util/Pair;->second:Ljava/lang/Object;
check-cast p0, Ljava/lang/Long;
invoke-virtual {p0}, Ljava/lang/Long;->longValue()J
move-result-wide v2
invoke-static {v0, v1, v2, v3}, Ljava/lang/Math;->min(JJ)J
move-result-wide v0
return-wide v0
.end method
.method private isOpen()Z
.locals 1
.annotation runtime Lorg/checkerframework/checker/nullness/qual/EnsuresNonNullIf;
expression = {
"sessionId"
}
result = true
.end annotation
iget p0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->state:I
const/4 v0, 0x3
if-eq p0, v0, :cond_1
const/4 v0, 0x4
if-ne p0, v0, :cond_0
goto :goto_0
:cond_0
const/4 p0, 0x0
goto :goto_1
:cond_1
:goto_0
const/4 p0, 0x1
:goto_1
return p0
.end method
.method static synthetic lambda$onError$1(Ljava/lang/Exception;Landroidx/media3/exoplayer/drm/DrmSessionEventListener$EventDispatcher;)V
.locals 0
.line 559
invoke-virtual {p1, p0}, Landroidx/media3/exoplayer/drm/DrmSessionEventListener$EventDispatcher;->drmSessionManagerError(Ljava/lang/Exception;)V
return-void
.end method
.method static synthetic lambda$openInternal$0(ILandroidx/media3/exoplayer/drm/DrmSessionEventListener$EventDispatcher;)V
.locals 0
.line 394
invoke-virtual {p1, p0}, Landroidx/media3/exoplayer/drm/DrmSessionEventListener$EventDispatcher;->drmSessionAcquired(I)V
return-void
.end method
.method private onError(Ljava/lang/Exception;I)V
.locals 1
.line 556
new-instance v0, Landroidx/media3/exoplayer/drm/DrmSession$DrmSessionException;
.line 557
invoke-static {p1, p2}, Landroidx/media3/exoplayer/drm/DrmUtil;->getErrorCodeForMediaDrmException(Ljava/lang/Exception;I)I
move-result p2
invoke-direct {v0, p1, p2}, Landroidx/media3/exoplayer/drm/DrmSession$DrmSessionException;-><init>(Ljava/lang/Throwable;I)V
iput-object v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->lastException:Landroidx/media3/exoplayer/drm/DrmSession$DrmSessionException;
const-string p2, "DefaultDrmSession"
const-string v0, "DRM session error"
.line 558
invoke-static {p2, v0, p1}, Landroidx/media3/common/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
.line 559
new-instance p2, Landroidx/media3/exoplayer/drm/DefaultDrmSession$$ExternalSyntheticLambda0;
invoke-direct {p2, p1}, Landroidx/media3/exoplayer/drm/DefaultDrmSession$$ExternalSyntheticLambda0;-><init>(Ljava/lang/Exception;)V
invoke-direct {p0, p2}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->dispatchEvent(Landroidx/media3/common/util/Consumer;)V
iget p1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->state:I
const/4 p2, 0x4
if-eq p1, p2, :cond_0
const/4 p1, 0x1
iput p1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->state:I
:cond_0
return-void
.end method
.method private onKeyResponse(Ljava/lang/Object;Ljava/lang/Object;)V
.locals 1
iget-object v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->currentKeyRequest:Landroidx/media3/exoplayer/drm/ExoMediaDrm$KeyRequest;
if-ne p1, v0, :cond_5
.line 503
invoke-direct {p0}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->isOpen()Z
move-result p1
if-nez p1, :cond_0
goto :goto_0
:cond_0
const/4 p1, 0x0
iput-object p1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->currentKeyRequest:Landroidx/media3/exoplayer/drm/ExoMediaDrm$KeyRequest;
.line 509
instance-of p1, p2, Ljava/lang/Exception;
if-eqz p1, :cond_1
.line 510
check-cast p2, Ljava/lang/Exception;
const/4 p1, 0x0
invoke-direct {p0, p2, p1}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->onKeysError(Ljava/lang/Exception;Z)V
return-void
.line 515
:cond_1
:try_start_0
check-cast p2, [B
iget p1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->mode:I
const/4 v0, 0x3
if-ne p1, v0, :cond_2
iget-object p1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->mediaDrm:Landroidx/media3/exoplayer/drm/ExoMediaDrm;
iget-object v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->offlineLicenseKeySetId:[B
.line 517
invoke-static {v0}, Landroidx/media3/common/util/Util;->castNonNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, [B
invoke-interface {p1, v0, p2}, Landroidx/media3/exoplayer/drm/ExoMediaDrm;->provideKeyResponse([B[B)[B
.line 518
new-instance p1, Landroidx/media3/exoplayer/drm/DefaultDrmSession$$ExternalSyntheticLambda3;
invoke-direct {p1}, Landroidx/media3/exoplayer/drm/DefaultDrmSession$$ExternalSyntheticLambda3;-><init>()V
invoke-direct {p0, p1}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->dispatchEvent(Landroidx/media3/common/util/Consumer;)V
goto :goto_0
:cond_2
iget-object p1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->mediaDrm:Landroidx/media3/exoplayer/drm/ExoMediaDrm;
iget-object v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->sessionId:[B
.line 520
invoke-interface {p1, v0, p2}, Landroidx/media3/exoplayer/drm/ExoMediaDrm;->provideKeyResponse([B[B)[B
move-result-object p1
iget p2, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->mode:I
const/4 v0, 0x2
if-eq p2, v0, :cond_3
if-nez p2, :cond_4
iget-object p2, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->offlineLicenseKeySetId:[B
if-eqz p2, :cond_4
:cond_3
if-eqz p1, :cond_4
.line 521
array-length p2, p1
if-eqz p2, :cond_4
iput-object p1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->offlineLicenseKeySetId:[B
:cond_4
const/4 p1, 0x4
iput p1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->state:I
.line 529
new-instance p1, Landroidx/media3/exoplayer/drm/DefaultDrmSession$$ExternalSyntheticLambda4;
invoke-direct {p1}, Landroidx/media3/exoplayer/drm/DefaultDrmSession$$ExternalSyntheticLambda4;-><init>()V
invoke-direct {p0, p1}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->dispatchEvent(Landroidx/media3/common/util/Consumer;)V
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_0
:catch_0
move-exception p1
const/4 p2, 0x1
.line 532
invoke-direct {p0, p1, p2}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->onKeysError(Ljava/lang/Exception;Z)V
:cond_5
:goto_0
return-void
.end method
.method private onKeysError(Ljava/lang/Exception;Z)V
.locals 1
.line 544
instance-of v0, p1, Landroid/media/NotProvisionedException;
if-eqz v0, :cond_0
iget-object p1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->provisioningManager:Landroidx/media3/exoplayer/drm/DefaultDrmSession$ProvisioningManager;
.line 545
invoke-interface {p1, p0}, Landroidx/media3/exoplayer/drm/DefaultDrmSession$ProvisioningManager;->provisionRequired(Landroidx/media3/exoplayer/drm/DefaultDrmSession;)V
goto :goto_1
:cond_0
if-eqz p2, :cond_1
const/4 p2, 0x1
goto :goto_0
:cond_1
const/4 p2, 0x2
.line 547
:goto_0
invoke-direct {p0, p1, p2}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->onError(Ljava/lang/Exception;I)V
:goto_1
return-void
.end method
.method private onKeysRequired()V
.locals 2
iget v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->mode:I
if-nez v0, :cond_0
iget v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->state:I
const/4 v1, 0x4
if-ne v0, v1, :cond_0
iget-object v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->sessionId:[B
.line 538
invoke-static {v0}, Landroidx/media3/common/util/Util;->castNonNull(Ljava/lang/Object;)Ljava/lang/Object;
const/4 v0, 0x0
.line 539
invoke-direct {p0, v0}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->doLicense(Z)V
:cond_0
return-void
.end method
.method private onProvisionResponse(Ljava/lang/Object;Ljava/lang/Object;)V
.locals 1
iget-object v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->currentProvisionRequest:Landroidx/media3/exoplayer/drm/ExoMediaDrm$ProvisionRequest;
if-ne p1, v0, :cond_2
iget p1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->state:I
const/4 v0, 0x2
if-eq p1, v0, :cond_0
.line 407
invoke-direct {p0}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->isOpen()Z
move-result p1
if-nez p1, :cond_0
goto :goto_0
:cond_0
const/4 p1, 0x0
iput-object p1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->currentProvisionRequest:Landroidx/media3/exoplayer/drm/ExoMediaDrm$ProvisionRequest;
.line 413
instance-of p1, p2, Ljava/lang/Exception;
if-eqz p1, :cond_1
iget-object p0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->provisioningManager:Landroidx/media3/exoplayer/drm/DefaultDrmSession$ProvisioningManager;
.line 414
check-cast p2, Ljava/lang/Exception;
const/4 p1, 0x0
invoke-interface {p0, p2, p1}, Landroidx/media3/exoplayer/drm/DefaultDrmSession$ProvisioningManager;->onProvisionError(Ljava/lang/Exception;Z)V
return-void
:cond_1
:try_start_0
iget-object p1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->mediaDrm:Landroidx/media3/exoplayer/drm/ExoMediaDrm;
.line 419
check-cast p2, [B
invoke-interface {p1, p2}, Landroidx/media3/exoplayer/drm/ExoMediaDrm;->provideProvisionResponse([B)V
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
iget-object p0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->provisioningManager:Landroidx/media3/exoplayer/drm/DefaultDrmSession$ProvisioningManager;
.line 425
invoke-interface {p0}, Landroidx/media3/exoplayer/drm/DefaultDrmSession$ProvisioningManager;->onProvisionCompleted()V
return-void
:catch_0
move-exception p1
iget-object p0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->provisioningManager:Landroidx/media3/exoplayer/drm/DefaultDrmSession$ProvisioningManager;
const/4 p2, 0x1
.line 421
invoke-interface {p0, p1, p2}, Landroidx/media3/exoplayer/drm/DefaultDrmSession$ProvisioningManager;->onProvisionError(Ljava/lang/Exception;Z)V
:cond_2
:goto_0
return-void
.end method
.method private openInternal()Z
.locals 4
.annotation runtime Lorg/checkerframework/checker/nullness/qual/EnsuresNonNullIf;
expression = {
"sessionId"
}
result = true
.end annotation
.line 382
invoke-direct {p0}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->isOpen()Z
move-result v0
const/4 v1, 0x1
if-eqz v0, :cond_0
return v1
:cond_0
:try_start_0
iget-object v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->mediaDrm:Landroidx/media3/exoplayer/drm/ExoMediaDrm;
.line 388
invoke-interface {v0}, Landroidx/media3/exoplayer/drm/ExoMediaDrm;->openSession()[B
move-result-object v0
iput-object v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->sessionId:[B
iget-object v2, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->mediaDrm:Landroidx/media3/exoplayer/drm/ExoMediaDrm;
iget-object v3, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->playerId:Landroidx/media3/exoplayer/analytics/PlayerId;
.line 389
invoke-interface {v2, v0, v3}, Landroidx/media3/exoplayer/drm/ExoMediaDrm;->setPlayerIdForSession([BLandroidx/media3/exoplayer/analytics/PlayerId;)V
iget-object v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->mediaDrm:Landroidx/media3/exoplayer/drm/ExoMediaDrm;
iget-object v2, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->sessionId:[B
.line 390
invoke-interface {v0, v2}, Landroidx/media3/exoplayer/drm/ExoMediaDrm;->createCryptoConfig([B)Landroidx/media3/decoder/CryptoConfig;
move-result-object v0
iput-object v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->cryptoConfig:Landroidx/media3/decoder/CryptoConfig;
const/4 v0, 0x3
iput v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->state:I
.line 394
new-instance v2, Landroidx/media3/exoplayer/drm/DefaultDrmSession$$ExternalSyntheticLambda1;
invoke-direct {v2, v0}, Landroidx/media3/exoplayer/drm/DefaultDrmSession$$ExternalSyntheticLambda1;-><init>(I)V
invoke-direct {p0, v2}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->dispatchEvent(Landroidx/media3/common/util/Consumer;)V
iget-object v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->sessionId:[B
.line 395
invoke-static {v0}, Landroidx/media3/common/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
:try_end_0
.catch Landroid/media/NotProvisionedException; {:try_start_0 .. :try_end_0} :catch_1
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
return v1
:catch_0
move-exception v0
.line 400
invoke-direct {p0, v0, v1}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->onError(Ljava/lang/Exception;I)V
goto :goto_0
:catch_1
iget-object v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->provisioningManager:Landroidx/media3/exoplayer/drm/DefaultDrmSession$ProvisioningManager;
.line 398
invoke-interface {v0, p0}, Landroidx/media3/exoplayer/drm/DefaultDrmSession$ProvisioningManager;->provisionRequired(Landroidx/media3/exoplayer/drm/DefaultDrmSession;)V
:goto_0
const/4 p0, 0x0
return p0
.end method
.method private postKeyRequest([BIZ)V
.locals 4
const/4 v0, 0x1
:try_start_0
iget-object v1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->mediaDrm:Landroidx/media3/exoplayer/drm/ExoMediaDrm;
iget-object v2, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->schemeDatas:Ljava/util/List;
iget-object v3, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->keyRequestParameters:Ljava/util/HashMap;
.line 494
invoke-interface {v1, p1, v2, p2, v3}, Landroidx/media3/exoplayer/drm/ExoMediaDrm;->getKeyRequest([BLjava/util/List;ILjava/util/HashMap;)Landroidx/media3/exoplayer/drm/ExoMediaDrm$KeyRequest;
move-result-object p1
iput-object p1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->currentKeyRequest:Landroidx/media3/exoplayer/drm/ExoMediaDrm$KeyRequest;
iget-object p1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->requestHandler:Landroidx/media3/exoplayer/drm/DefaultDrmSession$RequestHandler;
.line 495
invoke-static {p1}, Landroidx/media3/common/util/Util;->castNonNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Landroidx/media3/exoplayer/drm/DefaultDrmSession$RequestHandler;
iget-object p2, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->currentKeyRequest:Landroidx/media3/exoplayer/drm/ExoMediaDrm$KeyRequest;
.line 496
invoke-static {p2}, Landroidx/media3/common/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p2
invoke-virtual {p1, v0, p2, p3}, Landroidx/media3/exoplayer/drm/DefaultDrmSession$RequestHandler;->post(ILjava/lang/Object;Z)V
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_0
:catch_0
move-exception p1
.line 498
invoke-direct {p0, p1, v0}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->onKeysError(Ljava/lang/Exception;Z)V
:goto_0
return-void
.end method
.method private restoreKeys()Z
.locals 4
.annotation runtime Lorg/checkerframework/checker/nullness/qual/RequiresNonNull;
value = {
"sessionId",
"offlineLicenseKeySetId"
}
.end annotation
const/4 v0, 0x1
:try_start_0
iget-object v1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->mediaDrm:Landroidx/media3/exoplayer/drm/ExoMediaDrm;
iget-object v2, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->sessionId:[B
iget-object v3, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->offlineLicenseKeySetId:[B
.line 475
invoke-interface {v1, v2, v3}, Landroidx/media3/exoplayer/drm/ExoMediaDrm;->restoreKeys([B[B)V
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
return v0
:catch_0
move-exception v1
.line 478
invoke-direct {p0, v1, v0}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->onError(Ljava/lang/Exception;I)V
const/4 p0, 0x0
return p0
.end method
.method private verifyPlaybackThread()V
.locals 2
.line 578
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v0
iget-object v1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->playbackLooper:Landroid/os/Looper;
invoke-virtual {v1}, Landroid/os/Looper;->getThread()Ljava/lang/Thread;
move-result-object v1
if-eq v0, v1, :cond_0
.line 579
new-instance v0, Ljava/lang/StringBuilder;
const-string v1, "DefaultDrmSession accessed on the wrong thread.\nCurrent thread: "
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 582
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Thread;->getName()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, "\nExpected thread: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget-object p0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->playbackLooper:Landroid/os/Looper;
.line 584
invoke-virtual {p0}, Landroid/os/Looper;->getThread()Ljava/lang/Thread;
move-result-object p0
invoke-virtual {p0}, Ljava/lang/Thread;->getName()Ljava/lang/String;
move-result-object p0
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object p0
invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
new-instance v0, Ljava/lang/IllegalStateException;
invoke-direct {v0}, Ljava/lang/IllegalStateException;-><init>()V
const-string v1, "DefaultDrmSession"
.line 579
invoke-static {v1, p0, v0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
:cond_0
return-void
.end method
# virtual methods
.method public acquire(Landroidx/media3/exoplayer/drm/DrmSessionEventListener$EventDispatcher;)V
.locals 3
.line 313
invoke-direct {p0}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->verifyPlaybackThread()V
iget v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->referenceCount:I
const/4 v1, 0x0
if-gez v0, :cond_0
.line 315
new-instance v0, Ljava/lang/StringBuilder;
const-string v2, "Session reference count less than zero: "
invoke-direct {v0, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget v2, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->referenceCount:I
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const-string v2, "DefaultDrmSession"
invoke-static {v2, v0}, Landroidx/media3/common/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)V
iput v1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->referenceCount:I
:cond_0
if-eqz p1, :cond_1
iget-object v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->eventDispatchers:Landroidx/media3/common/util/CopyOnWriteMultiset;
.line 319
invoke-virtual {v0, p1}, Landroidx/media3/common/util/CopyOnWriteMultiset;->add(Ljava/lang/Object;)V
:cond_1
iget v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->referenceCount:I
const/4 v2, 0x1
add-int/2addr v0, v2
iput v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->referenceCount:I
if-ne v0, v2, :cond_3
iget p1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->state:I
const/4 v0, 0x2
if-ne p1, v0, :cond_2
move v1, v2
.line 322
:cond_2
invoke-static {v1}, Landroidx/media3/common/util/Assertions;->checkState(Z)V
.line 323
new-instance p1, Landroid/os/HandlerThread;
const-string v0, "ExoPlayer:DrmRequestHandler"
invoke-direct {p1, v0}, Landroid/os/HandlerThread;-><init>(Ljava/lang/String;)V
iput-object p1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->requestHandlerThread:Landroid/os/HandlerThread;
.line 324
invoke-virtual {p1}, Landroid/os/HandlerThread;->start()V
.line 325
new-instance p1, Landroidx/media3/exoplayer/drm/DefaultDrmSession$RequestHandler;
iget-object v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->requestHandlerThread:Landroid/os/HandlerThread;
invoke-virtual {v0}, Landroid/os/HandlerThread;->getLooper()Landroid/os/Looper;
move-result-object v0
invoke-direct {p1, p0, v0}, Landroidx/media3/exoplayer/drm/DefaultDrmSession$RequestHandler;-><init>(Landroidx/media3/exoplayer/drm/DefaultDrmSession;Landroid/os/Looper;)V
iput-object p1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->requestHandler:Landroidx/media3/exoplayer/drm/DefaultDrmSession$RequestHandler;
.line 326
invoke-direct {p0}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->openInternal()Z
move-result p1
if-eqz p1, :cond_4
.line 327
invoke-direct {p0, v2}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->doLicense(Z)V
goto :goto_0
:cond_3
if-eqz p1, :cond_4
.line 330
invoke-direct {p0}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->isOpen()Z
move-result v0
if-eqz v0, :cond_4
iget-object v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->eventDispatchers:Landroidx/media3/common/util/CopyOnWriteMultiset;
.line 331
invoke-virtual {v0, p1}, Landroidx/media3/common/util/CopyOnWriteMultiset;->count(Ljava/lang/Object;)I
move-result v0
if-ne v0, v2, :cond_4
iget v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->state:I
.line 334
invoke-virtual {p1, v0}, Landroidx/media3/exoplayer/drm/DrmSessionEventListener$EventDispatcher;->drmSessionAcquired(I)V
:cond_4
:goto_0
iget-object p1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->referenceCountListener:Landroidx/media3/exoplayer/drm/DefaultDrmSession$ReferenceCountListener;
iget v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->referenceCount:I
.line 336
invoke-interface {p1, p0, v0}, Landroidx/media3/exoplayer/drm/DefaultDrmSession$ReferenceCountListener;->onReferenceCountIncremented(Landroidx/media3/exoplayer/drm/DefaultDrmSession;I)V
return-void
.end method
.method public final getCryptoConfig()Landroidx/media3/decoder/CryptoConfig;
.locals 0
.line 287
invoke-direct {p0}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->verifyPlaybackThread()V
iget-object p0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->cryptoConfig:Landroidx/media3/decoder/CryptoConfig;
return-object p0
.end method
.method public final getError()Landroidx/media3/exoplayer/drm/DrmSession$DrmSessionException;
.locals 2
.line 274
invoke-direct {p0}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->verifyPlaybackThread()V
iget v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->state:I
const/4 v1, 0x1
if-ne v0, v1, :cond_0
iget-object p0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->lastException:Landroidx/media3/exoplayer/drm/DrmSession$DrmSessionException;
goto :goto_0
:cond_0
const/4 p0, 0x0
:goto_0
return-object p0
.end method
.method public getOfflineLicenseKeySetId()[B
.locals 0
.line 301
invoke-direct {p0}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->verifyPlaybackThread()V
iget-object p0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->offlineLicenseKeySetId:[B
return-object p0
.end method
.method public final getSchemeUuid()Ljava/util/UUID;
.locals 0
.line 280
invoke-direct {p0}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->verifyPlaybackThread()V
iget-object p0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->uuid:Ljava/util/UUID;
return-object p0
.end method
.method public final getState()I
.locals 0
.line 261
invoke-direct {p0}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->verifyPlaybackThread()V
iget p0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->state:I
return p0
.end method
.method public hasSessionId([B)Z
.locals 0
.line 218
invoke-direct {p0}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->verifyPlaybackThread()V
iget-object p0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->sessionId:[B
.line 219
invoke-static {p0, p1}, Ljava/util/Arrays;->equals([B[B)Z
move-result p0
return p0
.end method
.method onMediaDrmEvent(I)V
.locals 1
const/4 v0, 0x2
if-eq p1, v0, :cond_0
goto :goto_0
.line 225
:cond_0
invoke-direct {p0}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->onKeysRequired()V
:goto_0
return-void
.end method
.method onProvisionCompleted()V
.locals 1
.line 244
invoke-direct {p0}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->openInternal()Z
move-result v0
if-eqz v0, :cond_0
const/4 v0, 0x1
.line 245
invoke-direct {p0, v0}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->doLicense(Z)V
:cond_0
return-void
.end method
.method onProvisionError(Ljava/lang/Exception;Z)V
.locals 0
if-eqz p2, :cond_0
const/4 p2, 0x1
goto :goto_0
:cond_0
const/4 p2, 0x3
.line 250
:goto_0
invoke-direct {p0, p1, p2}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->onError(Ljava/lang/Exception;I)V
return-void
.end method
.method public playClearSamplesWithoutKeys()Z
.locals 0
.line 267
invoke-direct {p0}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->verifyPlaybackThread()V
iget-boolean p0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->playClearSamplesWithoutKeys:Z
return p0
.end method
.method provision()V
.locals 3
iget-object v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->mediaDrm:Landroidx/media3/exoplayer/drm/ExoMediaDrm;
.line 235
invoke-interface {v0}, Landroidx/media3/exoplayer/drm/ExoMediaDrm;->getProvisionRequest()Landroidx/media3/exoplayer/drm/ExoMediaDrm$ProvisionRequest;
move-result-object v0
iput-object v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->currentProvisionRequest:Landroidx/media3/exoplayer/drm/ExoMediaDrm$ProvisionRequest;
iget-object v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->requestHandler:Landroidx/media3/exoplayer/drm/DefaultDrmSession$RequestHandler;
.line 236
invoke-static {v0}, Landroidx/media3/common/util/Util;->castNonNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroidx/media3/exoplayer/drm/DefaultDrmSession$RequestHandler;
iget-object p0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->currentProvisionRequest:Landroidx/media3/exoplayer/drm/ExoMediaDrm$ProvisionRequest;
.line 239
invoke-static {p0}, Landroidx/media3/common/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
const/4 v1, 0x1
const/4 v2, 0x0
.line 237
invoke-virtual {v0, v2, p0, v1}, Landroidx/media3/exoplayer/drm/DefaultDrmSession$RequestHandler;->post(ILjava/lang/Object;Z)V
return-void
.end method
.method public queryKeyStatus()Ljava/util/Map;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/Map<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;"
}
.end annotation
.line 294
invoke-direct {p0}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->verifyPlaybackThread()V
iget-object v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->sessionId:[B
if-nez v0, :cond_0
const/4 p0, 0x0
goto :goto_0
:cond_0
iget-object p0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->mediaDrm:Landroidx/media3/exoplayer/drm/ExoMediaDrm;
.line 295
invoke-interface {p0, v0}, Landroidx/media3/exoplayer/drm/ExoMediaDrm;->queryKeyStatus([B)Ljava/util/Map;
move-result-object p0
:goto_0
return-object p0
.end method
.method public release(Landroidx/media3/exoplayer/drm/DrmSessionEventListener$EventDispatcher;)V
.locals 3
.line 341
invoke-direct {p0}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->verifyPlaybackThread()V
iget v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->referenceCount:I
if-gtz v0, :cond_0
const-string p0, "DefaultDrmSession"
const-string p1, "release() called on a session that\'s already fully released."
.line 343
invoke-static {p0, p1}, Landroidx/media3/common/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)V
return-void
:cond_0
add-int/lit8 v0, v0, -0x1
iput v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->referenceCount:I
if-nez v0, :cond_1
const/4 v0, 0x0
iput v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->state:I
iget-object v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->responseHandler:Landroidx/media3/exoplayer/drm/DefaultDrmSession$ResponseHandler;
.line 349
invoke-static {v0}, Landroidx/media3/common/util/Util;->castNonNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroidx/media3/exoplayer/drm/DefaultDrmSession$ResponseHandler;
const/4 v1, 0x0
invoke-virtual {v0, v1}, Landroidx/media3/exoplayer/drm/DefaultDrmSession$ResponseHandler;->removeCallbacksAndMessages(Ljava/lang/Object;)V
iget-object v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->requestHandler:Landroidx/media3/exoplayer/drm/DefaultDrmSession$RequestHandler;
.line 350
invoke-static {v0}, Landroidx/media3/common/util/Util;->castNonNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroidx/media3/exoplayer/drm/DefaultDrmSession$RequestHandler;
invoke-virtual {v0}, Landroidx/media3/exoplayer/drm/DefaultDrmSession$RequestHandler;->release()V
iput-object v1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->requestHandler:Landroidx/media3/exoplayer/drm/DefaultDrmSession$RequestHandler;
iget-object v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->requestHandlerThread:Landroid/os/HandlerThread;
.line 352
invoke-static {v0}, Landroidx/media3/common/util/Util;->castNonNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/os/HandlerThread;
invoke-virtual {v0}, Landroid/os/HandlerThread;->quit()Z
iput-object v1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->requestHandlerThread:Landroid/os/HandlerThread;
iput-object v1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->cryptoConfig:Landroidx/media3/decoder/CryptoConfig;
iput-object v1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->lastException:Landroidx/media3/exoplayer/drm/DrmSession$DrmSessionException;
iput-object v1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->currentKeyRequest:Landroidx/media3/exoplayer/drm/ExoMediaDrm$KeyRequest;
iput-object v1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->currentProvisionRequest:Landroidx/media3/exoplayer/drm/ExoMediaDrm$ProvisionRequest;
iget-object v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->sessionId:[B
if-eqz v0, :cond_1
iget-object v2, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->mediaDrm:Landroidx/media3/exoplayer/drm/ExoMediaDrm;
.line 359
invoke-interface {v2, v0}, Landroidx/media3/exoplayer/drm/ExoMediaDrm;->closeSession([B)V
iput-object v1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->sessionId:[B
:cond_1
if-eqz p1, :cond_2
iget-object v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->eventDispatchers:Landroidx/media3/common/util/CopyOnWriteMultiset;
.line 364
invoke-virtual {v0, p1}, Landroidx/media3/common/util/CopyOnWriteMultiset;->remove(Ljava/lang/Object;)V
iget-object v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->eventDispatchers:Landroidx/media3/common/util/CopyOnWriteMultiset;
.line 365
invoke-virtual {v0, p1}, Landroidx/media3/common/util/CopyOnWriteMultiset;->count(Ljava/lang/Object;)I
move-result v0
if-nez v0, :cond_2
.line 367
invoke-virtual {p1}, Landroidx/media3/exoplayer/drm/DrmSessionEventListener$EventDispatcher;->drmSessionReleased()V
:cond_2
iget-object p1, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->referenceCountListener:Landroidx/media3/exoplayer/drm/DefaultDrmSession$ReferenceCountListener;
iget v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->referenceCount:I
.line 370
invoke-interface {p1, p0, v0}, Landroidx/media3/exoplayer/drm/DefaultDrmSession$ReferenceCountListener;->onReferenceCountDecremented(Landroidx/media3/exoplayer/drm/DefaultDrmSession;I)V
return-void
.end method
.method public requiresSecureDecoder(Ljava/lang/String;)Z
.locals 1
.line 307
invoke-direct {p0}, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->verifyPlaybackThread()V
iget-object v0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->mediaDrm:Landroidx/media3/exoplayer/drm/ExoMediaDrm;
iget-object p0, p0, Landroidx/media3/exoplayer/drm/DefaultDrmSession;->sessionId:[B
.line 308
invoke-static {p0}, Landroidx/media3/common/util/Assertions;->checkStateNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
check-cast p0, [B
invoke-interface {v0, p0, p1}, Landroidx/media3/exoplayer/drm/ExoMediaDrm;->requiresSecureDecoder([BLjava/lang/String;)Z
move-result p0
return p0
.end method