DefaultDrmSessionManager.smali
.class public Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lcom/google/android/exoplayer2/drm/DefaultDrmSession$ProvisioningManager;
.implements Lcom/google/android/exoplayer2/drm/DrmSessionManager;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$MediaDrmEventListener;,
Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$MediaDrmHandler;,
Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$Mode;,
Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$EventListener;
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<T::",
"Lcom/google/android/exoplayer2/drm/ExoMediaCrypto;",
">",
"Ljava/lang/Object;",
"Lcom/google/android/exoplayer2/drm/DefaultDrmSession$ProvisioningManager<",
"TT;>;",
"Lcom/google/android/exoplayer2/drm/DrmSessionManager<",
"TT;>;"
}
.end annotation
# static fields
.field private static final CENC_SCHEME_MIME_TYPE:Ljava/lang/String; = "cenc"
.field public static final INITIAL_DRM_REQUEST_RETRY_COUNT:I = 0x3
.field public static final MODE_DOWNLOAD:I = 0x2
.field public static final MODE_PLAYBACK:I = 0x0
.field public static final MODE_QUERY:I = 0x1
.field public static final MODE_RELEASE:I = 0x3
.field public static final PLAYREADY_CUSTOM_DATA_KEY:Ljava/lang/String; = "PRCustomData"
# instance fields
.field private final callback:Lcom/google/android/exoplayer2/drm/MediaDrmCallback;
.field private final eventHandler:Landroid/os/Handler;
.field private final eventListener:Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$EventListener;
.field private final initialDrmRequestRetryCount:I
.field private final mediaDrm:Lcom/google/android/exoplayer2/drm/ExoMediaDrm;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/android/exoplayer2/drm/ExoMediaDrm<",
"TT;>;"
}
.end annotation
.end field
.field volatile mediaDrmHandler:Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$MediaDrmHandler;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager<",
"TT;>.MediaDrmHandler;"
}
.end annotation
.end field
.field private mode:I
.field private final multiSession:Z
.field private offlineLicenseKeySetId:[B
.field private final optionalKeyRequestParameters:Ljava/util/HashMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/HashMap<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field
.field private playbackLooper:Landroid/os/Looper;
.field private final provisioningSessions:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/drm/DefaultDrmSession<",
"TT;>;>;"
}
.end annotation
.end field
.field private final sessions:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/drm/DefaultDrmSession<",
"TT;>;>;"
}
.end annotation
.end field
.field private final uuid:Ljava/util/UUID;
# direct methods
.method public constructor <init>(Ljava/util/UUID;Lcom/google/android/exoplayer2/drm/ExoMediaDrm;Lcom/google/android/exoplayer2/drm/MediaDrmCallback;Ljava/util/HashMap;Landroid/os/Handler;Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$EventListener;)V
.registers 16
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/UUID;",
"Lcom/google/android/exoplayer2/drm/ExoMediaDrm<",
"TT;>;",
"Lcom/google/android/exoplayer2/drm/MediaDrmCallback;",
"Ljava/util/HashMap<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;",
"Landroid/os/Handler;",
"Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$EventListener;",
")V"
}
.end annotation
const/4 v7, 0x0
const/4 v8, 0x3
move-object v0, p0
move-object v1, p1
move-object v2, p2
move-object v3, p3
move-object v4, p4
move-object v5, p5
move-object v6, p6
.line 208
invoke-direct/range {v0 .. v8}, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;-><init>(Ljava/util/UUID;Lcom/google/android/exoplayer2/drm/ExoMediaDrm;Lcom/google/android/exoplayer2/drm/MediaDrmCallback;Ljava/util/HashMap;Landroid/os/Handler;Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$EventListener;ZI)V
return-void
.end method
.method public constructor <init>(Ljava/util/UUID;Lcom/google/android/exoplayer2/drm/ExoMediaDrm;Lcom/google/android/exoplayer2/drm/MediaDrmCallback;Ljava/util/HashMap;Landroid/os/Handler;Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$EventListener;Z)V
.registers 17
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/UUID;",
"Lcom/google/android/exoplayer2/drm/ExoMediaDrm<",
"TT;>;",
"Lcom/google/android/exoplayer2/drm/MediaDrmCallback;",
"Ljava/util/HashMap<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;",
"Landroid/os/Handler;",
"Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$EventListener;",
"Z)V"
}
.end annotation
const/4 v8, 0x3
move-object v0, p0
move-object v1, p1
move-object v2, p2
move-object v3, p3
move-object v4, p4
move-object v5, p5
move-object v6, p6
move/from16 v7, p7
.line 227
invoke-direct/range {v0 .. v8}, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;-><init>(Ljava/util/UUID;Lcom/google/android/exoplayer2/drm/ExoMediaDrm;Lcom/google/android/exoplayer2/drm/MediaDrmCallback;Ljava/util/HashMap;Landroid/os/Handler;Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$EventListener;ZI)V
return-void
.end method
.method public constructor <init>(Ljava/util/UUID;Lcom/google/android/exoplayer2/drm/ExoMediaDrm;Lcom/google/android/exoplayer2/drm/MediaDrmCallback;Ljava/util/HashMap;Landroid/os/Handler;Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$EventListener;ZI)V
.registers 11
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/UUID;",
"Lcom/google/android/exoplayer2/drm/ExoMediaDrm<",
"TT;>;",
"Lcom/google/android/exoplayer2/drm/MediaDrmCallback;",
"Ljava/util/HashMap<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;",
"Landroid/os/Handler;",
"Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$EventListener;",
"ZI)V"
}
.end annotation
.line 247
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 248
invoke-static {p1}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 249
invoke-static {p2}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 250
sget-object v0, Lcom/google/android/exoplayer2/C;->COMMON_PSSH_UUID:Ljava/util/UUID;
invoke-virtual {v0, p1}, Ljava/util/UUID;->equals(Ljava/lang/Object;)Z
move-result v0
xor-int/lit8 v0, v0, 0x1
const-string v1, "Use C.CLEARKEY_UUID instead"
invoke-static {v0, v1}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(ZLjava/lang/Object;)V
.line 251
iput-object p1, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->uuid:Ljava/util/UUID;
.line 252
iput-object p2, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->mediaDrm:Lcom/google/android/exoplayer2/drm/ExoMediaDrm;
.line 253
iput-object p3, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->callback:Lcom/google/android/exoplayer2/drm/MediaDrmCallback;
.line 254
iput-object p4, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->optionalKeyRequestParameters:Ljava/util/HashMap;
.line 255
iput-object p5, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->eventHandler:Landroid/os/Handler;
.line 256
iput-object p6, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->eventListener:Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$EventListener;
.line 257
iput-boolean p7, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->multiSession:Z
.line 258
iput p8, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->initialDrmRequestRetryCount:I
const/4 p1, 0x0
.line 259
iput p1, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->mode:I
.line 260
new-instance p1, Ljava/util/ArrayList;
invoke-direct {p1}, Ljava/util/ArrayList;-><init>()V
iput-object p1, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->sessions:Ljava/util/List;
.line 261
new-instance p1, Ljava/util/ArrayList;
invoke-direct {p1}, Ljava/util/ArrayList;-><init>()V
iput-object p1, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->provisioningSessions:Ljava/util/List;
if-eqz p7, :cond_40
const-string p1, "sessionSharing"
const-string p3, "enable"
.line 263
invoke-interface {p2, p1, p3}, Lcom/google/android/exoplayer2/drm/ExoMediaDrm;->setPropertyString(Ljava/lang/String;Ljava/lang/String;)V
.line 265
:cond_40
new-instance p1, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$MediaDrmEventListener;
const/4 p3, 0x0
invoke-direct {p1, p0, p3}, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$MediaDrmEventListener;-><init>(Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$1;)V
invoke-interface {p2, p1}, Lcom/google/android/exoplayer2/drm/ExoMediaDrm;->setOnEventListener(Lcom/google/android/exoplayer2/drm/ExoMediaDrm$OnEventListener;)V
return-void
.end method
.method static synthetic access$100(Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;)Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$EventListener;
.registers 1
.line 47
iget-object p0, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->eventListener:Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$EventListener;
return-object p0
.end method
.method static synthetic access$200(Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;)Ljava/util/List;
.registers 1
.line 47
iget-object p0, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->sessions:Ljava/util/List;
return-object p0
.end method
.method static synthetic access$300(Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;)I
.registers 1
.line 47
iget p0, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->mode:I
return p0
.end method
.method private static getSchemeData(Lcom/google/android/exoplayer2/drm/DrmInitData;Ljava/util/UUID;Z)Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;
.registers 9
.line 485
new-instance v0, Ljava/util/ArrayList;
iget v1, p0, Lcom/google/android/exoplayer2/drm/DrmInitData;->schemeDataCount:I
invoke-direct {v0, v1}, Ljava/util/ArrayList;-><init>(I)V
const/4 v1, 0x0
const/4 v2, 0x0
.line 486
:goto_9
iget v3, p0, Lcom/google/android/exoplayer2/drm/DrmInitData;->schemeDataCount:I
const/4 v4, 0x1
if-ge v2, v3, :cond_38
.line 487
invoke-virtual {p0, v2}, Lcom/google/android/exoplayer2/drm/DrmInitData;->get(I)Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;
move-result-object v3
.line 488
invoke-virtual {v3, p1}, Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;->matches(Ljava/util/UUID;)Z
move-result v5
if-nez v5, :cond_2a
sget-object v5, Lcom/google/android/exoplayer2/C;->CLEARKEY_UUID:Ljava/util/UUID;
.line 489
invoke-virtual {v5, p1}, Ljava/util/UUID;->equals(Ljava/lang/Object;)Z
move-result v5
if-eqz v5, :cond_29
sget-object v5, Lcom/google/android/exoplayer2/C;->COMMON_PSSH_UUID:Ljava/util/UUID;
invoke-virtual {v3, v5}, Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;->matches(Ljava/util/UUID;)Z
move-result v5
if-eqz v5, :cond_29
goto :goto_2a
:cond_29
const/4 v4, 0x0
:cond_2a
:goto_2a
if-eqz v4, :cond_35
.line 490
iget-object v4, v3, Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;->data:[B
if-nez v4, :cond_32
if-eqz p2, :cond_35
.line 491
:cond_32
invoke-interface {v0, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
:cond_35
add-int/lit8 v2, v2, 0x1
goto :goto_9
.line 495
:cond_38
invoke-interface {v0}, Ljava/util/List;->isEmpty()Z
move-result p0
if-eqz p0, :cond_40
const/4 p0, 0x0
return-object p0
.line 500
:cond_40
sget-object p0, Lcom/google/android/exoplayer2/C;->WIDEVINE_UUID:Ljava/util/UUID;
invoke-virtual {p0, p1}, Ljava/util/UUID;->equals(Ljava/lang/Object;)Z
move-result p0
if-eqz p0, :cond_76
const/4 p0, 0x0
.line 501
:goto_49
invoke-interface {v0}, Ljava/util/List;->size()I
move-result p1
if-ge p0, p1, :cond_76
.line 502
invoke-interface {v0, p0}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object p1
check-cast p1, Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;
.line 503
invoke-virtual {p1}, Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;->hasData()Z
move-result p2
if-eqz p2, :cond_62
iget-object p2, p1, Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;->data:[B
.line 504
invoke-static {p2}, Lcom/google/android/exoplayer2/extractor/mp4/PsshAtomUtil;->parseVersion([B)I
move-result p2
goto :goto_63
:cond_62
const/4 p2, -0x1
.line 505
:goto_63
sget v2, Lcom/google/android/exoplayer2/util/Util;->SDK_INT:I
const/16 v3, 0x17
if-ge v2, v3, :cond_6c
if-nez p2, :cond_6c
return-object p1
.line 507
:cond_6c
sget v2, Lcom/google/android/exoplayer2/util/Util;->SDK_INT:I
if-lt v2, v3, :cond_73
if-ne p2, v4, :cond_73
return-object p1
:cond_73
add-int/lit8 p0, p0, 0x1
goto :goto_49
.line 514
:cond_76
invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object p0
check-cast p0, Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;
return-object p0
.end method
.method private static getSchemeInitData(Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;Ljava/util/UUID;)[B
.registers 4
.line 518
iget-object p0, p0, Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;->data:[B
.line 519
sget v0, Lcom/google/android/exoplayer2/util/Util;->SDK_INT:I
const/16 v1, 0x15
if-ge v0, v1, :cond_f
.line 521
invoke-static {p0, p1}, Lcom/google/android/exoplayer2/extractor/mp4/PsshAtomUtil;->parseSchemeSpecificData([BLjava/util/UUID;)[B
move-result-object p1
if-eqz p1, :cond_f
move-object p0, p1
:cond_f
return-object p0
.end method
.method private static getSchemeMimeType(Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;Ljava/util/UUID;)Ljava/lang/String;
.registers 4
.line 532
iget-object p0, p0, Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;->mimeType:Ljava/lang/String;
.line 533
sget v0, Lcom/google/android/exoplayer2/util/Util;->SDK_INT:I
const/16 v1, 0x1a
if-ge v0, v1, :cond_22
sget-object v0, Lcom/google/android/exoplayer2/C;->CLEARKEY_UUID:Ljava/util/UUID;
invoke-virtual {v0, p1}, Ljava/util/UUID;->equals(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_22
const-string p1, "video/mp4"
.line 534
invoke-virtual {p1, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p1
if-nez p1, :cond_20
const-string p1, "audio/mp4"
.line 535
invoke-virtual {p1, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_22
:cond_20
const-string p0, "cenc"
:cond_22
return-object p0
.end method
.method public static newFrameworkInstance(Ljava/util/UUID;Lcom/google/android/exoplayer2/drm/MediaDrmCallback;Ljava/util/HashMap;Landroid/os/Handler;Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$EventListener;)Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;
.registers 15
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/UUID;",
"Lcom/google/android/exoplayer2/drm/MediaDrmCallback;",
"Ljava/util/HashMap<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;",
"Landroid/os/Handler;",
"Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$EventListener;",
")",
"Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager<",
"Lcom/google/android/exoplayer2/drm/FrameworkMediaCrypto;",
">;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/drm/UnsupportedDrmException;
}
.end annotation
.line 190
new-instance v9, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;
invoke-static {p0}, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->newInstance(Ljava/util/UUID;)Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;
move-result-object v2
const/4 v7, 0x0
const/4 v8, 0x3
move-object v0, v9
move-object v1, p0
move-object v3, p1
move-object v4, p2
move-object v5, p3
move-object v6, p4
invoke-direct/range {v0 .. v8}, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;-><init>(Ljava/util/UUID;Lcom/google/android/exoplayer2/drm/ExoMediaDrm;Lcom/google/android/exoplayer2/drm/MediaDrmCallback;Ljava/util/HashMap;Landroid/os/Handler;Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$EventListener;ZI)V
return-object v9
.end method
.method public static newPlayReadyInstance(Lcom/google/android/exoplayer2/drm/MediaDrmCallback;Ljava/lang/String;Landroid/os/Handler;Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$EventListener;)Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/drm/MediaDrmCallback;",
"Ljava/lang/String;",
"Landroid/os/Handler;",
"Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$EventListener;",
")",
"Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager<",
"Lcom/google/android/exoplayer2/drm/FrameworkMediaCrypto;",
">;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/drm/UnsupportedDrmException;
}
.end annotation
.line 165
invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-nez v0, :cond_11
.line 166
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
const-string v1, "PRCustomData"
.line 167
invoke-virtual {v0, v1, p1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_12
:cond_11
const/4 v0, 0x0
.line 171
:goto_12
sget-object p1, Lcom/google/android/exoplayer2/C;->PLAYREADY_UUID:Ljava/util/UUID;
invoke-static {p1, p0, v0, p2, p3}, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->newFrameworkInstance(Ljava/util/UUID;Lcom/google/android/exoplayer2/drm/MediaDrmCallback;Ljava/util/HashMap;Landroid/os/Handler;Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$EventListener;)Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;
move-result-object p0
return-object p0
.end method
.method public static newWidevineInstance(Lcom/google/android/exoplayer2/drm/MediaDrmCallback;Ljava/util/HashMap;Landroid/os/Handler;Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$EventListener;)Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/drm/MediaDrmCallback;",
"Ljava/util/HashMap<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;",
"Landroid/os/Handler;",
"Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$EventListener;",
")",
"Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager<",
"Lcom/google/android/exoplayer2/drm/FrameworkMediaCrypto;",
">;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/drm/UnsupportedDrmException;
}
.end annotation
.line 144
sget-object v0, Lcom/google/android/exoplayer2/C;->WIDEVINE_UUID:Ljava/util/UUID;
invoke-static {v0, p0, p1, p2, p3}, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->newFrameworkInstance(Ljava/util/UUID;Lcom/google/android/exoplayer2/drm/MediaDrmCallback;Ljava/util/HashMap;Landroid/os/Handler;Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$EventListener;)Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;
move-result-object p0
return-object p0
.end method
# virtual methods
.method public acquireSession(Landroid/os/Looper;Lcom/google/android/exoplayer2/drm/DrmInitData;)Lcom/google/android/exoplayer2/drm/DrmSession;
.registers 19
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/os/Looper;",
"Lcom/google/android/exoplayer2/drm/DrmInitData;",
")",
"Lcom/google/android/exoplayer2/drm/DrmSession<",
"TT;>;"
}
.end annotation
move-object/from16 v14, p0
move-object/from16 v10, p1
.line 371
iget-object v0, v14, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->playbackLooper:Landroid/os/Looper;
const/4 v1, 0x0
if-eqz v0, :cond_e
if-ne v0, v10, :cond_c
goto :goto_e
:cond_c
const/4 v0, 0x0
goto :goto_f
:cond_e
:goto_e
const/4 v0, 0x1
:goto_f
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 372
iget-object v0, v14, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->sessions:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->isEmpty()Z
move-result v0
if-eqz v0, :cond_27
.line 373
iput-object v10, v14, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->playbackLooper:Landroid/os/Looper;
.line 374
iget-object v0, v14, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->mediaDrmHandler:Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$MediaDrmHandler;
if-nez v0, :cond_27
.line 375
new-instance v0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$MediaDrmHandler;
invoke-direct {v0, v14, v10}, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$MediaDrmHandler;-><init>(Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;Landroid/os/Looper;)V
iput-object v0, v14, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->mediaDrmHandler:Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$MediaDrmHandler;
.line 381
:cond_27
iget-object v0, v14, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->offlineLicenseKeySetId:[B
const/4 v2, 0x0
if-nez v0, :cond_75
.line 382
iget-object v0, v14, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->uuid:Ljava/util/UUID;
move-object/from16 v3, p2
invoke-static {v3, v0, v1}, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->getSchemeData(Lcom/google/android/exoplayer2/drm/DrmInitData;Ljava/util/UUID;Z)Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;
move-result-object v0
if-nez v0, :cond_66
.line 384
new-instance v0, Ljava/lang/IllegalStateException;
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "Media does not support uuid: "
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget-object v2, v14, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->uuid:Ljava/util/UUID;
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
.line 386
iget-object v1, v14, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->eventHandler:Landroid/os/Handler;
if-eqz v1, :cond_5b
iget-object v2, v14, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->eventListener:Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$EventListener;
if-eqz v2, :cond_5b
.line 387
new-instance v2, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$1;
invoke-direct {v2, v14, v0}, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$1;-><init>(Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;Ljava/lang/IllegalStateException;)V
invoke-virtual {v1, v2}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
.line 394
:cond_5b
new-instance v1, Lcom/google/android/exoplayer2/drm/ErrorStateDrmSession;
new-instance v2, Lcom/google/android/exoplayer2/drm/DrmSession$DrmSessionException;
invoke-direct {v2, v0}, Lcom/google/android/exoplayer2/drm/DrmSession$DrmSessionException;-><init>(Ljava/lang/Throwable;)V
invoke-direct {v1, v2}, Lcom/google/android/exoplayer2/drm/ErrorStateDrmSession;-><init>(Lcom/google/android/exoplayer2/drm/DrmSession$DrmSessionException;)V
return-object v1
.line 396
:cond_66
iget-object v3, v14, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->uuid:Ljava/util/UUID;
invoke-static {v0, v3}, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->getSchemeInitData(Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;Ljava/util/UUID;)[B
move-result-object v3
.line 397
iget-object v4, v14, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->uuid:Ljava/util/UUID;
invoke-static {v0, v4}, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->getSchemeMimeType(Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;Ljava/util/UUID;)Ljava/lang/String;
move-result-object v0
move-object v5, v0
move-object v4, v3
goto :goto_77
:cond_75
move-object v4, v2
move-object v5, v4
.line 401
:goto_77
iget-boolean v0, v14, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->multiSession:Z
if-nez v0, :cond_8e
.line 402
iget-object v0, v14, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->sessions:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->isEmpty()Z
move-result v0
if-eqz v0, :cond_84
goto :goto_a7
:cond_84
iget-object v0, v14, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->sessions:Ljava/util/List;
invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/exoplayer2/drm/DefaultDrmSession;
move-object v2, v0
goto :goto_a7
.line 406
:cond_8e
iget-object v0, v14, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->sessions:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v0
:cond_94
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_a7
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/google/android/exoplayer2/drm/DefaultDrmSession;
.line 407
invoke-virtual {v1, v4}, Lcom/google/android/exoplayer2/drm/DefaultDrmSession;->hasInitData([B)Z
move-result v3
if-eqz v3, :cond_94
move-object v2, v1
:cond_a7
:goto_a7
if-nez v2, :cond_cb
.line 416
new-instance v15, Lcom/google/android/exoplayer2/drm/DefaultDrmSession;
iget-object v1, v14, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->uuid:Ljava/util/UUID;
iget-object v2, v14, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->mediaDrm:Lcom/google/android/exoplayer2/drm/ExoMediaDrm;
iget v6, v14, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->mode:I
iget-object v7, v14, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->offlineLicenseKeySetId:[B
iget-object v8, v14, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->optionalKeyRequestParameters:Ljava/util/HashMap;
iget-object v9, v14, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->callback:Lcom/google/android/exoplayer2/drm/MediaDrmCallback;
iget-object v11, v14, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->eventHandler:Landroid/os/Handler;
iget-object v12, v14, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->eventListener:Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$EventListener;
iget v13, v14, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->initialDrmRequestRetryCount:I
move-object v0, v15
move-object/from16 v3, p0
move-object/from16 v10, p1
invoke-direct/range {v0 .. v13}, Lcom/google/android/exoplayer2/drm/DefaultDrmSession;-><init>(Ljava/util/UUID;Lcom/google/android/exoplayer2/drm/ExoMediaDrm;Lcom/google/android/exoplayer2/drm/DefaultDrmSession$ProvisioningManager;[BLjava/lang/String;I[BLjava/util/HashMap;Lcom/google/android/exoplayer2/drm/MediaDrmCallback;Landroid/os/Looper;Landroid/os/Handler;Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager$EventListener;I)V
.line 419
iget-object v0, v14, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->sessions:Ljava/util/List;
invoke-interface {v0, v15}, Ljava/util/List;->add(Ljava/lang/Object;)Z
move-object v2, v15
.line 421
:cond_cb
invoke-virtual {v2}, Lcom/google/android/exoplayer2/drm/DefaultDrmSession;->acquire()V
return-object v2
.end method
.method public canAcquireSession(Lcom/google/android/exoplayer2/drm/DrmInitData;)Z
.registers 5
.line 351
iget-object v0, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->uuid:Ljava/util/UUID;
const/4 v1, 0x1
invoke-static {p1, v0, v1}, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->getSchemeData(Lcom/google/android/exoplayer2/drm/DrmInitData;Ljava/util/UUID;Z)Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;
move-result-object v0
const/4 v2, 0x0
if-nez v0, :cond_b
return v2
.line 356
:cond_b
iget-object p1, p1, Lcom/google/android/exoplayer2/drm/DrmInitData;->schemeType:Ljava/lang/String;
if-eqz p1, :cond_3a
const-string v0, "cenc"
.line 357
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_18
goto :goto_3a
:cond_18
const-string v0, "cbc1"
.line 360
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_32
const-string v0, "cbcs"
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_32
const-string v0, "cens"
.line 361
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_31
goto :goto_32
:cond_31
return v1
.line 363
:cond_32
:goto_32
sget p1, Lcom/google/android/exoplayer2/util/Util;->SDK_INT:I
const/16 v0, 0x18
if-lt p1, v0, :cond_39
return v1
:cond_39
return v2
:cond_3a
:goto_3a
return v1
.end method
.method public final getPropertyByteArray(Ljava/lang/String;)[B
.registers 3
.line 301
iget-object v0, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->mediaDrm:Lcom/google/android/exoplayer2/drm/ExoMediaDrm;
invoke-interface {v0, p1}, Lcom/google/android/exoplayer2/drm/ExoMediaDrm;->getPropertyByteArray(Ljava/lang/String;)[B
move-result-object p1
return-object p1
.end method
.method public final getPropertyString(Ljava/lang/String;)Ljava/lang/String;
.registers 3
.line 277
iget-object v0, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->mediaDrm:Lcom/google/android/exoplayer2/drm/ExoMediaDrm;
invoke-interface {v0, p1}, Lcom/google/android/exoplayer2/drm/ExoMediaDrm;->getPropertyString(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
return-object p1
.end method
.method public onProvisionCompleted()V
.registers 3
.line 457
iget-object v0, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->provisioningSessions:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v0
:goto_6
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_16
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/google/android/exoplayer2/drm/DefaultDrmSession;
.line 458
invoke-virtual {v1}, Lcom/google/android/exoplayer2/drm/DefaultDrmSession;->onProvisionCompleted()V
goto :goto_6
.line 460
:cond_16
iget-object v0, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->provisioningSessions:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->clear()V
return-void
.end method
.method public onProvisionError(Ljava/lang/Exception;)V
.registers 4
.line 465
iget-object v0, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->provisioningSessions:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v0
:goto_6
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_16
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/google/android/exoplayer2/drm/DefaultDrmSession;
.line 466
invoke-virtual {v1, p1}, Lcom/google/android/exoplayer2/drm/DefaultDrmSession;->onProvisionError(Ljava/lang/Exception;)V
goto :goto_6
.line 468
:cond_16
iget-object p1, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->provisioningSessions:Ljava/util/List;
invoke-interface {p1}, Ljava/util/List;->clear()V
return-void
.end method
.method public provisionRequired(Lcom/google/android/exoplayer2/drm/DefaultDrmSession;)V
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/drm/DefaultDrmSession<",
"TT;>;)V"
}
.end annotation
.line 448
iget-object v0, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->provisioningSessions:Ljava/util/List;
invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 449
iget-object v0, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->provisioningSessions:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v0
const/4 v1, 0x1
if-ne v0, v1, :cond_11
.line 451
invoke-virtual {p1}, Lcom/google/android/exoplayer2/drm/DefaultDrmSession;->provision()V
:cond_11
return-void
.end method
.method public releaseSession(Lcom/google/android/exoplayer2/drm/DrmSession;)V
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/drm/DrmSession<",
"TT;>;)V"
}
.end annotation
.line 427
instance-of v0, p1, Lcom/google/android/exoplayer2/drm/ErrorStateDrmSession;
if-eqz v0, :cond_5
return-void
.line 432
:cond_5
check-cast p1, Lcom/google/android/exoplayer2/drm/DefaultDrmSession;
.line 433
invoke-virtual {p1}, Lcom/google/android/exoplayer2/drm/DefaultDrmSession;->release()Z
move-result v0
if-eqz v0, :cond_34
.line 434
iget-object v0, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->sessions:Ljava/util/List;
invoke-interface {v0, p1}, Ljava/util/List;->remove(Ljava/lang/Object;)Z
.line 435
iget-object v0, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->provisioningSessions:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v0
const/4 v1, 0x1
if-le v0, v1, :cond_2f
iget-object v0, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->provisioningSessions:Ljava/util/List;
const/4 v2, 0x0
invoke-interface {v0, v2}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v0
if-ne v0, p1, :cond_2f
.line 438
iget-object v0, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->provisioningSessions:Ljava/util/List;
invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/exoplayer2/drm/DefaultDrmSession;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/drm/DefaultDrmSession;->provision()V
.line 440
:cond_2f
iget-object v0, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->provisioningSessions:Ljava/util/List;
invoke-interface {v0, p1}, Ljava/util/List;->remove(Ljava/lang/Object;)Z
:cond_34
return-void
.end method
.method public setMode(I[B)V
.registers 4
.line 339
iget-object v0, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->sessions:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->isEmpty()Z
move-result v0
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
const/4 v0, 0x1
if-eq p1, v0, :cond_f
const/4 v0, 0x3
if-ne p1, v0, :cond_12
.line 341
:cond_f
invoke-static {p2}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 343
:cond_12
iput p1, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->mode:I
.line 344
iput-object p2, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->offlineLicenseKeySetId:[B
return-void
.end method
.method public final setPropertyByteArray(Ljava/lang/String;[B)V
.registers 4
.line 313
iget-object v0, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->mediaDrm:Lcom/google/android/exoplayer2/drm/ExoMediaDrm;
invoke-interface {v0, p1, p2}, Lcom/google/android/exoplayer2/drm/ExoMediaDrm;->setPropertyByteArray(Ljava/lang/String;[B)V
return-void
.end method
.method public final setPropertyString(Ljava/lang/String;Ljava/lang/String;)V
.registers 4
.line 289
iget-object v0, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSessionManager;->mediaDrm:Lcom/google/android/exoplayer2/drm/ExoMediaDrm;
invoke-interface {v0, p1, p2}, Lcom/google/android/exoplayer2/drm/ExoMediaDrm;->setPropertyString(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method