FrameworkMediaDrm.smali
.class public final Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;
.super Ljava/lang/Object;
.source "FrameworkMediaDrm.java"
# interfaces
.implements Lcom/google/android/exoplayer2/drm/ExoMediaDrm;
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Lcom/google/android/exoplayer2/drm/ExoMediaDrm<",
"Lcom/google/android/exoplayer2/drm/FrameworkMediaCrypto;",
">;"
}
.end annotation
# static fields
.field private static final CENC_SCHEME_MIME_TYPE:Ljava/lang/String; = "cenc"
# instance fields
.field private final mediaDrm:Landroid/media/MediaDrm;
.field private final uuid:Ljava/util/UUID;
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method private constructor <init>(Ljava/util/UUID;)V
.registers 4
.param p1, "uuid" # Ljava/util/UUID;
.annotation system Ldalvik/annotation/Throws;
value = {
Landroid/media/UnsupportedSchemeException;
}
.end annotation
.line 68
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 69
invoke-static {p1}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 70
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 71
iput-object p1, p0, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->uuid:Ljava/util/UUID;
.line 72
new-instance v0, Landroid/media/MediaDrm;
invoke-static {p1}, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->adjustUuid(Ljava/util/UUID;)Ljava/util/UUID;
move-result-object v1
invoke-direct {v0, v1}, Landroid/media/MediaDrm;-><init>(Ljava/util/UUID;)V
iput-object v0, p0, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->mediaDrm:Landroid/media/MediaDrm;
.line 73
sget-object v0, Lcom/google/android/exoplayer2/C;->WIDEVINE_UUID:Ljava/util/UUID;
invoke-virtual {v0, p1}, Ljava/util/UUID;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_33
invoke-static {}, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->needsForceWidevineL3Workaround()Z
move-result v0
if-eqz v0, :cond_33
.line 74
iget-object v0, p0, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->mediaDrm:Landroid/media/MediaDrm;
invoke-static {v0}, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->forceWidevineL3(Landroid/media/MediaDrm;)V
.line 76
:cond_33
return-void
.end method
.method private static adjustRequestData(Ljava/util/UUID;[B)[B
.registers 3
.param p0, "uuid" # Ljava/util/UUID;
.param p1, "requestData" # [B
.line 304
sget-object v0, Lcom/google/android/exoplayer2/C;->CLEARKEY_UUID:Ljava/util/UUID;
invoke-virtual {v0, p0}, Ljava/util/UUID;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_d
.line 305
invoke-static {p1}, Lcom/google/android/exoplayer2/drm/ClearKeyUtil;->adjustRequestData([B)[B
move-result-object v0
return-object v0
.line 307
:cond_d
return-object p1
.end method
.method private static adjustRequestInitData(Ljava/util/UUID;[B)[B
.registers 4
.param p0, "uuid" # Ljava/util/UUID;
.param p1, "initData" # [B
.line 278
sget v0, Lcom/google/android/exoplayer2/util/Util;->SDK_INT:I
const/16 v1, 0x15
if-ge v0, v1, :cond_e
sget-object v0, Lcom/google/android/exoplayer2/C;->WIDEVINE_UUID:Ljava/util/UUID;
invoke-virtual {v0, p0}, Ljava/util/UUID;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_3e
:cond_e
sget-object v0, Lcom/google/android/exoplayer2/C;->PLAYREADY_UUID:Ljava/util/UUID;
.line 279
invoke-virtual {v0, p0}, Ljava/util/UUID;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_45
sget-object v0, Lcom/google/android/exoplayer2/util/Util;->MANUFACTURER:Ljava/lang/String;
.line 280
const-string v1, "Amazon"
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_45
sget-object v0, Lcom/google/android/exoplayer2/util/Util;->MODEL:Ljava/lang/String;
.line 281
const-string v1, "AFTB"
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_3e
sget-object v0, Lcom/google/android/exoplayer2/util/Util;->MODEL:Ljava/lang/String;
.line 282
const-string v1, "AFTS"
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_3e
sget-object v0, Lcom/google/android/exoplayer2/util/Util;->MODEL:Ljava/lang/String;
.line 283
const-string v1, "AFTM"
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_45
.line 284
:cond_3e
invoke-static {p1, p0}, Lcom/google/android/exoplayer2/extractor/mp4/PsshAtomUtil;->parseSchemeSpecificData([BLjava/util/UUID;)[B
move-result-object v0
.line 285
.local v0, "psshData":[B
if-eqz v0, :cond_45
.line 287
return-object v0
.line 290
.end local v0 # "psshData":[B
:cond_45
return-object p1
.end method
.method private static adjustRequestMimeType(Ljava/util/UUID;Ljava/lang/String;)Ljava/lang/String;
.registers 4
.param p0, "uuid" # Ljava/util/UUID;
.param p1, "mimeType" # Ljava/lang/String;
.line 295
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;
.line 296
invoke-virtual {v0, p0}, Ljava/util/UUID;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_22
.line 297
const-string/jumbo v0, "video/mp4"
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_1f
const-string v0, "audio/mp4"
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_22
.line 298
:cond_1f
const-string v0, "cenc"
return-object v0
.line 300
:cond_22
return-object p1
.end method
.method private static adjustUuid(Ljava/util/UUID;)Ljava/util/UUID;
.registers 3
.param p0, "uuid" # Ljava/util/UUID;
.line 272
sget v0, Lcom/google/android/exoplayer2/util/Util;->SDK_INT:I
const/16 v1, 0x1b
if-ge v0, v1, :cond_11
sget-object v0, Lcom/google/android/exoplayer2/C;->CLEARKEY_UUID:Ljava/util/UUID;
invoke-virtual {v0, p0}, Ljava/util/UUID;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_11
sget-object v0, Lcom/google/android/exoplayer2/C;->COMMON_PSSH_UUID:Ljava/util/UUID;
goto :goto_12
:cond_11
move-object v0, p0
:goto_12
return-object v0
.end method
.method private static forceWidevineL3(Landroid/media/MediaDrm;)V
.registers 3
.param p0, "mediaDrm" # Landroid/media/MediaDrm;
.line 312
const-string/jumbo v0, "securityLevel"
const-string v1, "L3"
invoke-virtual {p0, v0, v1}, Landroid/media/MediaDrm;->setPropertyString(Ljava/lang/String;Ljava/lang/String;)V
.line 313
return-void
.end method
.method private static getSchemeData(Ljava/util/UUID;Ljava/util/List;)Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;
.registers 12
.param p0, "uuid" # Ljava/util/UUID;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/UUID;",
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;",
">;)",
"Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;"
}
.end annotation
.line 216
.local p1, "schemeDatas":Ljava/util/List;, "Ljava/util/List<Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;>;"
sget-object v0, Lcom/google/android/exoplayer2/C;->WIDEVINE_UUID:Ljava/util/UUID;
invoke-virtual {v0, p0}, Ljava/util/UUID;->equals(Ljava/lang/Object;)Z
move-result v0
const/4 v1, 0x0
if-nez v0, :cond_10
.line 218
invoke-interface {p1, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;
return-object v0
.line 221
:cond_10
sget v0, Lcom/google/android/exoplayer2/util/Util;->SDK_INT:I
const/16 v2, 0x1c
const/4 v3, 0x1
if-lt v0, v2, :cond_87
invoke-interface {p1}, Ljava/util/List;->size()I
move-result v0
if-le v0, v3, :cond_87
.line 223
invoke-interface {p1, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;
.line 224
.local v0, "firstSchemeData":Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;
const/4 v2, 0x0
.line 225
.local v2, "concatenatedDataLength":I
const/4 v4, 0x1
.line 226
.local v4, "canConcatenateData":Z
const/4 v5, 0x0
.local v5, "i":I
:goto_26
invoke-interface {p1}, Ljava/util/List;->size()I
move-result v6
if-ge v5, v6, :cond_60
.line 227
invoke-interface {p1, v5}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v6
check-cast v6, Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;
.line 228
.local v6, "schemeData":Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;
iget-object v7, v6, Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;->data:[B
invoke-static {v7}, Lcom/google/android/exoplayer2/util/Util;->castNonNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v7
check-cast v7, [B
.line 229
.local v7, "schemeDataData":[B
iget-boolean v8, v6, Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;->requiresSecureDecryption:Z
iget-boolean v9, v0, Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;->requiresSecureDecryption:Z
if-ne v8, v9, :cond_5f
iget-object v8, v6, Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;->mimeType:Ljava/lang/String;
iget-object v9, v0, Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;->mimeType:Ljava/lang/String;
.line 230
invoke-static {v8, v9}, Lcom/google/android/exoplayer2/util/Util;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v8
if-eqz v8, :cond_5f
iget-object v8, v6, Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;->licenseServerUrl:Ljava/lang/String;
iget-object v9, v0, Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;->licenseServerUrl:Ljava/lang/String;
.line 231
invoke-static {v8, v9}, Lcom/google/android/exoplayer2/util/Util;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v8
if-eqz v8, :cond_5f
.line 232
invoke-static {v7}, Lcom/google/android/exoplayer2/extractor/mp4/PsshAtomUtil;->isPsshAtom([B)Z
move-result v8
if-eqz v8, :cond_5f
.line 233
array-length v8, v7
add-int/2addr v2, v8
.line 226
.end local v6 # "schemeData":Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;
.end local v7 # "schemeDataData":[B
add-int/lit8 v5, v5, 0x1
goto :goto_26
.line 235
.restart local v6 # "schemeData":Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;
.restart local v7 # "schemeDataData":[B
:cond_5f
const/4 v4, 0x0
.line 239
.end local v5 # "i":I
.end local v6 # "schemeData":Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;
.end local v7 # "schemeDataData":[B
:cond_60
if-eqz v4, :cond_87
.line 240
new-array v3, v2, [B
.line 241
.local v3, "concatenatedData":[B
const/4 v5, 0x0
.line 242
.local v5, "concatenatedDataPosition":I
const/4 v6, 0x0
.local v6, "i":I
:goto_66
invoke-interface {p1}, Ljava/util/List;->size()I
move-result v7
if-ge v6, v7, :cond_82
.line 243
invoke-interface {p1, v6}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v7
check-cast v7, Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;
.line 244
.local v7, "schemeData":Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;
iget-object v8, v7, Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;->data:[B
invoke-static {v8}, Lcom/google/android/exoplayer2/util/Util;->castNonNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v8
check-cast v8, [B
.line 245
.local v8, "schemeDataData":[B
array-length v9, v8
.line 246
.local v9, "schemeDataLength":I
invoke-static {v8, v1, v3, v5, v9}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 248
add-int/2addr v5, v9
.line 242
.end local v7 # "schemeData":Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;
.end local v8 # "schemeDataData":[B
.end local v9 # "schemeDataLength":I
add-int/lit8 v6, v6, 0x1
goto :goto_66
.line 250
.end local v6 # "i":I
:cond_82
invoke-virtual {v0, v3}, Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;->copyWithData([B)Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;
move-result-object v1
return-object v1
.line 256
.end local v0 # "firstSchemeData":Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;
.end local v2 # "concatenatedDataLength":I
.end local v3 # "concatenatedData":[B
.end local v4 # "canConcatenateData":Z
.end local v5 # "concatenatedDataPosition":I
:cond_87
const/4 v0, 0x0
.local v0, "i":I
:goto_88
invoke-interface {p1}, Ljava/util/List;->size()I
move-result v2
if-ge v0, v2, :cond_b3
.line 257
invoke-interface {p1, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;
.line 258
.local v2, "schemeData":Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;
iget-object v4, v2, Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;->data:[B
invoke-static {v4}, Lcom/google/android/exoplayer2/util/Util;->castNonNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v4
check-cast v4, [B
invoke-static {v4}, Lcom/google/android/exoplayer2/extractor/mp4/PsshAtomUtil;->parseVersion([B)I
move-result v4
.line 259
.local v4, "version":I
sget v5, Lcom/google/android/exoplayer2/util/Util;->SDK_INT:I
const/16 v6, 0x17
if-ge v5, v6, :cond_a9
if-nez v4, :cond_a9
.line 260
return-object v2
.line 261
:cond_a9
sget v5, Lcom/google/android/exoplayer2/util/Util;->SDK_INT:I
if-lt v5, v6, :cond_b0
if-ne v4, v3, :cond_b0
.line 262
return-object v2
.line 256
.end local v2 # "schemeData":Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;
.end local v4 # "version":I
:cond_b0
add-int/lit8 v0, v0, 0x1
goto :goto_88
.line 267
.end local v0 # "i":I
:cond_b3
invoke-interface {p1, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;
return-object v0
.end method
.method private static needsForceWidevineL3Workaround()Z
.registers 2
.line 321
sget-object v0, Lcom/google/android/exoplayer2/util/Util;->MODEL:Ljava/lang/String;
const-string v1, "ASUS_Z00AD"
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
return v0
.end method
.method public static newInstance(Ljava/util/UUID;)Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;
.registers 4
.param p0, "uuid" # Ljava/util/UUID;
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/drm/UnsupportedDrmException;
}
.end annotation
.line 60
:try_start_0
new-instance v0, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;
invoke-direct {v0, p0}, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;-><init>(Ljava/util/UUID;)V
:try_end_5
.catch Landroid/media/UnsupportedSchemeException; {:try_start_0 .. :try_end_5} :catch_e
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_5} :catch_6
return-object v0
.line 63
:catch_6
move-exception v0
.line 64
.local v0, "e":Ljava/lang/Exception;
new-instance v1, Lcom/google/android/exoplayer2/drm/UnsupportedDrmException;
const/4 v2, 0x2
invoke-direct {v1, v2, v0}, Lcom/google/android/exoplayer2/drm/UnsupportedDrmException;-><init>(ILjava/lang/Exception;)V
throw v1
.line 61
.end local v0 # "e":Ljava/lang/Exception;
:catch_e
move-exception v0
.line 62
.local v0, "e":Landroid/media/UnsupportedSchemeException;
new-instance v1, Lcom/google/android/exoplayer2/drm/UnsupportedDrmException;
const/4 v2, 0x1
invoke-direct {v1, v2, v0}, Lcom/google/android/exoplayer2/drm/UnsupportedDrmException;-><init>(ILjava/lang/Exception;)V
throw v1
.end method
# virtual methods
.method public closeSession([B)V
.registers 3
.param p1, "sessionId" # [B
.line 116
iget-object v0, p0, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->mediaDrm:Landroid/media/MediaDrm;
invoke-virtual {v0, p1}, Landroid/media/MediaDrm;->closeSession([B)V
.line 117
return-void
.end method
.method public bridge synthetic createMediaCrypto([B)Lcom/google/android/exoplayer2/drm/ExoMediaCrypto;
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Landroid/media/MediaCryptoException;
}
.end annotation
.line 43
invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->createMediaCrypto([B)Lcom/google/android/exoplayer2/drm/FrameworkMediaCrypto;
move-result-object p1
return-object p1
.end method
.method public createMediaCrypto([B)Lcom/google/android/exoplayer2/drm/FrameworkMediaCrypto;
.registers 5
.param p1, "initData" # [B
.annotation system Ldalvik/annotation/Throws;
value = {
Landroid/media/MediaCryptoException;
}
.end annotation
.line 209
sget v0, Lcom/google/android/exoplayer2/util/Util;->SDK_INT:I
const/16 v1, 0x15
if-ge v0, v1, :cond_21
sget-object v0, Lcom/google/android/exoplayer2/C;->WIDEVINE_UUID:Ljava/util/UUID;
iget-object v1, p0, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->uuid:Ljava/util/UUID;
.line 210
invoke-virtual {v0, v1}, Ljava/util/UUID;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_21
const-string/jumbo v0, "securityLevel"
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->getPropertyString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
const-string v1, "L3"
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_21
const/4 v0, 0x1
goto :goto_22
:cond_21
const/4 v0, 0x0
.line 211
.local v0, "forceAllowInsecureDecoderComponents":Z
:goto_22
new-instance v1, Lcom/google/android/exoplayer2/drm/FrameworkMediaCrypto;
iget-object v2, p0, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->uuid:Ljava/util/UUID;
.line 212
invoke-static {v2}, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->adjustUuid(Ljava/util/UUID;)Ljava/util/UUID;
move-result-object v2
invoke-direct {v1, v2, p1, v0}, Lcom/google/android/exoplayer2/drm/FrameworkMediaCrypto;-><init>(Ljava/util/UUID;[BZ)V
.line 211
return-object v1
.end method
.method public getKeyRequest([BLjava/util/List;ILjava/util/HashMap;)Lcom/google/android/exoplayer2/drm/ExoMediaDrm$KeyRequest;
.registers 14
.param p1, "scope" # [B
.param p3, "keyType" # I
.annotation system Ldalvik/annotation/Signature;
value = {
"([B",
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;",
">;I",
"Ljava/util/HashMap<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;)",
"Lcom/google/android/exoplayer2/drm/ExoMediaDrm$KeyRequest;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Landroid/media/NotProvisionedException;
}
.end annotation
.line 126
.local p2, "schemeDatas":Ljava/util/List;, "Ljava/util/List<Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;>;"
.local p4, "optionalParameters":Ljava/util/HashMap;, "Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/String;>;"
const/4 v0, 0x0
.line 127
.local v0, "schemeData":Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;
const/4 v1, 0x0
.line 128
.local v1, "initData":[B
const/4 v2, 0x0
.line 129
.local v2, "mimeType":Ljava/lang/String;
if-eqz p2, :cond_24
.line 130
iget-object v3, p0, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->uuid:Ljava/util/UUID;
invoke-static {v3, p2}, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->getSchemeData(Ljava/util/UUID;Ljava/util/List;)Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;
move-result-object v0
.line 131
iget-object v3, p0, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->uuid:Ljava/util/UUID;
iget-object v4, v0, Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;->data:[B
invoke-static {v4}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v4
check-cast v4, [B
invoke-static {v3, v4}, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->adjustRequestInitData(Ljava/util/UUID;[B)[B
move-result-object v1
.line 132
iget-object v3, p0, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->uuid:Ljava/util/UUID;
iget-object v4, v0, Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;->mimeType:Ljava/lang/String;
invoke-static {v3, v4}, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->adjustRequestMimeType(Ljava/util/UUID;Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
move-object v7, v1
move-object v8, v2
goto :goto_26
.line 129
:cond_24
move-object v7, v1
move-object v8, v2
.line 134
.end local v1 # "initData":[B
.end local v2 # "mimeType":Ljava/lang/String;
.local v7, "initData":[B
.local v8, "mimeType":Ljava/lang/String;
:goto_26
iget-object v1, p0, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->mediaDrm:Landroid/media/MediaDrm;
.line 135
move-object v2, p1
move-object v3, v7
move-object v4, v8
move v5, p3
move-object v6, p4
invoke-virtual/range {v1 .. v6}, Landroid/media/MediaDrm;->getKeyRequest([B[BLjava/lang/String;ILjava/util/HashMap;)Landroid/media/MediaDrm$KeyRequest;
move-result-object v1
.line 137
.local v1, "request":Landroid/media/MediaDrm$KeyRequest;
iget-object v2, p0, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->uuid:Ljava/util/UUID;
invoke-virtual {v1}, Landroid/media/MediaDrm$KeyRequest;->getData()[B
move-result-object v3
invoke-static {v2, v3}, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->adjustRequestData(Ljava/util/UUID;[B)[B
move-result-object v2
.line 139
.local v2, "requestData":[B
invoke-virtual {v1}, Landroid/media/MediaDrm$KeyRequest;->getDefaultUrl()Ljava/lang/String;
move-result-object v3
.line 140
.local v3, "licenseServerUrl":Ljava/lang/String;
invoke-static {v3}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v4
if-eqz v4, :cond_51
if-eqz v0, :cond_51
iget-object v4, v0, Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;->licenseServerUrl:Ljava/lang/String;
.line 142
invoke-static {v4}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v4
if-nez v4, :cond_51
.line 143
iget-object v3, v0, Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;->licenseServerUrl:Ljava/lang/String;
.line 146
:cond_51
new-instance v4, Lcom/google/android/exoplayer2/drm/ExoMediaDrm$KeyRequest;
invoke-direct {v4, v2, v3}, Lcom/google/android/exoplayer2/drm/ExoMediaDrm$KeyRequest;-><init>([BLjava/lang/String;)V
return-object v4
.end method
.method public getPropertyByteArray(Ljava/lang/String;)[B
.registers 3
.param p1, "propertyName" # Ljava/lang/String;
.line 192
iget-object v0, p0, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->mediaDrm:Landroid/media/MediaDrm;
invoke-virtual {v0, p1}, Landroid/media/MediaDrm;->getPropertyByteArray(Ljava/lang/String;)[B
move-result-object v0
return-object v0
.end method
.method public getPropertyString(Ljava/lang/String;)Ljava/lang/String;
.registers 3
.param p1, "propertyName" # Ljava/lang/String;
.line 187
iget-object v0, p0, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->mediaDrm:Landroid/media/MediaDrm;
invoke-virtual {v0, p1}, Landroid/media/MediaDrm;->getPropertyString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public getProvisionRequest()Lcom/google/android/exoplayer2/drm/ExoMediaDrm$ProvisionRequest;
.registers 5
.line 161
iget-object v0, p0, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->mediaDrm:Landroid/media/MediaDrm;
invoke-virtual {v0}, Landroid/media/MediaDrm;->getProvisionRequest()Landroid/media/MediaDrm$ProvisionRequest;
move-result-object v0
.line 162
.local v0, "request":Landroid/media/MediaDrm$ProvisionRequest;
new-instance v1, Lcom/google/android/exoplayer2/drm/ExoMediaDrm$ProvisionRequest;
invoke-virtual {v0}, Landroid/media/MediaDrm$ProvisionRequest;->getData()[B
move-result-object v2
invoke-virtual {v0}, Landroid/media/MediaDrm$ProvisionRequest;->getDefaultUrl()Ljava/lang/String;
move-result-object v3
invoke-direct {v1, v2, v3}, Lcom/google/android/exoplayer2/drm/ExoMediaDrm$ProvisionRequest;-><init>([BLjava/lang/String;)V
return-object v1
.end method
.method public synthetic lambda$setOnEventListener$0$FrameworkMediaDrm(Lcom/google/android/exoplayer2/drm/ExoMediaDrm$OnEventListener;Landroid/media/MediaDrm;[BII[B)V
.registers 13
.param p1, "listener" # Lcom/google/android/exoplayer2/drm/ExoMediaDrm$OnEventListener;
.param p2, "mediaDrm" # Landroid/media/MediaDrm;
.param p3, "sessionId" # [B
.param p4, "event" # I
.param p5, "extra" # I
.param p6, "data" # [B
.line 85
move-object v0, p1
move-object v1, p0
move-object v2, p3
move v3, p4
move v4, p5
move-object v5, p6
invoke-interface/range {v0 .. v5}, Lcom/google/android/exoplayer2/drm/ExoMediaDrm$OnEventListener;->onEvent(Lcom/google/android/exoplayer2/drm/ExoMediaDrm;[BII[B)V
return-void
.end method
.method public synthetic lambda$setOnKeyStatusChangeListener$1$FrameworkMediaDrm(Lcom/google/android/exoplayer2/drm/ExoMediaDrm$OnKeyStatusChangeListener;Landroid/media/MediaDrm;[BLjava/util/List;Z)V
.registers 12
.param p1, "listener" # Lcom/google/android/exoplayer2/drm/ExoMediaDrm$OnKeyStatusChangeListener;
.param p2, "mediaDrm" # Landroid/media/MediaDrm;
.param p3, "sessionId" # [B
.param p4, "keyInfo" # Ljava/util/List;
.param p5, "hasNewUsableKey" # Z
.line 99
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 100
.local v0, "exoKeyInfo":Ljava/util/List;, "Ljava/util/List<Lcom/google/android/exoplayer2/drm/ExoMediaDrm$KeyStatus;>;"
invoke-interface {p4}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v1
:goto_9
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_26
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Landroid/media/MediaDrm$KeyStatus;
.line 101
.local v2, "keyStatus":Landroid/media/MediaDrm$KeyStatus;
new-instance v3, Lcom/google/android/exoplayer2/drm/ExoMediaDrm$KeyStatus;
invoke-virtual {v2}, Landroid/media/MediaDrm$KeyStatus;->getStatusCode()I
move-result v4
invoke-virtual {v2}, Landroid/media/MediaDrm$KeyStatus;->getKeyId()[B
move-result-object v5
invoke-direct {v3, v4, v5}, Lcom/google/android/exoplayer2/drm/ExoMediaDrm$KeyStatus;-><init>(I[B)V
invoke-interface {v0, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 102
.end local v2 # "keyStatus":Landroid/media/MediaDrm$KeyStatus;
goto :goto_9
.line 103
:cond_26
invoke-interface {p1, p0, p3, v0, p5}, Lcom/google/android/exoplayer2/drm/ExoMediaDrm$OnKeyStatusChangeListener;->onKeyStatusChange(Lcom/google/android/exoplayer2/drm/ExoMediaDrm;[BLjava/util/List;Z)V
.line 105
return-void
.end method
.method public openSession()[B
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Landroid/media/MediaDrmException;
}
.end annotation
.line 111
iget-object v0, p0, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->mediaDrm:Landroid/media/MediaDrm;
invoke-virtual {v0}, Landroid/media/MediaDrm;->openSession()[B
move-result-object v0
return-object v0
.end method
.method public provideKeyResponse([B[B)[B
.registers 5
.param p1, "scope" # [B
.param p2, "response" # [B
.annotation system Ldalvik/annotation/Throws;
value = {
Landroid/media/NotProvisionedException;,
Landroid/media/DeniedByServerException;
}
.end annotation
.line 152
sget-object v0, Lcom/google/android/exoplayer2/C;->CLEARKEY_UUID:Ljava/util/UUID;
iget-object v1, p0, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->uuid:Ljava/util/UUID;
invoke-virtual {v0, v1}, Ljava/util/UUID;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_e
.line 153
invoke-static {p2}, Lcom/google/android/exoplayer2/drm/ClearKeyUtil;->adjustResponseData([B)[B
move-result-object p2
.line 156
:cond_e
iget-object v0, p0, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->mediaDrm:Landroid/media/MediaDrm;
invoke-virtual {v0, p1, p2}, Landroid/media/MediaDrm;->provideKeyResponse([B[B)[B
move-result-object v0
return-object v0
.end method
.method public provideProvisionResponse([B)V
.registers 3
.param p1, "response" # [B
.annotation system Ldalvik/annotation/Throws;
value = {
Landroid/media/DeniedByServerException;
}
.end annotation
.line 167
iget-object v0, p0, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->mediaDrm:Landroid/media/MediaDrm;
invoke-virtual {v0, p1}, Landroid/media/MediaDrm;->provideProvisionResponse([B)V
.line 168
return-void
.end method
.method public queryKeyStatus([B)Ljava/util/Map;
.registers 3
.param p1, "sessionId" # [B
.annotation system Ldalvik/annotation/Signature;
value = {
"([B)",
"Ljava/util/Map<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;"
}
.end annotation
.line 172
iget-object v0, p0, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->mediaDrm:Landroid/media/MediaDrm;
invoke-virtual {v0, p1}, Landroid/media/MediaDrm;->queryKeyStatus([B)Ljava/util/HashMap;
move-result-object v0
return-object v0
.end method
.method public release()V
.registers 2
.line 177
iget-object v0, p0, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->mediaDrm:Landroid/media/MediaDrm;
invoke-virtual {v0}, Landroid/media/MediaDrm;->release()V
.line 178
return-void
.end method
.method public restoreKeys([B[B)V
.registers 4
.param p1, "sessionId" # [B
.param p2, "keySetId" # [B
.line 182
iget-object v0, p0, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->mediaDrm:Landroid/media/MediaDrm;
invoke-virtual {v0, p1, p2}, Landroid/media/MediaDrm;->restoreKeys([B[B)V
.line 183
return-void
.end method
.method public setOnEventListener(Lcom/google/android/exoplayer2/drm/ExoMediaDrm$OnEventListener;)V
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/drm/ExoMediaDrm$OnEventListener<",
"-",
"Lcom/google/android/exoplayer2/drm/FrameworkMediaCrypto;",
">;)V"
}
.end annotation
.line 81
.local p1, "listener":Lcom/google/android/exoplayer2/drm/ExoMediaDrm$OnEventListener;, "Lcom/google/android/exoplayer2/drm/ExoMediaDrm$OnEventListener<-Lcom/google/android/exoplayer2/drm/FrameworkMediaCrypto;>;"
iget-object v0, p0, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->mediaDrm:Landroid/media/MediaDrm;
if-nez p1, :cond_6
const/4 v1, 0x0
goto :goto_b
:cond_6
new-instance v1, Lcom/google/android/exoplayer2/drm/-$$Lambda$FrameworkMediaDrm$zJ3h9UKP9ayPF2iQATh7r7bKJes;
invoke-direct {v1, p0, p1}, Lcom/google/android/exoplayer2/drm/-$$Lambda$FrameworkMediaDrm$zJ3h9UKP9ayPF2iQATh7r7bKJes;-><init>(Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;Lcom/google/android/exoplayer2/drm/ExoMediaDrm$OnEventListener;)V
:goto_b
invoke-virtual {v0, v1}, Landroid/media/MediaDrm;->setOnEventListener(Landroid/media/MediaDrm$OnEventListener;)V
.line 86
return-void
.end method
.method public setOnKeyStatusChangeListener(Lcom/google/android/exoplayer2/drm/ExoMediaDrm$OnKeyStatusChangeListener;)V
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/drm/ExoMediaDrm$OnKeyStatusChangeListener<",
"-",
"Lcom/google/android/exoplayer2/drm/FrameworkMediaCrypto;",
">;)V"
}
.end annotation
.line 91
.local p1, "listener":Lcom/google/android/exoplayer2/drm/ExoMediaDrm$OnKeyStatusChangeListener;, "Lcom/google/android/exoplayer2/drm/ExoMediaDrm$OnKeyStatusChangeListener<-Lcom/google/android/exoplayer2/drm/FrameworkMediaCrypto;>;"
sget v0, Lcom/google/android/exoplayer2/util/Util;->SDK_INT:I
const/16 v1, 0x17
if-lt v0, v1, :cond_16
.line 95
iget-object v0, p0, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->mediaDrm:Landroid/media/MediaDrm;
const/4 v1, 0x0
if-nez p1, :cond_d
move-object v2, v1
goto :goto_12
:cond_d
new-instance v2, Lcom/google/android/exoplayer2/drm/-$$Lambda$FrameworkMediaDrm$WcqXRf-ZlBuRYiaqpRgpL0-wRvg;
invoke-direct {v2, p0, p1}, Lcom/google/android/exoplayer2/drm/-$$Lambda$FrameworkMediaDrm$WcqXRf-ZlBuRYiaqpRgpL0-wRvg;-><init>(Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;Lcom/google/android/exoplayer2/drm/ExoMediaDrm$OnKeyStatusChangeListener;)V
:goto_12
invoke-virtual {v0, v2, v1}, Landroid/media/MediaDrm;->setOnKeyStatusChangeListener(Landroid/media/MediaDrm$OnKeyStatusChangeListener;Landroid/os/Handler;)V
.line 107
return-void
.line 92
:cond_16
new-instance v0, Ljava/lang/UnsupportedOperationException;
invoke-direct {v0}, Ljava/lang/UnsupportedOperationException;-><init>()V
throw v0
.end method
.method public setPropertyByteArray(Ljava/lang/String;[B)V
.registers 4
.param p1, "propertyName" # Ljava/lang/String;
.param p2, "value" # [B
.line 202
iget-object v0, p0, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->mediaDrm:Landroid/media/MediaDrm;
invoke-virtual {v0, p1, p2}, Landroid/media/MediaDrm;->setPropertyByteArray(Ljava/lang/String;[B)V
.line 203
return-void
.end method
.method public setPropertyString(Ljava/lang/String;Ljava/lang/String;)V
.registers 4
.param p1, "propertyName" # Ljava/lang/String;
.param p2, "value" # Ljava/lang/String;
.line 197
iget-object v0, p0, Lcom/google/android/exoplayer2/drm/FrameworkMediaDrm;->mediaDrm:Landroid/media/MediaDrm;
invoke-virtual {v0, p1, p2}, Landroid/media/MediaDrm;->setPropertyString(Ljava/lang/String;Ljava/lang/String;)V
.line 198
return-void
.end method