mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2025-01-09 13:43:22 +00:00
6109 lines
125 KiB
Smali
6109 lines
125 KiB
Smali
.class public final Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;
|
|
.super Ljava/lang/Object;
|
|
.source "MediaCodecUtil.java"
|
|
|
|
|
|
# annotations
|
|
.annotation system Ldalvik/annotation/MemberClasses;
|
|
value = {
|
|
Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$DecoderQueryException;,
|
|
Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$CodecKey;,
|
|
Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompatV21;,
|
|
Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompatV16;,
|
|
Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompat;,
|
|
Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$ScoreProvider;
|
|
}
|
|
.end annotation
|
|
|
|
|
|
# static fields
|
|
.field private static final CODEC_ID_AV01:Ljava/lang/String; = "av01"
|
|
|
|
.field private static final CODEC_ID_AVC1:Ljava/lang/String; = "avc1"
|
|
|
|
.field private static final CODEC_ID_AVC2:Ljava/lang/String; = "avc2"
|
|
|
|
.field private static final CODEC_ID_HEV1:Ljava/lang/String; = "hev1"
|
|
|
|
.field private static final CODEC_ID_HVC1:Ljava/lang/String; = "hvc1"
|
|
|
|
.field private static final CODEC_ID_MP4A:Ljava/lang/String; = "mp4a"
|
|
|
|
.field private static final CODEC_ID_VP09:Ljava/lang/String; = "vp09"
|
|
|
|
.field private static final PROFILE_PATTERN:Ljava/util/regex/Pattern;
|
|
|
|
.field private static final TAG:Ljava/lang/String; = "MediaCodecUtil"
|
|
|
|
.field private static final decoderInfosCache:Ljava/util/HashMap;
|
|
.annotation system Ldalvik/annotation/Signature;
|
|
value = {
|
|
"Ljava/util/HashMap<",
|
|
"Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$CodecKey;",
|
|
"Ljava/util/List<",
|
|
"Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;",
|
|
">;>;"
|
|
}
|
|
.end annotation
|
|
.end field
|
|
|
|
.field private static maxH264DecodableFrameSize:I
|
|
|
|
|
|
# direct methods
|
|
.method static constructor <clinit>()V
|
|
.locals 1
|
|
|
|
const-string v0, "^\\D?(\\d+)$"
|
|
|
|
.line 68
|
|
invoke-static {v0}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern;
|
|
|
|
move-result-object v0
|
|
|
|
sput-object v0, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->PROFILE_PATTERN:Ljava/util/regex/Pattern;
|
|
|
|
.line 71
|
|
new-instance v0, Ljava/util/HashMap;
|
|
|
|
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
|
|
|
|
sput-object v0, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->decoderInfosCache:Ljava/util/HashMap;
|
|
|
|
const/4 v0, -0x1
|
|
|
|
sput v0, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->maxH264DecodableFrameSize:I
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method private constructor <init>()V
|
|
.locals 0
|
|
|
|
.line 90
|
|
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method private static applyWorkarounds(Ljava/lang/String;Ljava/util/List;)V
|
|
.locals 11
|
|
.annotation system Ldalvik/annotation/Signature;
|
|
value = {
|
|
"(",
|
|
"Ljava/lang/String;",
|
|
"Ljava/util/List<",
|
|
"Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;",
|
|
">;)V"
|
|
}
|
|
.end annotation
|
|
|
|
const-string v0, "audio/raw"
|
|
|
|
.line 637
|
|
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
const/4 v0, 0x1
|
|
|
|
const/4 v1, 0x0
|
|
|
|
if-eqz p0, :cond_1
|
|
|
|
.line 638
|
|
sget p0, Landroidx/media3/common/util/Util;->SDK_INT:I
|
|
|
|
const/16 v2, 0x1a
|
|
|
|
if-ge p0, v2, :cond_0
|
|
|
|
sget-object p0, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
const-string v2, "R9"
|
|
|
|
.line 639
|
|
invoke-virtual {p0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_0
|
|
|
|
.line 640
|
|
invoke-interface {p1}, Ljava/util/List;->size()I
|
|
|
|
move-result p0
|
|
|
|
if-ne p0, v0, :cond_0
|
|
|
|
.line 641
|
|
invoke-interface {p1, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
|
|
|
|
move-result-object p0
|
|
|
|
check-cast p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;
|
|
|
|
iget-object p0, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->name:Ljava/lang/String;
|
|
|
|
const-string v2, "OMX.MTK.AUDIO.DECODER.RAW"
|
|
|
|
invoke-virtual {p0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_0
|
|
|
|
const-string v2, "OMX.google.raw.decoder"
|
|
|
|
const-string v3, "audio/raw"
|
|
|
|
const-string v4, "audio/raw"
|
|
|
|
const/4 v5, 0x0
|
|
|
|
const/4 v6, 0x0
|
|
|
|
const/4 v7, 0x1
|
|
|
|
const/4 v8, 0x0
|
|
|
|
const/4 v9, 0x0
|
|
|
|
const/4 v10, 0x0
|
|
|
|
.line 645
|
|
invoke-static/range {v2 .. v10}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->newInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/media/MediaCodecInfo$CodecCapabilities;ZZZZZ)Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;
|
|
|
|
move-result-object p0
|
|
|
|
.line 644
|
|
invoke-interface {p1, p0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
|
|
|
|
.line 657
|
|
:cond_0
|
|
new-instance p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$$ExternalSyntheticLambda2;
|
|
|
|
invoke-direct {p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$$ExternalSyntheticLambda2;-><init>()V
|
|
|
|
invoke-static {p1, p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->sortByScore(Ljava/util/List;Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$ScoreProvider;)V
|
|
|
|
.line 674
|
|
:cond_1
|
|
sget p0, Landroidx/media3/common/util/Util;->SDK_INT:I
|
|
|
|
const/16 v2, 0x15
|
|
|
|
if-ge p0, v2, :cond_3
|
|
|
|
invoke-interface {p1}, Ljava/util/List;->size()I
|
|
|
|
move-result p0
|
|
|
|
if-le p0, v0, :cond_3
|
|
|
|
.line 675
|
|
invoke-interface {p1, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
|
|
|
|
move-result-object p0
|
|
|
|
check-cast p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;
|
|
|
|
iget-object p0, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->name:Ljava/lang/String;
|
|
|
|
const-string v2, "OMX.SEC.mp3.dec"
|
|
|
|
.line 676
|
|
invoke-virtual {v2, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v2
|
|
|
|
if-nez v2, :cond_2
|
|
|
|
const-string v2, "OMX.SEC.MP3.Decoder"
|
|
|
|
.line 677
|
|
invoke-virtual {v2, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v2
|
|
|
|
if-nez v2, :cond_2
|
|
|
|
const-string v2, "OMX.brcm.audio.mp3.decoder"
|
|
|
|
.line 678
|
|
invoke-virtual {v2, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_3
|
|
|
|
.line 683
|
|
:cond_2
|
|
new-instance p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$$ExternalSyntheticLambda3;
|
|
|
|
invoke-direct {p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$$ExternalSyntheticLambda3;-><init>()V
|
|
|
|
invoke-static {p1, p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->sortByScore(Ljava/util/List;Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$ScoreProvider;)V
|
|
|
|
.line 687
|
|
:cond_3
|
|
sget p0, Landroidx/media3/common/util/Util;->SDK_INT:I
|
|
|
|
const/16 v2, 0x20
|
|
|
|
if-ge p0, v2, :cond_4
|
|
|
|
invoke-interface {p1}, Ljava/util/List;->size()I
|
|
|
|
move-result p0
|
|
|
|
if-le p0, v0, :cond_4
|
|
|
|
.line 688
|
|
invoke-interface {p1, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
|
|
|
|
move-result-object p0
|
|
|
|
check-cast p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;
|
|
|
|
iget-object p0, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->name:Ljava/lang/String;
|
|
|
|
const-string v0, "OMX.qti.audio.decoder.flac"
|
|
|
|
.line 691
|
|
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_4
|
|
|
|
.line 692
|
|
invoke-interface {p1, v1}, Ljava/util/List;->remove(I)Ljava/lang/Object;
|
|
|
|
move-result-object p0
|
|
|
|
check-cast p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;
|
|
|
|
invoke-interface {p1, p0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
|
|
|
|
:cond_4
|
|
return-void
|
|
.end method
|
|
|
|
.method private static av1LevelNumberToConst(I)I
|
|
.locals 0
|
|
|
|
packed-switch p0, :pswitch_data_0
|
|
|
|
const/4 p0, -0x1
|
|
|
|
return p0
|
|
|
|
:pswitch_0
|
|
const/high16 p0, 0x800000
|
|
|
|
return p0
|
|
|
|
:pswitch_1
|
|
const/high16 p0, 0x400000
|
|
|
|
return p0
|
|
|
|
:pswitch_2
|
|
const/high16 p0, 0x200000
|
|
|
|
return p0
|
|
|
|
:pswitch_3
|
|
const/high16 p0, 0x100000
|
|
|
|
return p0
|
|
|
|
:pswitch_4
|
|
const/high16 p0, 0x80000
|
|
|
|
return p0
|
|
|
|
:pswitch_5
|
|
const/high16 p0, 0x40000
|
|
|
|
return p0
|
|
|
|
:pswitch_6
|
|
const/high16 p0, 0x20000
|
|
|
|
return p0
|
|
|
|
:pswitch_7
|
|
const/high16 p0, 0x10000
|
|
|
|
return p0
|
|
|
|
:pswitch_8
|
|
const p0, 0x8000
|
|
|
|
return p0
|
|
|
|
:pswitch_9
|
|
const/16 p0, 0x4000
|
|
|
|
return p0
|
|
|
|
:pswitch_a
|
|
const/16 p0, 0x2000
|
|
|
|
return p0
|
|
|
|
:pswitch_b
|
|
const/16 p0, 0x1000
|
|
|
|
return p0
|
|
|
|
:pswitch_c
|
|
const/16 p0, 0x800
|
|
|
|
return p0
|
|
|
|
:pswitch_d
|
|
const/16 p0, 0x400
|
|
|
|
return p0
|
|
|
|
:pswitch_e
|
|
const/16 p0, 0x200
|
|
|
|
return p0
|
|
|
|
:pswitch_f
|
|
const/16 p0, 0x100
|
|
|
|
return p0
|
|
|
|
:pswitch_10
|
|
const/16 p0, 0x80
|
|
|
|
return p0
|
|
|
|
:pswitch_11
|
|
const/16 p0, 0x40
|
|
|
|
return p0
|
|
|
|
:pswitch_12
|
|
const/16 p0, 0x20
|
|
|
|
return p0
|
|
|
|
:pswitch_13
|
|
const/16 p0, 0x10
|
|
|
|
return p0
|
|
|
|
:pswitch_14
|
|
const/16 p0, 0x8
|
|
|
|
return p0
|
|
|
|
:pswitch_15
|
|
const/4 p0, 0x4
|
|
|
|
return p0
|
|
|
|
:pswitch_16
|
|
const/4 p0, 0x2
|
|
|
|
return p0
|
|
|
|
:pswitch_17
|
|
const/4 p0, 0x1
|
|
|
|
return p0
|
|
|
|
nop
|
|
|
|
:pswitch_data_0
|
|
.packed-switch 0x0
|
|
:pswitch_17
|
|
:pswitch_16
|
|
:pswitch_15
|
|
:pswitch_14
|
|
:pswitch_13
|
|
:pswitch_12
|
|
:pswitch_11
|
|
:pswitch_10
|
|
:pswitch_f
|
|
:pswitch_e
|
|
:pswitch_d
|
|
:pswitch_c
|
|
:pswitch_b
|
|
:pswitch_a
|
|
:pswitch_9
|
|
:pswitch_8
|
|
:pswitch_7
|
|
:pswitch_6
|
|
:pswitch_5
|
|
:pswitch_4
|
|
:pswitch_3
|
|
:pswitch_2
|
|
:pswitch_1
|
|
:pswitch_0
|
|
.end packed-switch
|
|
.end method
|
|
|
|
.method private static avcLevelNumberToConst(I)I
|
|
.locals 0
|
|
|
|
packed-switch p0, :pswitch_data_0
|
|
|
|
packed-switch p0, :pswitch_data_1
|
|
|
|
packed-switch p0, :pswitch_data_2
|
|
|
|
packed-switch p0, :pswitch_data_3
|
|
|
|
packed-switch p0, :pswitch_data_4
|
|
|
|
const/4 p0, -0x1
|
|
|
|
return p0
|
|
|
|
:pswitch_0
|
|
const/high16 p0, 0x10000
|
|
|
|
return p0
|
|
|
|
:pswitch_1
|
|
const p0, 0x8000
|
|
|
|
return p0
|
|
|
|
:pswitch_2
|
|
const/16 p0, 0x4000
|
|
|
|
return p0
|
|
|
|
:pswitch_3
|
|
const/16 p0, 0x2000
|
|
|
|
return p0
|
|
|
|
:pswitch_4
|
|
const/16 p0, 0x1000
|
|
|
|
return p0
|
|
|
|
:pswitch_5
|
|
const/16 p0, 0x800
|
|
|
|
return p0
|
|
|
|
:pswitch_6
|
|
const/16 p0, 0x400
|
|
|
|
return p0
|
|
|
|
:pswitch_7
|
|
const/16 p0, 0x200
|
|
|
|
return p0
|
|
|
|
:pswitch_8
|
|
const/16 p0, 0x100
|
|
|
|
return p0
|
|
|
|
:pswitch_9
|
|
const/16 p0, 0x80
|
|
|
|
return p0
|
|
|
|
:pswitch_a
|
|
const/16 p0, 0x40
|
|
|
|
return p0
|
|
|
|
:pswitch_b
|
|
const/16 p0, 0x20
|
|
|
|
return p0
|
|
|
|
:pswitch_c
|
|
const/16 p0, 0x10
|
|
|
|
return p0
|
|
|
|
:pswitch_d
|
|
const/16 p0, 0x8
|
|
|
|
return p0
|
|
|
|
:pswitch_e
|
|
const/4 p0, 0x4
|
|
|
|
return p0
|
|
|
|
:pswitch_f
|
|
const/4 p0, 0x1
|
|
|
|
return p0
|
|
|
|
:pswitch_data_0
|
|
.packed-switch 0xa
|
|
:pswitch_f
|
|
:pswitch_e
|
|
:pswitch_d
|
|
:pswitch_c
|
|
.end packed-switch
|
|
|
|
:pswitch_data_1
|
|
.packed-switch 0x14
|
|
:pswitch_b
|
|
:pswitch_a
|
|
:pswitch_9
|
|
.end packed-switch
|
|
|
|
:pswitch_data_2
|
|
.packed-switch 0x1e
|
|
:pswitch_8
|
|
:pswitch_7
|
|
:pswitch_6
|
|
.end packed-switch
|
|
|
|
:pswitch_data_3
|
|
.packed-switch 0x28
|
|
:pswitch_5
|
|
:pswitch_4
|
|
:pswitch_3
|
|
.end packed-switch
|
|
|
|
:pswitch_data_4
|
|
.packed-switch 0x32
|
|
:pswitch_2
|
|
:pswitch_1
|
|
:pswitch_0
|
|
.end packed-switch
|
|
.end method
|
|
|
|
.method private static avcLevelToMaxFrameSize(I)I
|
|
.locals 1
|
|
|
|
const/4 v0, 0x1
|
|
|
|
if-eq p0, v0, :cond_0
|
|
|
|
const/4 v0, 0x2
|
|
|
|
if-eq p0, v0, :cond_0
|
|
|
|
sparse-switch p0, :sswitch_data_0
|
|
|
|
const/4 p0, -0x1
|
|
|
|
return p0
|
|
|
|
:sswitch_0
|
|
const/high16 p0, 0x2200000
|
|
|
|
return p0
|
|
|
|
:sswitch_1
|
|
const/high16 p0, 0x900000
|
|
|
|
return p0
|
|
|
|
:sswitch_2
|
|
const p0, 0x564000
|
|
|
|
return p0
|
|
|
|
:sswitch_3
|
|
const/high16 p0, 0x220000
|
|
|
|
return p0
|
|
|
|
:sswitch_4
|
|
const/high16 p0, 0x200000
|
|
|
|
return p0
|
|
|
|
:sswitch_5
|
|
const/high16 p0, 0x140000
|
|
|
|
return p0
|
|
|
|
:sswitch_6
|
|
const p0, 0xe1000
|
|
|
|
return p0
|
|
|
|
:sswitch_7
|
|
const p0, 0x65400
|
|
|
|
return p0
|
|
|
|
:sswitch_8
|
|
const p0, 0x31800
|
|
|
|
return p0
|
|
|
|
:sswitch_9
|
|
const p0, 0x18c00
|
|
|
|
return p0
|
|
|
|
:cond_0
|
|
const/16 p0, 0x6300
|
|
|
|
return p0
|
|
|
|
nop
|
|
|
|
:sswitch_data_0
|
|
.sparse-switch
|
|
0x8 -> :sswitch_9
|
|
0x10 -> :sswitch_9
|
|
0x20 -> :sswitch_9
|
|
0x40 -> :sswitch_8
|
|
0x80 -> :sswitch_7
|
|
0x100 -> :sswitch_7
|
|
0x200 -> :sswitch_6
|
|
0x400 -> :sswitch_5
|
|
0x800 -> :sswitch_4
|
|
0x1000 -> :sswitch_4
|
|
0x2000 -> :sswitch_3
|
|
0x4000 -> :sswitch_2
|
|
0x8000 -> :sswitch_1
|
|
0x10000 -> :sswitch_1
|
|
0x20000 -> :sswitch_0
|
|
0x40000 -> :sswitch_0
|
|
0x80000 -> :sswitch_0
|
|
.end sparse-switch
|
|
.end method
|
|
|
|
.method private static avcProfileNumberToConst(I)I
|
|
.locals 1
|
|
|
|
const/16 v0, 0x42
|
|
|
|
if-eq p0, v0, :cond_6
|
|
|
|
const/16 v0, 0x4d
|
|
|
|
if-eq p0, v0, :cond_5
|
|
|
|
const/16 v0, 0x58
|
|
|
|
if-eq p0, v0, :cond_4
|
|
|
|
const/16 v0, 0x64
|
|
|
|
if-eq p0, v0, :cond_3
|
|
|
|
const/16 v0, 0x6e
|
|
|
|
if-eq p0, v0, :cond_2
|
|
|
|
const/16 v0, 0x7a
|
|
|
|
if-eq p0, v0, :cond_1
|
|
|
|
const/16 v0, 0xf4
|
|
|
|
if-eq p0, v0, :cond_0
|
|
|
|
const/4 p0, -0x1
|
|
|
|
return p0
|
|
|
|
:cond_0
|
|
const/16 p0, 0x40
|
|
|
|
return p0
|
|
|
|
:cond_1
|
|
const/16 p0, 0x20
|
|
|
|
return p0
|
|
|
|
:cond_2
|
|
const/16 p0, 0x10
|
|
|
|
return p0
|
|
|
|
:cond_3
|
|
const/16 p0, 0x8
|
|
|
|
return p0
|
|
|
|
:cond_4
|
|
const/4 p0, 0x4
|
|
|
|
return p0
|
|
|
|
:cond_5
|
|
const/4 p0, 0x2
|
|
|
|
return p0
|
|
|
|
:cond_6
|
|
const/4 p0, 0x1
|
|
|
|
return p0
|
|
.end method
|
|
|
|
.method public static declared-synchronized clearDecoderInfoCache()V
|
|
.locals 2
|
|
|
|
const-class v0, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;
|
|
|
|
monitor-enter v0
|
|
|
|
:try_start_0
|
|
sget-object v1, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->decoderInfosCache:Ljava/util/HashMap;
|
|
|
|
.line 116
|
|
invoke-virtual {v1}, Ljava/util/HashMap;->clear()V
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
.line 117
|
|
monitor-exit v0
|
|
|
|
return-void
|
|
|
|
:catchall_0
|
|
move-exception v1
|
|
|
|
monitor-exit v0
|
|
|
|
throw v1
|
|
.end method
|
|
|
|
.method private static dolbyVisionStringToLevel(Ljava/lang/String;)Ljava/lang/Integer;
|
|
.locals 7
|
|
|
|
const/4 v0, 0x0
|
|
|
|
if-nez p0, :cond_0
|
|
|
|
return-object v0
|
|
|
|
.line 1394
|
|
:cond_0
|
|
invoke-virtual {p0}, Ljava/lang/String;->hashCode()I
|
|
|
|
invoke-virtual {p0}, Ljava/lang/String;->hashCode()I
|
|
|
|
move-result v1
|
|
|
|
const/16 v2, 0x8
|
|
|
|
const/4 v3, 0x4
|
|
|
|
const/4 v4, 0x2
|
|
|
|
const/4 v5, 0x1
|
|
|
|
const/4 v6, -0x1
|
|
|
|
sparse-switch v1, :sswitch_data_0
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_0
|
|
const-string v1, "13"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_1
|
|
|
|
goto/16 :goto_0
|
|
|
|
:cond_1
|
|
const/16 v6, 0xc
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_1
|
|
const-string v1, "12"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_2
|
|
|
|
goto/16 :goto_0
|
|
|
|
:cond_2
|
|
const/16 v6, 0xb
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_2
|
|
const-string v1, "11"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_3
|
|
|
|
goto/16 :goto_0
|
|
|
|
:cond_3
|
|
const/16 v6, 0xa
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_3
|
|
const-string v1, "10"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_4
|
|
|
|
goto/16 :goto_0
|
|
|
|
:cond_4
|
|
const/16 v6, 0x9
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_4
|
|
const-string v1, "09"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_5
|
|
|
|
goto/16 :goto_0
|
|
|
|
:cond_5
|
|
move v6, v2
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_5
|
|
const-string v1, "08"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_6
|
|
|
|
goto :goto_0
|
|
|
|
:cond_6
|
|
const/4 v6, 0x7
|
|
|
|
goto :goto_0
|
|
|
|
:sswitch_6
|
|
const-string v1, "07"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_7
|
|
|
|
goto :goto_0
|
|
|
|
:cond_7
|
|
const/4 v6, 0x6
|
|
|
|
goto :goto_0
|
|
|
|
:sswitch_7
|
|
const-string v1, "06"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_8
|
|
|
|
goto :goto_0
|
|
|
|
:cond_8
|
|
const/4 v6, 0x5
|
|
|
|
goto :goto_0
|
|
|
|
:sswitch_8
|
|
const-string v1, "05"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_9
|
|
|
|
goto :goto_0
|
|
|
|
:cond_9
|
|
move v6, v3
|
|
|
|
goto :goto_0
|
|
|
|
:sswitch_9
|
|
const-string v1, "04"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_a
|
|
|
|
goto :goto_0
|
|
|
|
:cond_a
|
|
const/4 v6, 0x3
|
|
|
|
goto :goto_0
|
|
|
|
:sswitch_a
|
|
const-string v1, "03"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_b
|
|
|
|
goto :goto_0
|
|
|
|
:cond_b
|
|
move v6, v4
|
|
|
|
goto :goto_0
|
|
|
|
:sswitch_b
|
|
const-string v1, "02"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_c
|
|
|
|
goto :goto_0
|
|
|
|
:cond_c
|
|
move v6, v5
|
|
|
|
goto :goto_0
|
|
|
|
:sswitch_c
|
|
const-string v1, "01"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_d
|
|
|
|
goto :goto_0
|
|
|
|
:cond_d
|
|
const/4 v6, 0x0
|
|
|
|
:goto_0
|
|
packed-switch v6, :pswitch_data_0
|
|
|
|
return-object v0
|
|
|
|
:pswitch_0
|
|
const/16 p0, 0x1000
|
|
|
|
.line 1420
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_1
|
|
const/16 p0, 0x800
|
|
|
|
.line 1418
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_2
|
|
const/16 p0, 0x400
|
|
|
|
.line 1416
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_3
|
|
const/16 p0, 0x200
|
|
|
|
.line 1414
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_4
|
|
const/16 p0, 0x100
|
|
|
|
.line 1412
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_5
|
|
const/16 p0, 0x80
|
|
|
|
.line 1410
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_6
|
|
const/16 p0, 0x40
|
|
|
|
.line 1408
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_7
|
|
const/16 p0, 0x20
|
|
|
|
.line 1406
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_8
|
|
const/16 p0, 0x10
|
|
|
|
.line 1404
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
.line 1402
|
|
:pswitch_9
|
|
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
.line 1400
|
|
:pswitch_a
|
|
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
.line 1398
|
|
:pswitch_b
|
|
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
.line 1396
|
|
:pswitch_c
|
|
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
nop
|
|
|
|
:sswitch_data_0
|
|
.sparse-switch
|
|
0x601 -> :sswitch_c
|
|
0x602 -> :sswitch_b
|
|
0x603 -> :sswitch_a
|
|
0x604 -> :sswitch_9
|
|
0x605 -> :sswitch_8
|
|
0x606 -> :sswitch_7
|
|
0x607 -> :sswitch_6
|
|
0x608 -> :sswitch_5
|
|
0x609 -> :sswitch_4
|
|
0x61f -> :sswitch_3
|
|
0x620 -> :sswitch_2
|
|
0x621 -> :sswitch_1
|
|
0x622 -> :sswitch_0
|
|
.end sparse-switch
|
|
|
|
:pswitch_data_0
|
|
.packed-switch 0x0
|
|
:pswitch_c
|
|
:pswitch_b
|
|
:pswitch_a
|
|
:pswitch_9
|
|
:pswitch_8
|
|
:pswitch_7
|
|
:pswitch_6
|
|
:pswitch_5
|
|
:pswitch_4
|
|
:pswitch_3
|
|
:pswitch_2
|
|
:pswitch_1
|
|
:pswitch_0
|
|
.end packed-switch
|
|
.end method
|
|
|
|
.method private static dolbyVisionStringToProfile(Ljava/lang/String;)Ljava/lang/Integer;
|
|
.locals 7
|
|
|
|
const/4 v0, 0x0
|
|
|
|
if-nez p0, :cond_0
|
|
|
|
return-object v0
|
|
|
|
.line 1362
|
|
:cond_0
|
|
invoke-virtual {p0}, Ljava/lang/String;->hashCode()I
|
|
|
|
invoke-virtual {p0}, Ljava/lang/String;->hashCode()I
|
|
|
|
move-result v1
|
|
|
|
const/16 v2, 0x8
|
|
|
|
const/4 v3, 0x4
|
|
|
|
const/4 v4, 0x2
|
|
|
|
const/4 v5, 0x1
|
|
|
|
const/4 v6, -0x1
|
|
|
|
packed-switch v1, :pswitch_data_0
|
|
|
|
goto/16 :goto_0
|
|
|
|
:pswitch_0
|
|
const-string v1, "09"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_1
|
|
|
|
goto/16 :goto_0
|
|
|
|
:cond_1
|
|
const/16 v6, 0x9
|
|
|
|
goto/16 :goto_0
|
|
|
|
:pswitch_1
|
|
const-string v1, "08"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_2
|
|
|
|
goto/16 :goto_0
|
|
|
|
:cond_2
|
|
move v6, v2
|
|
|
|
goto/16 :goto_0
|
|
|
|
:pswitch_2
|
|
const-string v1, "07"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_3
|
|
|
|
goto :goto_0
|
|
|
|
:cond_3
|
|
const/4 v6, 0x7
|
|
|
|
goto :goto_0
|
|
|
|
:pswitch_3
|
|
const-string v1, "06"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_4
|
|
|
|
goto :goto_0
|
|
|
|
:cond_4
|
|
const/4 v6, 0x6
|
|
|
|
goto :goto_0
|
|
|
|
:pswitch_4
|
|
const-string v1, "05"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_5
|
|
|
|
goto :goto_0
|
|
|
|
:cond_5
|
|
const/4 v6, 0x5
|
|
|
|
goto :goto_0
|
|
|
|
:pswitch_5
|
|
const-string v1, "04"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_6
|
|
|
|
goto :goto_0
|
|
|
|
:cond_6
|
|
move v6, v3
|
|
|
|
goto :goto_0
|
|
|
|
:pswitch_6
|
|
const-string v1, "03"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_7
|
|
|
|
goto :goto_0
|
|
|
|
:cond_7
|
|
const/4 v6, 0x3
|
|
|
|
goto :goto_0
|
|
|
|
:pswitch_7
|
|
const-string v1, "02"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_8
|
|
|
|
goto :goto_0
|
|
|
|
:cond_8
|
|
move v6, v4
|
|
|
|
goto :goto_0
|
|
|
|
:pswitch_8
|
|
const-string v1, "01"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_9
|
|
|
|
goto :goto_0
|
|
|
|
:cond_9
|
|
move v6, v5
|
|
|
|
goto :goto_0
|
|
|
|
:pswitch_9
|
|
const-string v1, "00"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_a
|
|
|
|
goto :goto_0
|
|
|
|
:cond_a
|
|
const/4 v6, 0x0
|
|
|
|
:goto_0
|
|
packed-switch v6, :pswitch_data_1
|
|
|
|
return-object v0
|
|
|
|
:pswitch_a
|
|
const/16 p0, 0x200
|
|
|
|
.line 1382
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_b
|
|
const/16 p0, 0x100
|
|
|
|
.line 1380
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_c
|
|
const/16 p0, 0x80
|
|
|
|
.line 1378
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_d
|
|
const/16 p0, 0x40
|
|
|
|
.line 1376
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_e
|
|
const/16 p0, 0x20
|
|
|
|
.line 1374
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_f
|
|
const/16 p0, 0x10
|
|
|
|
.line 1372
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
.line 1370
|
|
:pswitch_10
|
|
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
.line 1368
|
|
:pswitch_11
|
|
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
.line 1366
|
|
:pswitch_12
|
|
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
.line 1364
|
|
:pswitch_13
|
|
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_data_0
|
|
.packed-switch 0x600
|
|
:pswitch_9
|
|
:pswitch_8
|
|
:pswitch_7
|
|
:pswitch_6
|
|
:pswitch_5
|
|
:pswitch_4
|
|
:pswitch_3
|
|
:pswitch_2
|
|
:pswitch_1
|
|
:pswitch_0
|
|
.end packed-switch
|
|
|
|
:pswitch_data_1
|
|
.packed-switch 0x0
|
|
:pswitch_13
|
|
:pswitch_12
|
|
:pswitch_11
|
|
:pswitch_10
|
|
:pswitch_f
|
|
:pswitch_e
|
|
:pswitch_d
|
|
:pswitch_c
|
|
:pswitch_b
|
|
:pswitch_a
|
|
.end packed-switch
|
|
.end method
|
|
|
|
.method private static getAacCodecProfileAndLevel(Ljava/lang/String;[Ljava/lang/String;)Landroid/util/Pair;
|
|
.locals 5
|
|
.annotation system Ldalvik/annotation/Signature;
|
|
value = {
|
|
"(",
|
|
"Ljava/lang/String;",
|
|
"[",
|
|
"Ljava/lang/String;",
|
|
")",
|
|
"Landroid/util/Pair<",
|
|
"Ljava/lang/Integer;",
|
|
"Ljava/lang/Integer;",
|
|
">;"
|
|
}
|
|
.end annotation
|
|
|
|
.line 1008
|
|
array-length v0, p1
|
|
|
|
const/4 v1, 0x3
|
|
|
|
const/4 v2, 0x0
|
|
|
|
const-string v3, "Ignoring malformed MP4A codec string: "
|
|
|
|
const-string v4, "MediaCodecUtil"
|
|
|
|
if-eq v0, v1, :cond_0
|
|
|
|
.line 1009
|
|
new-instance p1, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {p1, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {p1, 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
|
|
|
|
invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
return-object v2
|
|
|
|
:cond_0
|
|
const/4 v0, 0x1
|
|
|
|
.line 1014
|
|
:try_start_0
|
|
aget-object v0, p1, v0
|
|
|
|
const/16 v1, 0x10
|
|
|
|
invoke-static {v0, v1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;I)I
|
|
|
|
move-result v0
|
|
|
|
.line 1015
|
|
invoke-static {v0}, Landroidx/media3/common/MimeTypes;->getMimeTypeFromMp4ObjectType(I)Ljava/lang/String;
|
|
|
|
move-result-object v0
|
|
|
|
const-string v1, "audio/mp4a-latm"
|
|
|
|
.line 1016
|
|
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_1
|
|
|
|
const/4 v0, 0x2
|
|
|
|
.line 1018
|
|
aget-object p1, p1, v0
|
|
|
|
invoke-static {p1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
|
|
|
|
move-result p1
|
|
|
|
.line 1019
|
|
invoke-static {p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->mp4aAudioObjectTypeToProfile(I)I
|
|
|
|
move-result p1
|
|
|
|
const/4 v0, -0x1
|
|
|
|
if-eq p1, v0, :cond_1
|
|
|
|
.line 1022
|
|
new-instance v0, Landroid/util/Pair;
|
|
|
|
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p1
|
|
|
|
const/4 v1, 0x0
|
|
|
|
invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object v1
|
|
|
|
invoke-direct {v0, p1, v1}, Landroid/util/Pair;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
|
|
:try_end_0
|
|
.catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0
|
|
|
|
return-object v0
|
|
|
|
.line 1026
|
|
:catch_0
|
|
new-instance p1, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {p1, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {p1, 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
|
|
|
|
invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
:cond_1
|
|
return-object v2
|
|
.end method
|
|
|
|
.method public static getAlternativeCodecMimeType(Landroidx/media3/common/Format;)Ljava/lang/String;
|
|
.locals 2
|
|
|
|
const-string v0, "audio/eac3-joc"
|
|
|
|
.line 348
|
|
iget-object v1, p0, Landroidx/media3/common/Format;->sampleMimeType:Ljava/lang/String;
|
|
|
|
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
const-string p0, "audio/eac3"
|
|
|
|
return-object p0
|
|
|
|
:cond_0
|
|
const-string v0, "video/dolby-vision"
|
|
|
|
.line 352
|
|
iget-object v1, p0, Landroidx/media3/common/Format;->sampleMimeType:Ljava/lang/String;
|
|
|
|
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_3
|
|
|
|
.line 357
|
|
invoke-static {p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getCodecProfileAndLevel(Landroidx/media3/common/Format;)Landroid/util/Pair;
|
|
|
|
move-result-object p0
|
|
|
|
if-eqz p0, :cond_3
|
|
|
|
.line 359
|
|
iget-object p0, p0, Landroid/util/Pair;->first:Ljava/lang/Object;
|
|
|
|
check-cast p0, Ljava/lang/Integer;
|
|
|
|
invoke-virtual {p0}, Ljava/lang/Integer;->intValue()I
|
|
|
|
move-result p0
|
|
|
|
const/16 v0, 0x10
|
|
|
|
if-eq p0, v0, :cond_2
|
|
|
|
const/16 v0, 0x100
|
|
|
|
if-ne p0, v0, :cond_1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
const/16 v0, 0x200
|
|
|
|
if-ne p0, v0, :cond_3
|
|
|
|
const-string p0, "video/avc"
|
|
|
|
return-object p0
|
|
|
|
:cond_2
|
|
:goto_0
|
|
const-string p0, "video/hevc"
|
|
|
|
return-object p0
|
|
|
|
:cond_3
|
|
const/4 p0, 0x0
|
|
|
|
return-object p0
|
|
.end method
|
|
|
|
.method public static getAlternativeDecoderInfos(Landroidx/media3/exoplayer/mediacodec/MediaCodecSelector;Landroidx/media3/common/Format;ZZ)Ljava/util/List;
|
|
.locals 0
|
|
.annotation system Ldalvik/annotation/Signature;
|
|
value = {
|
|
"(",
|
|
"Landroidx/media3/exoplayer/mediacodec/MediaCodecSelector;",
|
|
"Landroidx/media3/common/Format;",
|
|
"ZZ)",
|
|
"Ljava/util/List<",
|
|
"Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;",
|
|
">;"
|
|
}
|
|
.end annotation
|
|
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$DecoderQueryException;
|
|
}
|
|
.end annotation
|
|
|
|
.line 256
|
|
invoke-static {p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getAlternativeCodecMimeType(Landroidx/media3/common/Format;)Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
if-nez p1, :cond_0
|
|
|
|
.line 258
|
|
invoke-static {}, Lcom/google/common/collect/ImmutableList;->of()Lcom/google/common/collect/ImmutableList;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
.line 260
|
|
:cond_0
|
|
invoke-interface {p0, p1, p2, p3}, Landroidx/media3/exoplayer/mediacodec/MediaCodecSelector;->getDecoderInfos(Ljava/lang/String;ZZ)Ljava/util/List;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
.end method
|
|
|
|
.method private static getAv1ProfileAndLevel(Ljava/lang/String;[Ljava/lang/String;Landroidx/media3/common/ColorInfo;)Landroid/util/Pair;
|
|
.locals 8
|
|
.annotation system Ldalvik/annotation/Signature;
|
|
value = {
|
|
"(",
|
|
"Ljava/lang/String;",
|
|
"[",
|
|
"Ljava/lang/String;",
|
|
"Landroidx/media3/common/ColorInfo;",
|
|
")",
|
|
"Landroid/util/Pair<",
|
|
"Ljava/lang/Integer;",
|
|
"Ljava/lang/Integer;",
|
|
">;"
|
|
}
|
|
.end annotation
|
|
|
|
.line 918
|
|
array-length v0, p1
|
|
|
|
const/4 v1, 0x4
|
|
|
|
const-string v2, "Ignoring malformed AV1 codec string: "
|
|
|
|
const/4 v3, 0x0
|
|
|
|
const-string v4, "MediaCodecUtil"
|
|
|
|
if-ge v0, v1, :cond_0
|
|
|
|
.line 919
|
|
new-instance p1, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {p1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {p1, 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
|
|
|
|
invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
return-object v3
|
|
|
|
:cond_0
|
|
const/4 v0, 0x1
|
|
|
|
.line 926
|
|
:try_start_0
|
|
aget-object v1, p1, v0
|
|
|
|
invoke-static {v1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
|
|
|
|
move-result v1
|
|
|
|
const/4 v5, 0x2
|
|
|
|
.line 927
|
|
aget-object v6, p1, v5
|
|
|
|
const/4 v7, 0x0
|
|
|
|
invoke-virtual {v6, v7, v5}, Ljava/lang/String;->substring(II)Ljava/lang/String;
|
|
|
|
move-result-object v6
|
|
|
|
invoke-static {v6}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
|
|
|
|
move-result v6
|
|
|
|
const/4 v7, 0x3
|
|
|
|
.line 928
|
|
aget-object p1, p1, v7
|
|
|
|
invoke-static {p1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
|
|
|
|
move-result p0
|
|
:try_end_0
|
|
.catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0
|
|
|
|
if-eqz v1, :cond_1
|
|
|
|
.line 935
|
|
new-instance p0, Ljava/lang/StringBuilder;
|
|
|
|
const-string p1, "Unknown AV1 profile: "
|
|
|
|
invoke-direct {p0, p1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
return-object v3
|
|
|
|
:cond_1
|
|
const/16 p1, 0x8
|
|
|
|
if-eq p0, p1, :cond_2
|
|
|
|
const/16 v1, 0xa
|
|
|
|
if-eq p0, v1, :cond_2
|
|
|
|
.line 939
|
|
new-instance p1, Ljava/lang/StringBuilder;
|
|
|
|
const-string p2, "Unknown AV1 bit depth: "
|
|
|
|
invoke-direct {p1, p2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
return-object v3
|
|
|
|
:cond_2
|
|
if-ne p0, p1, :cond_3
|
|
|
|
goto :goto_0
|
|
|
|
:cond_3
|
|
if-eqz p2, :cond_5
|
|
|
|
.line 945
|
|
iget-object p0, p2, Landroidx/media3/common/ColorInfo;->hdrStaticInfo:[B
|
|
|
|
if-nez p0, :cond_4
|
|
|
|
iget p0, p2, Landroidx/media3/common/ColorInfo;->colorTransfer:I
|
|
|
|
const/4 p1, 0x7
|
|
|
|
if-eq p0, p1, :cond_4
|
|
|
|
iget p0, p2, Landroidx/media3/common/ColorInfo;->colorTransfer:I
|
|
|
|
const/4 p1, 0x6
|
|
|
|
if-ne p0, p1, :cond_5
|
|
|
|
:cond_4
|
|
const/16 v0, 0x1000
|
|
|
|
goto :goto_0
|
|
|
|
:cond_5
|
|
move v0, v5
|
|
|
|
.line 954
|
|
:goto_0
|
|
invoke-static {v6}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->av1LevelNumberToConst(I)I
|
|
|
|
move-result p0
|
|
|
|
const/4 p1, -0x1
|
|
|
|
if-ne p0, p1, :cond_6
|
|
|
|
.line 956
|
|
new-instance p0, Ljava/lang/StringBuilder;
|
|
|
|
const-string p1, "Unknown AV1 level: "
|
|
|
|
invoke-direct {p0, p1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {p0, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
return-object v3
|
|
|
|
.line 959
|
|
:cond_6
|
|
new-instance p1, Landroid/util/Pair;
|
|
|
|
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p2
|
|
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-direct {p1, p2, p0}, Landroid/util/Pair;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
|
|
|
|
return-object p1
|
|
|
|
.line 930
|
|
:catch_0
|
|
new-instance p1, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {p1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {p1, 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
|
|
|
|
invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
return-object v3
|
|
.end method
|
|
|
|
.method private static getAvcProfileAndLevel(Ljava/lang/String;[Ljava/lang/String;)Landroid/util/Pair;
|
|
.locals 7
|
|
.annotation system Ldalvik/annotation/Signature;
|
|
value = {
|
|
"(",
|
|
"Ljava/lang/String;",
|
|
"[",
|
|
"Ljava/lang/String;",
|
|
")",
|
|
"Landroid/util/Pair<",
|
|
"Ljava/lang/Integer;",
|
|
"Ljava/lang/Integer;",
|
|
">;"
|
|
}
|
|
.end annotation
|
|
|
|
.line 847
|
|
array-length v0, p1
|
|
|
|
const/4 v1, 0x0
|
|
|
|
const-string v2, "MediaCodecUtil"
|
|
|
|
const-string v3, "Ignoring malformed AVC codec string: "
|
|
|
|
const/4 v4, 0x2
|
|
|
|
if-ge v0, v4, :cond_0
|
|
|
|
.line 849
|
|
new-instance p1, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {p1, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {p1, 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
|
|
|
|
invoke-static {v2, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
return-object v1
|
|
|
|
:cond_0
|
|
const/4 v0, 0x1
|
|
|
|
.line 855
|
|
:try_start_0
|
|
aget-object v5, p1, v0
|
|
|
|
invoke-virtual {v5}, Ljava/lang/String;->length()I
|
|
|
|
move-result v5
|
|
|
|
const/4 v6, 0x6
|
|
|
|
if-ne v5, v6, :cond_1
|
|
|
|
.line 857
|
|
aget-object v5, p1, v0
|
|
|
|
const/4 v6, 0x0
|
|
|
|
invoke-virtual {v5, v6, v4}, Ljava/lang/String;->substring(II)Ljava/lang/String;
|
|
|
|
move-result-object v4
|
|
|
|
const/16 v5, 0x10
|
|
|
|
invoke-static {v4, v5}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;I)I
|
|
|
|
move-result v4
|
|
|
|
.line 858
|
|
aget-object p1, p1, v0
|
|
|
|
const/4 v0, 0x4
|
|
|
|
invoke-virtual {p1, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-static {p1, v5}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;I)I
|
|
|
|
move-result p0
|
|
|
|
goto :goto_0
|
|
|
|
.line 859
|
|
:cond_1
|
|
array-length v5, p1
|
|
|
|
const/4 v6, 0x3
|
|
|
|
if-lt v5, v6, :cond_4
|
|
|
|
.line 861
|
|
aget-object v0, p1, v0
|
|
|
|
invoke-static {v0}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
|
|
|
|
move-result v0
|
|
|
|
.line 862
|
|
aget-object p1, p1, v4
|
|
|
|
invoke-static {p1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
|
|
|
|
move-result p0
|
|
:try_end_0
|
|
.catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0
|
|
|
|
move v4, v0
|
|
|
|
.line 873
|
|
:goto_0
|
|
invoke-static {v4}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->avcProfileNumberToConst(I)I
|
|
|
|
move-result p1
|
|
|
|
const/4 v0, -0x1
|
|
|
|
if-ne p1, v0, :cond_2
|
|
|
|
.line 875
|
|
new-instance p0, Ljava/lang/StringBuilder;
|
|
|
|
const-string p1, "Unknown AVC profile: "
|
|
|
|
invoke-direct {p0, p1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {p0, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-static {v2, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
return-object v1
|
|
|
|
.line 878
|
|
:cond_2
|
|
invoke-static {p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->avcLevelNumberToConst(I)I
|
|
|
|
move-result v3
|
|
|
|
if-ne v3, v0, :cond_3
|
|
|
|
.line 880
|
|
new-instance p1, Ljava/lang/StringBuilder;
|
|
|
|
const-string v0, "Unknown AVC level: "
|
|
|
|
invoke-direct {p1, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-static {v2, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
return-object v1
|
|
|
|
.line 883
|
|
:cond_3
|
|
new-instance p0, Landroid/util/Pair;
|
|
|
|
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object v0
|
|
|
|
invoke-direct {p0, p1, v0}, Landroid/util/Pair;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
|
|
|
|
return-object p0
|
|
|
|
.line 865
|
|
:cond_4
|
|
:try_start_1
|
|
new-instance p1, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {p1, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-static {v2, p1}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
|
|
:try_end_1
|
|
.catch Ljava/lang/NumberFormatException; {:try_start_1 .. :try_end_1} :catch_0
|
|
|
|
return-object v1
|
|
|
|
.line 869
|
|
:catch_0
|
|
new-instance p1, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {p1, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {p1, 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
|
|
|
|
invoke-static {v2, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
return-object v1
|
|
.end method
|
|
|
|
.method private static getCodecMimeType(Landroid/media/MediaCodecInfo;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
|
|
.locals 4
|
|
|
|
.line 490
|
|
invoke-virtual {p0}, Landroid/media/MediaCodecInfo;->getSupportedTypes()[Ljava/lang/String;
|
|
|
|
move-result-object p0
|
|
|
|
.line 491
|
|
array-length v0, p0
|
|
|
|
const/4 v1, 0x0
|
|
|
|
:goto_0
|
|
if-ge v1, v0, :cond_1
|
|
|
|
aget-object v2, p0, v1
|
|
|
|
.line 492
|
|
invoke-virtual {v2, p2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
|
|
|
|
move-result v3
|
|
|
|
if-eqz v3, :cond_0
|
|
|
|
return-object v2
|
|
|
|
:cond_0
|
|
add-int/lit8 v1, v1, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
const-string p0, "video/dolby-vision"
|
|
|
|
.line 497
|
|
invoke-virtual {p2, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_4
|
|
|
|
const-string p0, "OMX.MS.HEVCDV.Decoder"
|
|
|
|
.line 500
|
|
invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_2
|
|
|
|
const-string p0, "video/hevcdv"
|
|
|
|
return-object p0
|
|
|
|
:cond_2
|
|
const-string p0, "OMX.RTK.video.decoder"
|
|
|
|
.line 502
|
|
invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_3
|
|
|
|
const-string p0, "OMX.realtek.video.decoder.tunneled"
|
|
|
|
.line 503
|
|
invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_7
|
|
|
|
:cond_3
|
|
const-string p0, "video/dv_hevc"
|
|
|
|
return-object p0
|
|
|
|
:cond_4
|
|
const-string p0, "audio/alac"
|
|
|
|
.line 506
|
|
invoke-virtual {p2, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_5
|
|
|
|
const-string p0, "OMX.lge.alac.decoder"
|
|
|
|
invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_5
|
|
|
|
const-string p0, "audio/x-lg-alac"
|
|
|
|
return-object p0
|
|
|
|
:cond_5
|
|
const-string p0, "audio/flac"
|
|
|
|
.line 508
|
|
invoke-virtual {p2, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_6
|
|
|
|
const-string p0, "OMX.lge.flac.decoder"
|
|
|
|
invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_6
|
|
|
|
const-string p0, "audio/x-lg-flac"
|
|
|
|
return-object p0
|
|
|
|
:cond_6
|
|
const-string p0, "audio/ac3"
|
|
|
|
.line 510
|
|
invoke-virtual {p2, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_7
|
|
|
|
const-string p0, "OMX.lge.ac3.decoder"
|
|
|
|
invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_7
|
|
|
|
const-string p0, "audio/lg-ac3"
|
|
|
|
return-object p0
|
|
|
|
:cond_7
|
|
const/4 p0, 0x0
|
|
|
|
return-object p0
|
|
.end method
|
|
|
|
.method public static getCodecProfileAndLevel(Landroidx/media3/common/Format;)Landroid/util/Pair;
|
|
.locals 6
|
|
.annotation system Ldalvik/annotation/Signature;
|
|
value = {
|
|
"(",
|
|
"Landroidx/media3/common/Format;",
|
|
")",
|
|
"Landroid/util/Pair<",
|
|
"Ljava/lang/Integer;",
|
|
"Ljava/lang/Integer;",
|
|
">;"
|
|
}
|
|
.end annotation
|
|
|
|
.line 311
|
|
iget-object v0, p0, Landroidx/media3/common/Format;->codecs:Ljava/lang/String;
|
|
|
|
const/4 v1, 0x0
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
return-object v1
|
|
|
|
.line 314
|
|
:cond_0
|
|
iget-object v0, p0, Landroidx/media3/common/Format;->codecs:Ljava/lang/String;
|
|
|
|
const-string v2, "\\."
|
|
|
|
invoke-virtual {v0, v2}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
|
|
|
|
move-result-object v0
|
|
|
|
const-string v2, "video/dolby-vision"
|
|
|
|
.line 316
|
|
iget-object v3, p0, Landroidx/media3/common/Format;->sampleMimeType:Ljava/lang/String;
|
|
|
|
invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v2
|
|
|
|
if-eqz v2, :cond_1
|
|
|
|
.line 317
|
|
iget-object p0, p0, Landroidx/media3/common/Format;->codecs:Ljava/lang/String;
|
|
|
|
invoke-static {p0, v0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getDolbyVisionProfileAndLevel(Ljava/lang/String;[Ljava/lang/String;)Landroid/util/Pair;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:cond_1
|
|
const/4 v2, 0x0
|
|
|
|
.line 319
|
|
aget-object v3, v0, v2
|
|
|
|
invoke-virtual {v3}, Ljava/lang/String;->hashCode()I
|
|
|
|
invoke-virtual {v3}, Ljava/lang/String;->hashCode()I
|
|
|
|
move-result v4
|
|
|
|
const/4 v5, -0x1
|
|
|
|
sparse-switch v4, :sswitch_data_0
|
|
|
|
:goto_0
|
|
move v2, v5
|
|
|
|
goto :goto_1
|
|
|
|
:sswitch_0
|
|
const-string v2, "vp09"
|
|
|
|
invoke-virtual {v3, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v2
|
|
|
|
if-nez v2, :cond_2
|
|
|
|
goto :goto_0
|
|
|
|
:cond_2
|
|
const/4 v2, 0x6
|
|
|
|
goto :goto_1
|
|
|
|
:sswitch_1
|
|
const-string v2, "mp4a"
|
|
|
|
invoke-virtual {v3, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v2
|
|
|
|
if-nez v2, :cond_3
|
|
|
|
goto :goto_0
|
|
|
|
:cond_3
|
|
const/4 v2, 0x5
|
|
|
|
goto :goto_1
|
|
|
|
:sswitch_2
|
|
const-string v2, "hvc1"
|
|
|
|
invoke-virtual {v3, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v2
|
|
|
|
if-nez v2, :cond_4
|
|
|
|
goto :goto_0
|
|
|
|
:cond_4
|
|
const/4 v2, 0x4
|
|
|
|
goto :goto_1
|
|
|
|
:sswitch_3
|
|
const-string v2, "hev1"
|
|
|
|
invoke-virtual {v3, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v2
|
|
|
|
if-nez v2, :cond_5
|
|
|
|
goto :goto_0
|
|
|
|
:cond_5
|
|
const/4 v2, 0x3
|
|
|
|
goto :goto_1
|
|
|
|
:sswitch_4
|
|
const-string v2, "avc2"
|
|
|
|
invoke-virtual {v3, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v2
|
|
|
|
if-nez v2, :cond_6
|
|
|
|
goto :goto_0
|
|
|
|
:cond_6
|
|
const/4 v2, 0x2
|
|
|
|
goto :goto_1
|
|
|
|
:sswitch_5
|
|
const-string v2, "avc1"
|
|
|
|
invoke-virtual {v3, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v2
|
|
|
|
if-nez v2, :cond_7
|
|
|
|
goto :goto_0
|
|
|
|
:cond_7
|
|
const/4 v2, 0x1
|
|
|
|
goto :goto_1
|
|
|
|
:sswitch_6
|
|
const-string v4, "av01"
|
|
|
|
invoke-virtual {v3, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v3
|
|
|
|
if-nez v3, :cond_8
|
|
|
|
goto :goto_0
|
|
|
|
:cond_8
|
|
:goto_1
|
|
packed-switch v2, :pswitch_data_0
|
|
|
|
return-object v1
|
|
|
|
.line 324
|
|
:pswitch_0
|
|
iget-object p0, p0, Landroidx/media3/common/Format;->codecs:Ljava/lang/String;
|
|
|
|
invoke-static {p0, v0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getVp9ProfileAndLevel(Ljava/lang/String;[Ljava/lang/String;)Landroid/util/Pair;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
.line 331
|
|
:pswitch_1
|
|
iget-object p0, p0, Landroidx/media3/common/Format;->codecs:Ljava/lang/String;
|
|
|
|
invoke-static {p0, v0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getAacCodecProfileAndLevel(Ljava/lang/String;[Ljava/lang/String;)Landroid/util/Pair;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
.line 327
|
|
:pswitch_2
|
|
iget-object v1, p0, Landroidx/media3/common/Format;->codecs:Ljava/lang/String;
|
|
|
|
iget-object p0, p0, Landroidx/media3/common/Format;->colorInfo:Landroidx/media3/common/ColorInfo;
|
|
|
|
invoke-static {v1, v0, p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getHevcProfileAndLevel(Ljava/lang/String;[Ljava/lang/String;Landroidx/media3/common/ColorInfo;)Landroid/util/Pair;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
.line 322
|
|
:pswitch_3
|
|
iget-object p0, p0, Landroidx/media3/common/Format;->codecs:Ljava/lang/String;
|
|
|
|
invoke-static {p0, v0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getAvcProfileAndLevel(Ljava/lang/String;[Ljava/lang/String;)Landroid/util/Pair;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
.line 329
|
|
:pswitch_4
|
|
iget-object v1, p0, Landroidx/media3/common/Format;->codecs:Ljava/lang/String;
|
|
|
|
iget-object p0, p0, Landroidx/media3/common/Format;->colorInfo:Landroidx/media3/common/ColorInfo;
|
|
|
|
invoke-static {v1, v0, p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getAv1ProfileAndLevel(Ljava/lang/String;[Ljava/lang/String;Landroidx/media3/common/ColorInfo;)Landroid/util/Pair;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
nop
|
|
|
|
:sswitch_data_0
|
|
.sparse-switch
|
|
0x2dd8f6 -> :sswitch_6
|
|
0x2ddf23 -> :sswitch_5
|
|
0x2ddf24 -> :sswitch_4
|
|
0x30d038 -> :sswitch_3
|
|
0x310dbc -> :sswitch_2
|
|
0x333790 -> :sswitch_1
|
|
0x374e43 -> :sswitch_0
|
|
.end sparse-switch
|
|
|
|
:pswitch_data_0
|
|
.packed-switch 0x0
|
|
:pswitch_4
|
|
:pswitch_3
|
|
:pswitch_3
|
|
:pswitch_2
|
|
:pswitch_2
|
|
:pswitch_1
|
|
:pswitch_0
|
|
.end packed-switch
|
|
.end method
|
|
|
|
.method public static getDecoderInfo(Ljava/lang/String;ZZ)Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;
|
|
.locals 0
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$DecoderQueryException;
|
|
}
|
|
.end annotation
|
|
|
|
.line 144
|
|
invoke-static {p0, p1, p2}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getDecoderInfos(Ljava/lang/String;ZZ)Ljava/util/List;
|
|
|
|
move-result-object p0
|
|
|
|
.line 145
|
|
invoke-interface {p0}, Ljava/util/List;->isEmpty()Z
|
|
|
|
move-result p1
|
|
|
|
if-eqz p1, :cond_0
|
|
|
|
const/4 p0, 0x0
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const/4 p1, 0x0
|
|
|
|
invoke-interface {p0, p1}, Ljava/util/List;->get(I)Ljava/lang/Object;
|
|
|
|
move-result-object p0
|
|
|
|
check-cast p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;
|
|
|
|
:goto_0
|
|
return-object p0
|
|
.end method
|
|
|
|
.method public static declared-synchronized getDecoderInfos(Ljava/lang/String;ZZ)Ljava/util/List;
|
|
.locals 7
|
|
.annotation system Ldalvik/annotation/Signature;
|
|
value = {
|
|
"(",
|
|
"Ljava/lang/String;",
|
|
"ZZ)",
|
|
"Ljava/util/List<",
|
|
"Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;",
|
|
">;"
|
|
}
|
|
.end annotation
|
|
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$DecoderQueryException;
|
|
}
|
|
.end annotation
|
|
|
|
const-string v0, "MediaCodecList API didn\'t list secure decoder for: "
|
|
|
|
const-class v1, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;
|
|
|
|
monitor-enter v1
|
|
|
|
.line 163
|
|
:try_start_0
|
|
new-instance v2, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$CodecKey;
|
|
|
|
invoke-direct {v2, p0, p1, p2}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$CodecKey;-><init>(Ljava/lang/String;ZZ)V
|
|
|
|
sget-object v3, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->decoderInfosCache:Ljava/util/HashMap;
|
|
|
|
.line 164
|
|
invoke-virtual {v3, v2}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
|
|
|
|
move-result-object v4
|
|
|
|
check-cast v4, Ljava/util/List;
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
if-eqz v4, :cond_0
|
|
|
|
.line 166
|
|
monitor-exit v1
|
|
|
|
return-object v4
|
|
|
|
.line 169
|
|
:cond_0
|
|
:try_start_1
|
|
sget v4, Landroidx/media3/common/util/Util;->SDK_INT:I
|
|
|
|
const/4 v5, 0x0
|
|
|
|
const/16 v6, 0x15
|
|
|
|
if-lt v4, v6, :cond_1
|
|
|
|
.line 170
|
|
new-instance v4, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompatV21;
|
|
|
|
invoke-direct {v4, p1, p2}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompatV21;-><init>(ZZ)V
|
|
|
|
goto :goto_0
|
|
|
|
.line 171
|
|
:cond_1
|
|
new-instance v4, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompatV16;
|
|
|
|
invoke-direct {v4, v5}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompatV16;-><init>(Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$1;)V
|
|
|
|
.line 172
|
|
:goto_0
|
|
invoke-static {v2, v4}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getDecoderInfosInternal(Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$CodecKey;Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompat;)Ljava/util/ArrayList;
|
|
|
|
move-result-object p2
|
|
|
|
if-eqz p1, :cond_2
|
|
|
|
.line 173
|
|
invoke-virtual {p2}, Ljava/util/ArrayList;->isEmpty()Z
|
|
|
|
move-result p1
|
|
|
|
if-eqz p1, :cond_2
|
|
|
|
sget p1, Landroidx/media3/common/util/Util;->SDK_INT:I
|
|
|
|
if-gt v6, p1, :cond_2
|
|
|
|
sget p1, Landroidx/media3/common/util/Util;->SDK_INT:I
|
|
|
|
const/16 v4, 0x17
|
|
|
|
if-gt p1, v4, :cond_2
|
|
|
|
.line 176
|
|
new-instance p1, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompatV16;
|
|
|
|
invoke-direct {p1, v5}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompatV16;-><init>(Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$1;)V
|
|
|
|
.line 177
|
|
invoke-static {v2, p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getDecoderInfosInternal(Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$CodecKey;Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompat;)Ljava/util/ArrayList;
|
|
|
|
move-result-object p2
|
|
|
|
.line 178
|
|
invoke-virtual {p2}, Ljava/util/ArrayList;->isEmpty()Z
|
|
|
|
move-result p1
|
|
|
|
if-nez p1, :cond_2
|
|
|
|
const-string p1, "MediaCodecUtil"
|
|
|
|
.line 179
|
|
new-instance v4, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {v4, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {v4, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object v0
|
|
|
|
const-string v4, ". Assuming: "
|
|
|
|
invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object v0
|
|
|
|
const/4 v4, 0x0
|
|
|
|
.line 184
|
|
invoke-virtual {p2, v4}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
|
|
|
|
move-result-object v4
|
|
|
|
check-cast v4, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;
|
|
|
|
iget-object v4, v4, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->name:Ljava/lang/String;
|
|
|
|
invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object v0
|
|
|
|
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object v0
|
|
|
|
.line 179
|
|
invoke-static {p1, v0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
.line 187
|
|
:cond_2
|
|
invoke-static {p0, p2}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->applyWorkarounds(Ljava/lang/String;Ljava/util/List;)V
|
|
|
|
.line 188
|
|
invoke-static {p2}, Lcom/google/common/collect/ImmutableList;->copyOf(Ljava/util/Collection;)Lcom/google/common/collect/ImmutableList;
|
|
|
|
move-result-object p0
|
|
|
|
.line 189
|
|
invoke-virtual {v3, v2, p0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
|
|
:try_end_1
|
|
.catchall {:try_start_1 .. :try_end_1} :catchall_0
|
|
|
|
.line 190
|
|
monitor-exit v1
|
|
|
|
return-object p0
|
|
|
|
:catchall_0
|
|
move-exception p0
|
|
|
|
monitor-exit v1
|
|
|
|
throw p0
|
|
.end method
|
|
|
|
.method private static getDecoderInfosInternal(Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$CodecKey;Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompat;)Ljava/util/ArrayList;
|
|
.locals 24
|
|
.annotation system Ldalvik/annotation/Signature;
|
|
value = {
|
|
"(",
|
|
"Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$CodecKey;",
|
|
"Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompat;",
|
|
")",
|
|
"Ljava/util/ArrayList<",
|
|
"Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;",
|
|
">;"
|
|
}
|
|
.end annotation
|
|
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$DecoderQueryException;
|
|
}
|
|
.end annotation
|
|
|
|
move-object/from16 v1, p0
|
|
|
|
move-object/from16 v2, p1
|
|
|
|
const-string v3, "secure-playback"
|
|
|
|
const-string v4, "tunneled-playback"
|
|
|
|
.line 385
|
|
:try_start_0
|
|
new-instance v5, Ljava/util/ArrayList;
|
|
|
|
invoke-direct {v5}, Ljava/util/ArrayList;-><init>()V
|
|
|
|
.line 386
|
|
iget-object v15, v1, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$CodecKey;->mimeType:Ljava/lang/String;
|
|
|
|
.line 387
|
|
invoke-interface/range {p1 .. p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompat;->getCodecCount()I
|
|
|
|
move-result v14
|
|
|
|
.line 388
|
|
invoke-interface/range {p1 .. p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompat;->secureDecodersExplicit()Z
|
|
|
|
move-result v13
|
|
|
|
const/4 v0, 0x0
|
|
|
|
move v12, v0
|
|
|
|
:goto_0
|
|
if-ge v12, v14, :cond_d
|
|
|
|
.line 391
|
|
invoke-interface {v2, v12}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompat;->getCodecInfoAt(I)Landroid/media/MediaCodecInfo;
|
|
|
|
move-result-object v0
|
|
|
|
.line 392
|
|
invoke-static {v0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->isAlias(Landroid/media/MediaCodecInfo;)Z
|
|
|
|
move-result v6
|
|
|
|
if-eqz v6, :cond_1
|
|
|
|
:cond_0
|
|
:goto_1
|
|
move/from16 v22, v12
|
|
|
|
move/from16 v23, v13
|
|
|
|
move/from16 v18, v14
|
|
|
|
goto/16 :goto_4
|
|
|
|
.line 397
|
|
:cond_1
|
|
invoke-virtual {v0}, Landroid/media/MediaCodecInfo;->getName()Ljava/lang/String;
|
|
|
|
move-result-object v11
|
|
|
|
.line 398
|
|
invoke-static {v0, v11, v13, v15}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->isCodecUsableDecoder(Landroid/media/MediaCodecInfo;Ljava/lang/String;ZLjava/lang/String;)Z
|
|
|
|
move-result v6
|
|
|
|
if-nez v6, :cond_2
|
|
|
|
goto :goto_1
|
|
|
|
.line 401
|
|
:cond_2
|
|
invoke-static {v0, v11, v15}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getCodecMimeType(Landroid/media/MediaCodecInfo;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
|
|
|
|
move-result-object v10
|
|
:try_end_0
|
|
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_5
|
|
|
|
if-nez v10, :cond_3
|
|
|
|
goto :goto_1
|
|
|
|
.line 406
|
|
:cond_3
|
|
:try_start_1
|
|
invoke-virtual {v0, v10}, Landroid/media/MediaCodecInfo;->getCapabilitiesForType(Ljava/lang/String;)Landroid/media/MediaCodecInfo$CodecCapabilities;
|
|
|
|
move-result-object v9
|
|
|
|
.line 408
|
|
invoke-interface {v2, v4, v10, v9}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompat;->isFeatureSupported(Ljava/lang/String;Ljava/lang/String;Landroid/media/MediaCodecInfo$CodecCapabilities;)Z
|
|
|
|
move-result v6
|
|
|
|
.line 411
|
|
invoke-interface {v2, v4, v10, v9}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompat;->isFeatureRequired(Ljava/lang/String;Ljava/lang/String;Landroid/media/MediaCodecInfo$CodecCapabilities;)Z
|
|
|
|
move-result v7
|
|
|
|
.line 413
|
|
iget-boolean v8, v1, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$CodecKey;->tunneling:Z
|
|
|
|
if-nez v8, :cond_4
|
|
|
|
if-nez v7, :cond_0
|
|
|
|
:cond_4
|
|
iget-boolean v7, v1, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$CodecKey;->tunneling:Z
|
|
|
|
if-eqz v7, :cond_5
|
|
|
|
if-nez v6, :cond_5
|
|
|
|
goto :goto_1
|
|
|
|
.line 417
|
|
:cond_5
|
|
invoke-interface {v2, v3, v10, v9}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompat;->isFeatureSupported(Ljava/lang/String;Ljava/lang/String;Landroid/media/MediaCodecInfo$CodecCapabilities;)Z
|
|
|
|
move-result v6
|
|
|
|
.line 420
|
|
invoke-interface {v2, v3, v10, v9}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompat;->isFeatureRequired(Ljava/lang/String;Ljava/lang/String;Landroid/media/MediaCodecInfo$CodecCapabilities;)Z
|
|
|
|
move-result v7
|
|
|
|
.line 422
|
|
iget-boolean v8, v1, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$CodecKey;->secure:Z
|
|
|
|
if-nez v8, :cond_6
|
|
|
|
if-nez v7, :cond_0
|
|
|
|
:cond_6
|
|
iget-boolean v7, v1, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$CodecKey;->secure:Z
|
|
|
|
if-eqz v7, :cond_7
|
|
|
|
if-nez v6, :cond_7
|
|
|
|
goto :goto_1
|
|
|
|
.line 425
|
|
:cond_7
|
|
invoke-static {v0, v15}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->isHardwareAccelerated(Landroid/media/MediaCodecInfo;Ljava/lang/String;)Z
|
|
|
|
move-result v16
|
|
|
|
.line 426
|
|
invoke-static {v0, v15}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->isSoftwareOnly(Landroid/media/MediaCodecInfo;Ljava/lang/String;)Z
|
|
|
|
move-result v17
|
|
|
|
.line 427
|
|
invoke-static {v0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->isVendor(Landroid/media/MediaCodecInfo;)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v13, :cond_8
|
|
|
|
.line 428
|
|
iget-boolean v7, v1, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$CodecKey;->secure:Z
|
|
:try_end_1
|
|
.catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_4
|
|
|
|
if-eq v7, v6, :cond_9
|
|
|
|
:cond_8
|
|
if-nez v13, :cond_a
|
|
|
|
:try_start_2
|
|
iget-boolean v7, v1, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$CodecKey;->secure:Z
|
|
:try_end_2
|
|
.catch Ljava/lang/Exception; {:try_start_2 .. :try_end_2} :catch_1
|
|
|
|
if-nez v7, :cond_a
|
|
|
|
:cond_9
|
|
const/16 v18, 0x0
|
|
|
|
const/16 v19, 0x0
|
|
|
|
move-object v6, v11
|
|
|
|
move-object v7, v15
|
|
|
|
move-object v8, v10
|
|
|
|
move-object/from16 v20, v10
|
|
|
|
move/from16 v10, v16
|
|
|
|
move-object/from16 v21, v11
|
|
|
|
move/from16 v11, v17
|
|
|
|
move/from16 v22, v12
|
|
|
|
move v12, v0
|
|
|
|
move/from16 v23, v13
|
|
|
|
move/from16 v13, v18
|
|
|
|
move/from16 v18, v14
|
|
|
|
move/from16 v14, v19
|
|
|
|
.line 431
|
|
:try_start_3
|
|
invoke-static/range {v6 .. v14}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->newInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/media/MediaCodecInfo$CodecCapabilities;ZZZZZ)Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;
|
|
|
|
move-result-object v0
|
|
|
|
.line 430
|
|
invoke-virtual {v5, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
|
|
|
|
goto/16 :goto_4
|
|
|
|
:catch_0
|
|
move-exception v0
|
|
|
|
goto :goto_2
|
|
|
|
:catch_1
|
|
move-exception v0
|
|
|
|
move-object/from16 v20, v10
|
|
|
|
move-object/from16 v21, v11
|
|
|
|
move/from16 v22, v12
|
|
|
|
move/from16 v23, v13
|
|
|
|
move/from16 v18, v14
|
|
|
|
:goto_2
|
|
move-object/from16 v1, v21
|
|
|
|
goto :goto_3
|
|
|
|
:cond_a
|
|
move-object/from16 v20, v10
|
|
|
|
move-object/from16 v21, v11
|
|
|
|
move/from16 v22, v12
|
|
|
|
move/from16 v23, v13
|
|
|
|
move/from16 v18, v14
|
|
|
|
if-nez v23, :cond_b
|
|
|
|
if-eqz v6, :cond_b
|
|
|
|
.line 442
|
|
new-instance v6, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
|
|
:try_end_3
|
|
.catch Ljava/lang/Exception; {:try_start_3 .. :try_end_3} :catch_0
|
|
|
|
move-object/from16 v14, v21
|
|
|
|
:try_start_4
|
|
invoke-virtual {v6, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object v6
|
|
|
|
const-string v7, ".secure"
|
|
|
|
invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object v6
|
|
|
|
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object v6
|
|
:try_end_4
|
|
.catch Ljava/lang/Exception; {:try_start_4 .. :try_end_4} :catch_3
|
|
|
|
const/4 v13, 0x0
|
|
|
|
const/16 v19, 0x1
|
|
|
|
move-object v7, v15
|
|
|
|
move-object/from16 v8, v20
|
|
|
|
move/from16 v10, v16
|
|
|
|
move/from16 v11, v17
|
|
|
|
move v12, v0
|
|
|
|
move-object v1, v14
|
|
|
|
move/from16 v14, v19
|
|
|
|
.line 443
|
|
:try_start_5
|
|
invoke-static/range {v6 .. v14}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->newInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/media/MediaCodecInfo$CodecCapabilities;ZZZZZ)Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;
|
|
|
|
move-result-object v0
|
|
|
|
.line 442
|
|
invoke-virtual {v5, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
|
|
:try_end_5
|
|
.catch Ljava/lang/Exception; {:try_start_5 .. :try_end_5} :catch_2
|
|
|
|
return-object v5
|
|
|
|
:catch_2
|
|
move-exception v0
|
|
|
|
goto :goto_3
|
|
|
|
:catch_3
|
|
move-exception v0
|
|
|
|
move-object v1, v14
|
|
|
|
goto :goto_3
|
|
|
|
:catch_4
|
|
move-exception v0
|
|
|
|
move-object/from16 v20, v10
|
|
|
|
move-object v1, v11
|
|
|
|
move/from16 v22, v12
|
|
|
|
move/from16 v23, v13
|
|
|
|
move/from16 v18, v14
|
|
|
|
.line 457
|
|
:goto_3
|
|
:try_start_6
|
|
sget v6, Landroidx/media3/common/util/Util;->SDK_INT:I
|
|
:try_end_6
|
|
.catch Ljava/lang/Exception; {:try_start_6 .. :try_end_6} :catch_5
|
|
|
|
const/16 v7, 0x17
|
|
|
|
const-string v8, "MediaCodecUtil"
|
|
|
|
if-gt v6, v7, :cond_c
|
|
|
|
:try_start_7
|
|
invoke-virtual {v5}, Ljava/util/ArrayList;->isEmpty()Z
|
|
|
|
move-result v6
|
|
|
|
if-nez v6, :cond_c
|
|
|
|
.line 459
|
|
new-instance v0, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
|
|
|
|
const-string v6, "Skipping codec "
|
|
|
|
invoke-virtual {v0, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object v0
|
|
|
|
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object v0
|
|
|
|
const-string v1, " (failed to query capabilities)"
|
|
|
|
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object v0
|
|
|
|
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object v0
|
|
|
|
invoke-static {v8, v0}, Landroidx/media3/common/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
:cond_b
|
|
:goto_4
|
|
add-int/lit8 v12, v22, 0x1
|
|
|
|
move-object/from16 v1, p0
|
|
|
|
move/from16 v14, v18
|
|
|
|
move/from16 v13, v23
|
|
|
|
goto/16 :goto_0
|
|
|
|
.line 463
|
|
:cond_c
|
|
new-instance v2, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
|
|
|
|
const-string v3, "Failed to query codec "
|
|
|
|
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object v2
|
|
|
|
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object v1
|
|
|
|
const-string v2, " ("
|
|
|
|
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object v1
|
|
|
|
move-object/from16 v2, v20
|
|
|
|
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object v1
|
|
|
|
const-string v2, ")"
|
|
|
|
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object v1
|
|
|
|
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object v1
|
|
|
|
invoke-static {v8, v1}, Landroidx/media3/common/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
.line 464
|
|
throw v0
|
|
:try_end_7
|
|
.catch Ljava/lang/Exception; {:try_start_7 .. :try_end_7} :catch_5
|
|
|
|
:cond_d
|
|
return-object v5
|
|
|
|
:catch_5
|
|
move-exception v0
|
|
|
|
.line 472
|
|
new-instance v1, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$DecoderQueryException;
|
|
|
|
const/4 v2, 0x0
|
|
|
|
invoke-direct {v1, v0, v2}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$DecoderQueryException;-><init>(Ljava/lang/Throwable;Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$1;)V
|
|
|
|
throw v1
|
|
.end method
|
|
|
|
.method public static getDecoderInfosSoftMatch(Landroidx/media3/exoplayer/mediacodec/MediaCodecSelector;Landroidx/media3/common/Format;ZZ)Ljava/util/List;
|
|
.locals 1
|
|
.annotation system Ldalvik/annotation/Signature;
|
|
value = {
|
|
"(",
|
|
"Landroidx/media3/exoplayer/mediacodec/MediaCodecSelector;",
|
|
"Landroidx/media3/common/Format;",
|
|
"ZZ)",
|
|
"Ljava/util/List<",
|
|
"Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;",
|
|
">;"
|
|
}
|
|
.end annotation
|
|
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$DecoderQueryException;
|
|
}
|
|
.end annotation
|
|
|
|
.annotation runtime Lorg/checkerframework/checker/nullness/qual/RequiresNonNull;
|
|
value = {
|
|
"#2.sampleMimeType"
|
|
}
|
|
.end annotation
|
|
|
|
.line 220
|
|
iget-object v0, p1, Landroidx/media3/common/Format;->sampleMimeType:Ljava/lang/String;
|
|
|
|
.line 221
|
|
invoke-interface {p0, v0, p2, p3}, Landroidx/media3/exoplayer/mediacodec/MediaCodecSelector;->getDecoderInfos(Ljava/lang/String;ZZ)Ljava/util/List;
|
|
|
|
move-result-object v0
|
|
|
|
.line 224
|
|
invoke-static {p0, p1, p2, p3}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getAlternativeDecoderInfos(Landroidx/media3/exoplayer/mediacodec/MediaCodecSelector;Landroidx/media3/common/Format;ZZ)Ljava/util/List;
|
|
|
|
move-result-object p0
|
|
|
|
.line 226
|
|
invoke-static {}, Lcom/google/common/collect/ImmutableList;->builder()Lcom/google/common/collect/ImmutableList$Builder;
|
|
|
|
move-result-object p1
|
|
|
|
.line 227
|
|
invoke-virtual {p1, v0}, Lcom/google/common/collect/ImmutableList$Builder;->addAll(Ljava/lang/Iterable;)Lcom/google/common/collect/ImmutableList$Builder;
|
|
|
|
move-result-object p1
|
|
|
|
.line 228
|
|
invoke-virtual {p1, p0}, Lcom/google/common/collect/ImmutableList$Builder;->addAll(Ljava/lang/Iterable;)Lcom/google/common/collect/ImmutableList$Builder;
|
|
|
|
move-result-object p0
|
|
|
|
.line 229
|
|
invoke-virtual {p0}, Lcom/google/common/collect/ImmutableList$Builder;->build()Lcom/google/common/collect/ImmutableList;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
.end method
|
|
|
|
.method public static getDecoderInfosSortedByFormatSupport(Ljava/util/List;Landroidx/media3/common/Format;)Ljava/util/List;
|
|
.locals 1
|
|
.annotation system Ldalvik/annotation/Signature;
|
|
value = {
|
|
"(",
|
|
"Ljava/util/List<",
|
|
"Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;",
|
|
">;",
|
|
"Landroidx/media3/common/Format;",
|
|
")",
|
|
"Ljava/util/List<",
|
|
"Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;",
|
|
">;"
|
|
}
|
|
.end annotation
|
|
|
|
.line 271
|
|
new-instance v0, Ljava/util/ArrayList;
|
|
|
|
invoke-direct {v0, p0}, Ljava/util/ArrayList;-><init>(Ljava/util/Collection;)V
|
|
|
|
.line 272
|
|
new-instance p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$$ExternalSyntheticLambda0;
|
|
|
|
invoke-direct {p0, p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$$ExternalSyntheticLambda0;-><init>(Landroidx/media3/common/Format;)V
|
|
|
|
invoke-static {v0, p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->sortByScore(Ljava/util/List;Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$ScoreProvider;)V
|
|
|
|
return-object v0
|
|
.end method
|
|
|
|
.method public static getDecryptOnlyDecoderInfo()Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;
|
|
.locals 2
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$DecoderQueryException;
|
|
}
|
|
.end annotation
|
|
|
|
const-string v0, "audio/raw"
|
|
|
|
const/4 v1, 0x0
|
|
|
|
.line 127
|
|
invoke-static {v0, v1, v1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getDecoderInfo(Ljava/lang/String;ZZ)Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;
|
|
|
|
move-result-object v0
|
|
|
|
return-object v0
|
|
.end method
|
|
|
|
.method private static getDolbyVisionProfileAndLevel(Ljava/lang/String;[Ljava/lang/String;)Landroid/util/Pair;
|
|
.locals 6
|
|
.annotation system Ldalvik/annotation/Signature;
|
|
value = {
|
|
"(",
|
|
"Ljava/lang/String;",
|
|
"[",
|
|
"Ljava/lang/String;",
|
|
")",
|
|
"Landroid/util/Pair<",
|
|
"Ljava/lang/Integer;",
|
|
"Ljava/lang/Integer;",
|
|
">;"
|
|
}
|
|
.end annotation
|
|
|
|
.line 778
|
|
array-length v0, p1
|
|
|
|
const/4 v1, 0x3
|
|
|
|
const-string v2, "Ignoring malformed Dolby Vision codec string: "
|
|
|
|
const/4 v3, 0x0
|
|
|
|
const-string v4, "MediaCodecUtil"
|
|
|
|
if-ge v0, v1, :cond_0
|
|
|
|
.line 780
|
|
new-instance p1, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {p1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {p1, 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
|
|
|
|
invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
return-object v3
|
|
|
|
:cond_0
|
|
sget-object v0, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->PROFILE_PATTERN:Ljava/util/regex/Pattern;
|
|
|
|
const/4 v1, 0x1
|
|
|
|
.line 784
|
|
aget-object v5, p1, v1
|
|
|
|
invoke-virtual {v0, v5}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
|
|
|
|
move-result-object v0
|
|
|
|
.line 785
|
|
invoke-virtual {v0}, Ljava/util/regex/Matcher;->matches()Z
|
|
|
|
move-result v5
|
|
|
|
if-nez v5, :cond_1
|
|
|
|
.line 786
|
|
new-instance p1, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {p1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {p1, 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
|
|
|
|
invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
return-object v3
|
|
|
|
.line 789
|
|
:cond_1
|
|
invoke-virtual {v0, v1}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
|
|
|
|
move-result-object p0
|
|
|
|
.line 790
|
|
invoke-static {p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->dolbyVisionStringToProfile(Ljava/lang/String;)Ljava/lang/Integer;
|
|
|
|
move-result-object v0
|
|
|
|
if-nez v0, :cond_2
|
|
|
|
.line 792
|
|
new-instance p1, Ljava/lang/StringBuilder;
|
|
|
|
const-string v0, "Unknown Dolby Vision profile string: "
|
|
|
|
invoke-direct {p1, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {p1, 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
|
|
|
|
invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
return-object v3
|
|
|
|
:cond_2
|
|
const/4 p0, 0x2
|
|
|
|
.line 795
|
|
aget-object p0, p1, p0
|
|
|
|
.line 796
|
|
invoke-static {p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->dolbyVisionStringToLevel(Ljava/lang/String;)Ljava/lang/Integer;
|
|
|
|
move-result-object p1
|
|
|
|
if-nez p1, :cond_3
|
|
|
|
.line 798
|
|
new-instance p1, Ljava/lang/StringBuilder;
|
|
|
|
const-string v0, "Unknown Dolby Vision level string: "
|
|
|
|
invoke-direct {p1, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {p1, 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
|
|
|
|
invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
return-object v3
|
|
|
|
.line 801
|
|
:cond_3
|
|
new-instance p0, Landroid/util/Pair;
|
|
|
|
invoke-direct {p0, v0, p1}, Landroid/util/Pair;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
|
|
|
|
return-object p0
|
|
.end method
|
|
|
|
.method private static getHevcProfileAndLevel(Ljava/lang/String;[Ljava/lang/String;Landroidx/media3/common/ColorInfo;)Landroid/util/Pair;
|
|
.locals 6
|
|
.annotation system Ldalvik/annotation/Signature;
|
|
value = {
|
|
"(",
|
|
"Ljava/lang/String;",
|
|
"[",
|
|
"Ljava/lang/String;",
|
|
"Landroidx/media3/common/ColorInfo;",
|
|
")",
|
|
"Landroid/util/Pair<",
|
|
"Ljava/lang/Integer;",
|
|
"Ljava/lang/Integer;",
|
|
">;"
|
|
}
|
|
.end annotation
|
|
|
|
.line 807
|
|
array-length v0, p1
|
|
|
|
const/4 v1, 0x4
|
|
|
|
const-string v2, "Ignoring malformed HEVC codec string: "
|
|
|
|
const/4 v3, 0x0
|
|
|
|
const-string v4, "MediaCodecUtil"
|
|
|
|
if-ge v0, v1, :cond_0
|
|
|
|
.line 809
|
|
new-instance p1, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {p1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {p1, 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
|
|
|
|
invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
return-object v3
|
|
|
|
:cond_0
|
|
sget-object v0, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->PROFILE_PATTERN:Ljava/util/regex/Pattern;
|
|
|
|
const/4 v1, 0x1
|
|
|
|
.line 813
|
|
aget-object v5, p1, v1
|
|
|
|
invoke-virtual {v0, v5}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
|
|
|
|
move-result-object v0
|
|
|
|
.line 814
|
|
invoke-virtual {v0}, Ljava/util/regex/Matcher;->matches()Z
|
|
|
|
move-result v5
|
|
|
|
if-nez v5, :cond_1
|
|
|
|
.line 815
|
|
new-instance p1, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {p1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {p1, 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
|
|
|
|
invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
return-object v3
|
|
|
|
.line 818
|
|
:cond_1
|
|
invoke-virtual {v0, v1}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
|
|
|
|
move-result-object p0
|
|
|
|
const-string v0, "1"
|
|
|
|
.line 820
|
|
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_2
|
|
|
|
goto :goto_0
|
|
|
|
:cond_2
|
|
const-string v0, "2"
|
|
|
|
.line 822
|
|
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_5
|
|
|
|
if-eqz p2, :cond_3
|
|
|
|
.line 823
|
|
iget p0, p2, Landroidx/media3/common/ColorInfo;->colorTransfer:I
|
|
|
|
const/4 p2, 0x6
|
|
|
|
if-ne p0, p2, :cond_3
|
|
|
|
const/16 v1, 0x1000
|
|
|
|
goto :goto_0
|
|
|
|
:cond_3
|
|
const/4 v1, 0x2
|
|
|
|
:goto_0
|
|
const/4 p0, 0x3
|
|
|
|
.line 836
|
|
aget-object p0, p1, p0
|
|
|
|
.line 837
|
|
invoke-static {p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->hevcCodecStringToProfileLevel(Ljava/lang/String;)Ljava/lang/Integer;
|
|
|
|
move-result-object p1
|
|
|
|
if-nez p1, :cond_4
|
|
|
|
.line 839
|
|
new-instance p1, Ljava/lang/StringBuilder;
|
|
|
|
const-string p2, "Unknown HEVC level string: "
|
|
|
|
invoke-direct {p1, p2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {p1, 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
|
|
|
|
invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
return-object v3
|
|
|
|
.line 842
|
|
:cond_4
|
|
new-instance p0, Landroid/util/Pair;
|
|
|
|
invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p2
|
|
|
|
invoke-direct {p0, p2, p1}, Landroid/util/Pair;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
|
|
|
|
return-object p0
|
|
|
|
.line 833
|
|
:cond_5
|
|
new-instance p1, Ljava/lang/StringBuilder;
|
|
|
|
const-string p2, "Unknown HEVC profile string: "
|
|
|
|
invoke-direct {p1, p2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {p1, 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
|
|
|
|
invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
return-object v3
|
|
.end method
|
|
|
|
.method private static getVp9ProfileAndLevel(Ljava/lang/String;[Ljava/lang/String;)Landroid/util/Pair;
|
|
.locals 5
|
|
.annotation system Ldalvik/annotation/Signature;
|
|
value = {
|
|
"(",
|
|
"Ljava/lang/String;",
|
|
"[",
|
|
"Ljava/lang/String;",
|
|
")",
|
|
"Landroid/util/Pair<",
|
|
"Ljava/lang/Integer;",
|
|
"Ljava/lang/Integer;",
|
|
">;"
|
|
}
|
|
.end annotation
|
|
|
|
.line 888
|
|
array-length v0, p1
|
|
|
|
const/4 v1, 0x3
|
|
|
|
const-string v2, "Ignoring malformed VP9 codec string: "
|
|
|
|
const/4 v3, 0x0
|
|
|
|
const-string v4, "MediaCodecUtil"
|
|
|
|
if-ge v0, v1, :cond_0
|
|
|
|
.line 889
|
|
new-instance p1, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {p1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {p1, 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
|
|
|
|
invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
return-object v3
|
|
|
|
:cond_0
|
|
const/4 v0, 0x1
|
|
|
|
.line 895
|
|
:try_start_0
|
|
aget-object v0, p1, v0
|
|
|
|
invoke-static {v0}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
|
|
|
|
move-result v0
|
|
|
|
const/4 v1, 0x2
|
|
|
|
.line 896
|
|
aget-object p1, p1, v1
|
|
|
|
invoke-static {p1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
|
|
|
|
move-result p0
|
|
:try_end_0
|
|
.catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0
|
|
|
|
.line 902
|
|
invoke-static {v0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->vp9ProfileNumberToConst(I)I
|
|
|
|
move-result p1
|
|
|
|
const/4 v1, -0x1
|
|
|
|
if-ne p1, v1, :cond_1
|
|
|
|
.line 904
|
|
new-instance p0, Ljava/lang/StringBuilder;
|
|
|
|
const-string p1, "Unknown VP9 profile: "
|
|
|
|
invoke-direct {p0, p1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {p0, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
return-object v3
|
|
|
|
.line 907
|
|
:cond_1
|
|
invoke-static {p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->vp9LevelNumberToConst(I)I
|
|
|
|
move-result v0
|
|
|
|
if-ne v0, v1, :cond_2
|
|
|
|
.line 909
|
|
new-instance p1, Ljava/lang/StringBuilder;
|
|
|
|
const-string v0, "Unknown VP9 level: "
|
|
|
|
invoke-direct {p1, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
return-object v3
|
|
|
|
.line 912
|
|
:cond_2
|
|
new-instance p0, Landroid/util/Pair;
|
|
|
|
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object v0
|
|
|
|
invoke-direct {p0, p1, v0}, Landroid/util/Pair;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
|
|
|
|
return-object p0
|
|
|
|
.line 898
|
|
:catch_0
|
|
new-instance p1, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {p1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {p1, 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
|
|
|
|
invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
return-object v3
|
|
.end method
|
|
|
|
.method private static hevcCodecStringToProfileLevel(Ljava/lang/String;)Ljava/lang/Integer;
|
|
.locals 8
|
|
|
|
const/4 v0, 0x0
|
|
|
|
if-nez p0, :cond_0
|
|
|
|
return-object v0
|
|
|
|
.line 1299
|
|
:cond_0
|
|
invoke-virtual {p0}, Ljava/lang/String;->hashCode()I
|
|
|
|
invoke-virtual {p0}, Ljava/lang/String;->hashCode()I
|
|
|
|
move-result v1
|
|
|
|
const/16 v2, 0x10
|
|
|
|
const/16 v3, 0x8
|
|
|
|
const/4 v4, 0x4
|
|
|
|
const/4 v5, 0x2
|
|
|
|
const/4 v6, 0x1
|
|
|
|
const/4 v7, -0x1
|
|
|
|
sparse-switch v1, :sswitch_data_0
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_0
|
|
const-string v1, "L186"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_1
|
|
|
|
goto/16 :goto_0
|
|
|
|
:cond_1
|
|
const/16 v7, 0x19
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_1
|
|
const-string v1, "L183"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_2
|
|
|
|
goto/16 :goto_0
|
|
|
|
:cond_2
|
|
const/16 v7, 0x18
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_2
|
|
const-string v1, "L180"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_3
|
|
|
|
goto/16 :goto_0
|
|
|
|
:cond_3
|
|
const/16 v7, 0x17
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_3
|
|
const-string v1, "L156"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_4
|
|
|
|
goto/16 :goto_0
|
|
|
|
:cond_4
|
|
const/16 v7, 0x16
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_4
|
|
const-string v1, "L153"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_5
|
|
|
|
goto/16 :goto_0
|
|
|
|
:cond_5
|
|
const/16 v7, 0x15
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_5
|
|
const-string v1, "L150"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_6
|
|
|
|
goto/16 :goto_0
|
|
|
|
:cond_6
|
|
const/16 v7, 0x14
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_6
|
|
const-string v1, "L123"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_7
|
|
|
|
goto/16 :goto_0
|
|
|
|
:cond_7
|
|
const/16 v7, 0x13
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_7
|
|
const-string v1, "L120"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_8
|
|
|
|
goto/16 :goto_0
|
|
|
|
:cond_8
|
|
const/16 v7, 0x12
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_8
|
|
const-string v1, "H186"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_9
|
|
|
|
goto/16 :goto_0
|
|
|
|
:cond_9
|
|
const/16 v7, 0x11
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_9
|
|
const-string v1, "H183"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_a
|
|
|
|
goto/16 :goto_0
|
|
|
|
:cond_a
|
|
move v7, v2
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_a
|
|
const-string v1, "H180"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_b
|
|
|
|
goto/16 :goto_0
|
|
|
|
:cond_b
|
|
const/16 v7, 0xf
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_b
|
|
const-string v1, "H156"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_c
|
|
|
|
goto/16 :goto_0
|
|
|
|
:cond_c
|
|
const/16 v7, 0xe
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_c
|
|
const-string v1, "H153"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_d
|
|
|
|
goto/16 :goto_0
|
|
|
|
:cond_d
|
|
const/16 v7, 0xd
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_d
|
|
const-string v1, "H150"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_e
|
|
|
|
goto/16 :goto_0
|
|
|
|
:cond_e
|
|
const/16 v7, 0xc
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_e
|
|
const-string v1, "H123"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_f
|
|
|
|
goto/16 :goto_0
|
|
|
|
:cond_f
|
|
const/16 v7, 0xb
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_f
|
|
const-string v1, "H120"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_10
|
|
|
|
goto/16 :goto_0
|
|
|
|
:cond_10
|
|
const/16 v7, 0xa
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_10
|
|
const-string v1, "L93"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_11
|
|
|
|
goto/16 :goto_0
|
|
|
|
:cond_11
|
|
const/16 v7, 0x9
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_11
|
|
const-string v1, "L90"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_12
|
|
|
|
goto/16 :goto_0
|
|
|
|
:cond_12
|
|
move v7, v3
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_12
|
|
const-string v1, "L63"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_13
|
|
|
|
goto :goto_0
|
|
|
|
:cond_13
|
|
const/4 v7, 0x7
|
|
|
|
goto :goto_0
|
|
|
|
:sswitch_13
|
|
const-string v1, "L60"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_14
|
|
|
|
goto :goto_0
|
|
|
|
:cond_14
|
|
const/4 v7, 0x6
|
|
|
|
goto :goto_0
|
|
|
|
:sswitch_14
|
|
const-string v1, "L30"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_15
|
|
|
|
goto :goto_0
|
|
|
|
:cond_15
|
|
const/4 v7, 0x5
|
|
|
|
goto :goto_0
|
|
|
|
:sswitch_15
|
|
const-string v1, "H93"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_16
|
|
|
|
goto :goto_0
|
|
|
|
:cond_16
|
|
move v7, v4
|
|
|
|
goto :goto_0
|
|
|
|
:sswitch_16
|
|
const-string v1, "H90"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_17
|
|
|
|
goto :goto_0
|
|
|
|
:cond_17
|
|
const/4 v7, 0x3
|
|
|
|
goto :goto_0
|
|
|
|
:sswitch_17
|
|
const-string v1, "H63"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_18
|
|
|
|
goto :goto_0
|
|
|
|
:cond_18
|
|
move v7, v5
|
|
|
|
goto :goto_0
|
|
|
|
:sswitch_18
|
|
const-string v1, "H60"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_19
|
|
|
|
goto :goto_0
|
|
|
|
:cond_19
|
|
move v7, v6
|
|
|
|
goto :goto_0
|
|
|
|
:sswitch_19
|
|
const-string v1, "H30"
|
|
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_1a
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1a
|
|
const/4 v7, 0x0
|
|
|
|
:goto_0
|
|
packed-switch v7, :pswitch_data_0
|
|
|
|
return-object v0
|
|
|
|
:pswitch_0
|
|
const/high16 p0, 0x1000000
|
|
|
|
.line 1325
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_1
|
|
const/high16 p0, 0x400000
|
|
|
|
.line 1323
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_2
|
|
const/high16 p0, 0x100000
|
|
|
|
.line 1321
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_3
|
|
const/high16 p0, 0x40000
|
|
|
|
.line 1319
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_4
|
|
const/high16 p0, 0x10000
|
|
|
|
.line 1317
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_5
|
|
const/16 p0, 0x4000
|
|
|
|
.line 1315
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_6
|
|
const/16 p0, 0x1000
|
|
|
|
.line 1313
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_7
|
|
const/16 p0, 0x400
|
|
|
|
.line 1311
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_8
|
|
const/high16 p0, 0x2000000
|
|
|
|
.line 1351
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_9
|
|
const/high16 p0, 0x800000
|
|
|
|
.line 1349
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_a
|
|
const/high16 p0, 0x200000
|
|
|
|
.line 1347
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_b
|
|
const/high16 p0, 0x80000
|
|
|
|
.line 1345
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_c
|
|
const/high16 p0, 0x20000
|
|
|
|
.line 1343
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_d
|
|
const p0, 0x8000
|
|
|
|
.line 1341
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_e
|
|
const/16 p0, 0x2000
|
|
|
|
.line 1339
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_f
|
|
const/16 p0, 0x800
|
|
|
|
.line 1337
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_10
|
|
const/16 p0, 0x100
|
|
|
|
.line 1309
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_11
|
|
const/16 p0, 0x40
|
|
|
|
.line 1307
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
.line 1305
|
|
:pswitch_12
|
|
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
.line 1303
|
|
:pswitch_13
|
|
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
.line 1301
|
|
:pswitch_14
|
|
invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_15
|
|
const/16 p0, 0x200
|
|
|
|
.line 1335
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_16
|
|
const/16 p0, 0x80
|
|
|
|
.line 1333
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:pswitch_17
|
|
const/16 p0, 0x20
|
|
|
|
.line 1331
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
.line 1329
|
|
:pswitch_18
|
|
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
.line 1327
|
|
:pswitch_19
|
|
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
:sswitch_data_0
|
|
.sparse-switch
|
|
0x114a5 -> :sswitch_19
|
|
0x11502 -> :sswitch_18
|
|
0x11505 -> :sswitch_17
|
|
0x1155f -> :sswitch_16
|
|
0x11562 -> :sswitch_15
|
|
0x123a9 -> :sswitch_14
|
|
0x12406 -> :sswitch_13
|
|
0x12409 -> :sswitch_12
|
|
0x12463 -> :sswitch_11
|
|
0x12466 -> :sswitch_10
|
|
0x2178e7 -> :sswitch_f
|
|
0x2178ea -> :sswitch_e
|
|
0x217944 -> :sswitch_d
|
|
0x217947 -> :sswitch_c
|
|
0x21794a -> :sswitch_b
|
|
0x2179a1 -> :sswitch_a
|
|
0x2179a4 -> :sswitch_9
|
|
0x2179a7 -> :sswitch_8
|
|
0x234a63 -> :sswitch_7
|
|
0x234a66 -> :sswitch_6
|
|
0x234ac0 -> :sswitch_5
|
|
0x234ac3 -> :sswitch_4
|
|
0x234ac6 -> :sswitch_3
|
|
0x234b1d -> :sswitch_2
|
|
0x234b20 -> :sswitch_1
|
|
0x234b23 -> :sswitch_0
|
|
.end sparse-switch
|
|
|
|
:pswitch_data_0
|
|
.packed-switch 0x0
|
|
:pswitch_19
|
|
:pswitch_18
|
|
:pswitch_17
|
|
:pswitch_16
|
|
:pswitch_15
|
|
:pswitch_14
|
|
:pswitch_13
|
|
:pswitch_12
|
|
:pswitch_11
|
|
:pswitch_10
|
|
:pswitch_f
|
|
:pswitch_e
|
|
:pswitch_d
|
|
:pswitch_c
|
|
:pswitch_b
|
|
:pswitch_a
|
|
:pswitch_9
|
|
:pswitch_8
|
|
:pswitch_7
|
|
:pswitch_6
|
|
:pswitch_5
|
|
:pswitch_4
|
|
:pswitch_3
|
|
:pswitch_2
|
|
:pswitch_1
|
|
:pswitch_0
|
|
.end packed-switch
|
|
.end method
|
|
|
|
.method private static isAlias(Landroid/media/MediaCodecInfo;)Z
|
|
.locals 2
|
|
|
|
.line 698
|
|
sget v0, Landroidx/media3/common/util/Util;->SDK_INT:I
|
|
|
|
const/16 v1, 0x1d
|
|
|
|
if-lt v0, v1, :cond_0
|
|
|
|
invoke-static {p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->isAliasV29(Landroid/media/MediaCodecInfo;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_0
|
|
|
|
const/4 p0, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const/4 p0, 0x0
|
|
|
|
:goto_0
|
|
return p0
|
|
.end method
|
|
|
|
.method private static isAliasV29(Landroid/media/MediaCodecInfo;)Z
|
|
.locals 0
|
|
|
|
.line 703
|
|
invoke-virtual {p0}, Landroid/media/MediaCodecInfo;->isAlias()Z
|
|
|
|
move-result p0
|
|
|
|
return p0
|
|
.end method
|
|
|
|
.method private static isCodecUsableDecoder(Landroid/media/MediaCodecInfo;Ljava/lang/String;ZLjava/lang/String;)Z
|
|
.locals 3
|
|
|
|
.line 531
|
|
invoke-virtual {p0}, Landroid/media/MediaCodecInfo;->isEncoder()Z
|
|
|
|
move-result p0
|
|
|
|
const/4 v0, 0x0
|
|
|
|
if-nez p0, :cond_10
|
|
|
|
if-nez p2, :cond_0
|
|
|
|
const-string p0, ".secure"
|
|
|
|
invoke-virtual {p1, p0}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_0
|
|
|
|
goto/16 :goto_0
|
|
|
|
.line 536
|
|
:cond_0
|
|
sget p0, Landroidx/media3/common/util/Util;->SDK_INT:I
|
|
|
|
const/16 p2, 0x15
|
|
|
|
if-ge p0, p2, :cond_2
|
|
|
|
const-string p0, "CIPAACDecoder"
|
|
|
|
.line 537
|
|
invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_1
|
|
|
|
const-string p0, "CIPMP3Decoder"
|
|
|
|
.line 538
|
|
invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_1
|
|
|
|
const-string p0, "CIPVorbisDecoder"
|
|
|
|
.line 539
|
|
invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_1
|
|
|
|
const-string p0, "CIPAMRNBDecoder"
|
|
|
|
.line 540
|
|
invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_1
|
|
|
|
const-string p0, "AACDecoder"
|
|
|
|
.line 541
|
|
invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_1
|
|
|
|
const-string p0, "MP3Decoder"
|
|
|
|
.line 542
|
|
invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_2
|
|
|
|
:cond_1
|
|
return v0
|
|
|
|
.line 548
|
|
:cond_2
|
|
sget p0, Landroidx/media3/common/util/Util;->SDK_INT:I
|
|
|
|
const/16 p2, 0x12
|
|
|
|
if-ge p0, p2, :cond_4
|
|
|
|
const-string p0, "OMX.MTK.AUDIO.DECODER.AAC"
|
|
|
|
.line 549
|
|
invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_4
|
|
|
|
const-string p0, "a70"
|
|
|
|
sget-object p2, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
.line 550
|
|
invoke-virtual {p0, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_3
|
|
|
|
const-string p0, "Xiaomi"
|
|
|
|
sget-object p2, Landroidx/media3/common/util/Util;->MANUFACTURER:Ljava/lang/String;
|
|
|
|
.line 551
|
|
invoke-virtual {p0, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_4
|
|
|
|
sget-object p0, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
const-string p2, "HM"
|
|
|
|
invoke-virtual {p0, p2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_4
|
|
|
|
:cond_3
|
|
return v0
|
|
|
|
.line 557
|
|
:cond_4
|
|
sget p0, Landroidx/media3/common/util/Util;->SDK_INT:I
|
|
|
|
const/16 p2, 0x10
|
|
|
|
if-ne p0, p2, :cond_6
|
|
|
|
const-string p0, "OMX.qcom.audio.decoder.mp3"
|
|
|
|
.line 558
|
|
invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_6
|
|
|
|
const-string p0, "dlxu"
|
|
|
|
sget-object v1, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
.line 559
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_5
|
|
|
|
const-string p0, "protou"
|
|
|
|
sget-object v1, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
.line 560
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_5
|
|
|
|
const-string p0, "ville"
|
|
|
|
sget-object v1, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
.line 561
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_5
|
|
|
|
const-string p0, "villeplus"
|
|
|
|
sget-object v1, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
.line 562
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_5
|
|
|
|
const-string p0, "villec2"
|
|
|
|
sget-object v1, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
.line 563
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_5
|
|
|
|
sget-object p0, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
const-string v1, "gee"
|
|
|
|
.line 564
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_5
|
|
|
|
const-string p0, "C6602"
|
|
|
|
sget-object v1, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
.line 565
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_5
|
|
|
|
const-string p0, "C6603"
|
|
|
|
sget-object v1, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
.line 566
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_5
|
|
|
|
const-string p0, "C6606"
|
|
|
|
sget-object v1, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
.line 567
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_5
|
|
|
|
const-string p0, "C6616"
|
|
|
|
sget-object v1, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
.line 568
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_5
|
|
|
|
const-string p0, "L36h"
|
|
|
|
sget-object v1, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
.line 569
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_5
|
|
|
|
const-string p0, "SO-02E"
|
|
|
|
sget-object v1, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
.line 570
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_6
|
|
|
|
:cond_5
|
|
return v0
|
|
|
|
.line 575
|
|
:cond_6
|
|
sget p0, Landroidx/media3/common/util/Util;->SDK_INT:I
|
|
|
|
if-ne p0, p2, :cond_8
|
|
|
|
const-string p0, "OMX.qcom.audio.decoder.aac"
|
|
|
|
.line 576
|
|
invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_8
|
|
|
|
const-string p0, "C1504"
|
|
|
|
sget-object p2, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
.line 577
|
|
invoke-virtual {p0, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_7
|
|
|
|
const-string p0, "C1505"
|
|
|
|
sget-object p2, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
.line 578
|
|
invoke-virtual {p0, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_7
|
|
|
|
const-string p0, "C1604"
|
|
|
|
sget-object p2, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
.line 579
|
|
invoke-virtual {p0, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_7
|
|
|
|
const-string p0, "C1605"
|
|
|
|
sget-object p2, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
.line 580
|
|
invoke-virtual {p0, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_8
|
|
|
|
:cond_7
|
|
return v0
|
|
|
|
.line 585
|
|
:cond_8
|
|
sget p0, Landroidx/media3/common/util/Util;->SDK_INT:I
|
|
|
|
const/16 p2, 0x18
|
|
|
|
const-string v1, "samsung"
|
|
|
|
if-ge p0, p2, :cond_b
|
|
|
|
const-string p0, "OMX.SEC.aac.dec"
|
|
|
|
.line 586
|
|
invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_9
|
|
|
|
const-string p0, "OMX.Exynos.AAC.Decoder"
|
|
|
|
invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_b
|
|
|
|
:cond_9
|
|
sget-object p0, Landroidx/media3/common/util/Util;->MANUFACTURER:Ljava/lang/String;
|
|
|
|
.line 587
|
|
invoke-virtual {v1, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_b
|
|
|
|
sget-object p0, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
const-string p2, "zeroflte"
|
|
|
|
.line 588
|
|
invoke-virtual {p0, p2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_a
|
|
|
|
sget-object p0, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
const-string p2, "zerolte"
|
|
|
|
.line 589
|
|
invoke-virtual {p0, p2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_a
|
|
|
|
sget-object p0, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
const-string p2, "zenlte"
|
|
|
|
.line 590
|
|
invoke-virtual {p0, p2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_a
|
|
|
|
const-string p0, "SC-05G"
|
|
|
|
sget-object p2, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
.line 591
|
|
invoke-virtual {p0, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_a
|
|
|
|
const-string p0, "marinelteatt"
|
|
|
|
sget-object p2, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
.line 592
|
|
invoke-virtual {p0, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_a
|
|
|
|
const-string p0, "404SC"
|
|
|
|
sget-object p2, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
.line 593
|
|
invoke-virtual {p0, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_a
|
|
|
|
const-string p0, "SC-04G"
|
|
|
|
sget-object p2, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
.line 594
|
|
invoke-virtual {p0, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_a
|
|
|
|
const-string p0, "SCV31"
|
|
|
|
sget-object p2, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
.line 595
|
|
invoke-virtual {p0, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_b
|
|
|
|
:cond_a
|
|
return v0
|
|
|
|
.line 601
|
|
:cond_b
|
|
sget p0, Landroidx/media3/common/util/Util;->SDK_INT:I
|
|
|
|
const-string p2, "jflte"
|
|
|
|
const/16 v2, 0x13
|
|
|
|
if-gt p0, v2, :cond_d
|
|
|
|
const-string p0, "OMX.SEC.vp8.dec"
|
|
|
|
.line 602
|
|
invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_d
|
|
|
|
sget-object p0, Landroidx/media3/common/util/Util;->MANUFACTURER:Ljava/lang/String;
|
|
|
|
.line 603
|
|
invoke-virtual {v1, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_d
|
|
|
|
sget-object p0, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
const-string v1, "d2"
|
|
|
|
.line 604
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_c
|
|
|
|
sget-object p0, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
const-string v1, "serrano"
|
|
|
|
.line 605
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_c
|
|
|
|
sget-object p0, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
.line 606
|
|
invoke-virtual {p0, p2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_c
|
|
|
|
sget-object p0, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
const-string v1, "santos"
|
|
|
|
.line 607
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_c
|
|
|
|
sget-object p0, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
const-string v1, "t0"
|
|
|
|
.line 608
|
|
invoke-virtual {p0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_d
|
|
|
|
:cond_c
|
|
return v0
|
|
|
|
.line 613
|
|
:cond_d
|
|
sget p0, Landroidx/media3/common/util/Util;->SDK_INT:I
|
|
|
|
if-gt p0, v2, :cond_e
|
|
|
|
sget-object p0, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
.line 614
|
|
invoke-virtual {p0, p2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_e
|
|
|
|
const-string p0, "OMX.qcom.video.decoder.vp8"
|
|
|
|
.line 615
|
|
invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_e
|
|
|
|
return v0
|
|
|
|
.line 620
|
|
:cond_e
|
|
sget p0, Landroidx/media3/common/util/Util;->SDK_INT:I
|
|
|
|
const/16 p2, 0x17
|
|
|
|
if-gt p0, p2, :cond_f
|
|
|
|
const-string p0, "audio/eac3-joc"
|
|
|
|
.line 621
|
|
invoke-virtual {p0, p3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_f
|
|
|
|
const-string p0, "OMX.MTK.AUDIO.DECODER.DSPAC3"
|
|
|
|
.line 622
|
|
invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_f
|
|
|
|
return v0
|
|
|
|
:cond_f
|
|
const/4 p0, 0x1
|
|
|
|
return p0
|
|
|
|
:cond_10
|
|
:goto_0
|
|
return v0
|
|
.end method
|
|
|
|
.method private static isHardwareAccelerated(Landroid/media/MediaCodecInfo;Ljava/lang/String;)Z
|
|
.locals 2
|
|
|
|
.line 712
|
|
sget v0, Landroidx/media3/common/util/Util;->SDK_INT:I
|
|
|
|
const/16 v1, 0x1d
|
|
|
|
if-lt v0, v1, :cond_0
|
|
|
|
.line 713
|
|
invoke-static {p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->isHardwareAcceleratedV29(Landroid/media/MediaCodecInfo;)Z
|
|
|
|
move-result p0
|
|
|
|
return p0
|
|
|
|
.line 717
|
|
:cond_0
|
|
invoke-static {p0, p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->isSoftwareOnly(Landroid/media/MediaCodecInfo;Ljava/lang/String;)Z
|
|
|
|
move-result p0
|
|
|
|
xor-int/lit8 p0, p0, 0x1
|
|
|
|
return p0
|
|
.end method
|
|
|
|
.method private static isHardwareAcceleratedV29(Landroid/media/MediaCodecInfo;)Z
|
|
.locals 0
|
|
|
|
.line 722
|
|
invoke-virtual {p0}, Landroid/media/MediaCodecInfo;->isHardwareAccelerated()Z
|
|
|
|
move-result p0
|
|
|
|
return p0
|
|
.end method
|
|
|
|
.method private static isSoftwareOnly(Landroid/media/MediaCodecInfo;Ljava/lang/String;)Z
|
|
.locals 2
|
|
|
|
.line 730
|
|
sget v0, Landroidx/media3/common/util/Util;->SDK_INT:I
|
|
|
|
const/16 v1, 0x1d
|
|
|
|
if-lt v0, v1, :cond_0
|
|
|
|
.line 731
|
|
invoke-static {p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->isSoftwareOnlyV29(Landroid/media/MediaCodecInfo;)Z
|
|
|
|
move-result p0
|
|
|
|
return p0
|
|
|
|
.line 733
|
|
:cond_0
|
|
invoke-static {p1}, Landroidx/media3/common/MimeTypes;->isAudio(Ljava/lang/String;)Z
|
|
|
|
move-result p1
|
|
|
|
const/4 v0, 0x1
|
|
|
|
if-eqz p1, :cond_1
|
|
|
|
return v0
|
|
|
|
.line 737
|
|
:cond_1
|
|
invoke-virtual {p0}, Landroid/media/MediaCodecInfo;->getName()Ljava/lang/String;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-static {p0}, Lcom/google/common/base/Ascii;->toLowerCase(Ljava/lang/String;)Ljava/lang/String;
|
|
|
|
move-result-object p0
|
|
|
|
const-string p1, "arc."
|
|
|
|
.line 738
|
|
invoke-virtual {p0, p1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
|
|
|
|
move-result p1
|
|
|
|
const/4 v1, 0x0
|
|
|
|
if-eqz p1, :cond_2
|
|
|
|
return v1
|
|
|
|
:cond_2
|
|
const-string p1, "omx.google."
|
|
|
|
.line 742
|
|
invoke-virtual {p0, p1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
|
|
|
|
move-result p1
|
|
|
|
if-nez p1, :cond_5
|
|
|
|
const-string p1, "omx.ffmpeg."
|
|
|
|
.line 743
|
|
invoke-virtual {p0, p1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
|
|
|
|
move-result p1
|
|
|
|
if-nez p1, :cond_5
|
|
|
|
const-string p1, "omx.sec."
|
|
|
|
.line 744
|
|
invoke-virtual {p0, p1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
|
|
|
|
move-result p1
|
|
|
|
if-eqz p1, :cond_3
|
|
|
|
const-string p1, ".sw."
|
|
|
|
invoke-virtual {p0, p1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
|
|
|
|
move-result p1
|
|
|
|
if-nez p1, :cond_5
|
|
|
|
:cond_3
|
|
const-string p1, "omx.qcom.video.decoder.hevcswvdec"
|
|
|
|
.line 745
|
|
invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p1
|
|
|
|
if-nez p1, :cond_5
|
|
|
|
const-string p1, "c2.android."
|
|
|
|
.line 746
|
|
invoke-virtual {p0, p1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
|
|
|
|
move-result p1
|
|
|
|
if-nez p1, :cond_5
|
|
|
|
const-string p1, "c2.google."
|
|
|
|
.line 747
|
|
invoke-virtual {p0, p1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
|
|
|
|
move-result p1
|
|
|
|
if-nez p1, :cond_5
|
|
|
|
const-string p1, "omx."
|
|
|
|
.line 748
|
|
invoke-virtual {p0, p1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
|
|
|
|
move-result p1
|
|
|
|
if-nez p1, :cond_4
|
|
|
|
const-string p1, "c2."
|
|
|
|
invoke-virtual {p0, p1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_4
|
|
|
|
goto :goto_0
|
|
|
|
:cond_4
|
|
move v0, v1
|
|
|
|
:cond_5
|
|
:goto_0
|
|
return v0
|
|
.end method
|
|
|
|
.method private static isSoftwareOnlyV29(Landroid/media/MediaCodecInfo;)Z
|
|
.locals 0
|
|
|
|
.line 753
|
|
invoke-virtual {p0}, Landroid/media/MediaCodecInfo;->isSoftwareOnly()Z
|
|
|
|
move-result p0
|
|
|
|
return p0
|
|
.end method
|
|
|
|
.method private static isVendor(Landroid/media/MediaCodecInfo;)Z
|
|
.locals 2
|
|
|
|
.line 761
|
|
sget v0, Landroidx/media3/common/util/Util;->SDK_INT:I
|
|
|
|
const/16 v1, 0x1d
|
|
|
|
if-lt v0, v1, :cond_0
|
|
|
|
.line 762
|
|
invoke-static {p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->isVendorV29(Landroid/media/MediaCodecInfo;)Z
|
|
|
|
move-result p0
|
|
|
|
return p0
|
|
|
|
.line 764
|
|
:cond_0
|
|
invoke-virtual {p0}, Landroid/media/MediaCodecInfo;->getName()Ljava/lang/String;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-static {p0}, Lcom/google/common/base/Ascii;->toLowerCase(Ljava/lang/String;)Ljava/lang/String;
|
|
|
|
move-result-object p0
|
|
|
|
const-string v0, "omx.google."
|
|
|
|
.line 765
|
|
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_1
|
|
|
|
const-string v0, "c2.android."
|
|
|
|
.line 766
|
|
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_1
|
|
|
|
const-string v0, "c2.google."
|
|
|
|
.line 767
|
|
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_1
|
|
|
|
const/4 p0, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
const/4 p0, 0x0
|
|
|
|
:goto_0
|
|
return p0
|
|
.end method
|
|
|
|
.method private static isVendorV29(Landroid/media/MediaCodecInfo;)Z
|
|
.locals 0
|
|
|
|
.line 772
|
|
invoke-virtual {p0}, Landroid/media/MediaCodecInfo;->isVendor()Z
|
|
|
|
move-result p0
|
|
|
|
return p0
|
|
.end method
|
|
|
|
.method static synthetic lambda$applyWorkarounds$1(Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;)I
|
|
.locals 2
|
|
|
|
.line 660
|
|
iget-object p0, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->name:Ljava/lang/String;
|
|
|
|
const-string v0, "OMX.google"
|
|
|
|
.line 661
|
|
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_2
|
|
|
|
const-string v0, "c2.android"
|
|
|
|
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
goto :goto_0
|
|
|
|
.line 665
|
|
:cond_0
|
|
sget v0, Landroidx/media3/common/util/Util;->SDK_INT:I
|
|
|
|
const/16 v1, 0x1a
|
|
|
|
if-ge v0, v1, :cond_1
|
|
|
|
const-string v0, "OMX.MTK.AUDIO.DECODER.RAW"
|
|
|
|
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_1
|
|
|
|
const/4 p0, -0x1
|
|
|
|
return p0
|
|
|
|
:cond_1
|
|
const/4 p0, 0x0
|
|
|
|
return p0
|
|
|
|
:cond_2
|
|
:goto_0
|
|
const/4 p0, 0x1
|
|
|
|
return p0
|
|
.end method
|
|
|
|
.method static synthetic lambda$applyWorkarounds$2(Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;)I
|
|
.locals 1
|
|
|
|
.line 683
|
|
iget-object p0, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->name:Ljava/lang/String;
|
|
|
|
const-string v0, "OMX.google"
|
|
|
|
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
|
|
|
|
move-result p0
|
|
|
|
return p0
|
|
.end method
|
|
|
|
.method static synthetic lambda$getDecoderInfosSortedByFormatSupport$0(Landroidx/media3/common/Format;Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;)I
|
|
.locals 0
|
|
|
|
.line 273
|
|
invoke-virtual {p1, p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->isFormatFunctionallySupported(Landroidx/media3/common/Format;)Z
|
|
|
|
move-result p0
|
|
|
|
return p0
|
|
.end method
|
|
|
|
.method static synthetic lambda$sortByScore$3(Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$ScoreProvider;Ljava/lang/Object;Ljava/lang/Object;)I
|
|
.locals 0
|
|
|
|
.line 1033
|
|
invoke-interface {p0, p2}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$ScoreProvider;->getScore(Ljava/lang/Object;)I
|
|
|
|
move-result p2
|
|
|
|
invoke-interface {p0, p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$ScoreProvider;->getScore(Ljava/lang/Object;)I
|
|
|
|
move-result p0
|
|
|
|
sub-int/2addr p2, p0
|
|
|
|
return p2
|
|
.end method
|
|
|
|
.method public static maxH264DecodableFrameSize()I
|
|
.locals 5
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$DecoderQueryException;
|
|
}
|
|
.end annotation
|
|
|
|
sget v0, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->maxH264DecodableFrameSize:I
|
|
|
|
const/4 v1, -0x1
|
|
|
|
if-ne v0, v1, :cond_3
|
|
|
|
const-string v0, "video/avc"
|
|
|
|
const/4 v1, 0x0
|
|
|
|
.line 287
|
|
invoke-static {v0, v1, v1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getDecoderInfo(Ljava/lang/String;ZZ)Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;
|
|
|
|
move-result-object v0
|
|
|
|
if-eqz v0, :cond_2
|
|
|
|
.line 289
|
|
invoke-virtual {v0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->getProfileLevels()[Landroid/media/MediaCodecInfo$CodecProfileLevel;
|
|
|
|
move-result-object v0
|
|
|
|
array-length v2, v0
|
|
|
|
move v3, v1
|
|
|
|
:goto_0
|
|
if-ge v1, v2, :cond_0
|
|
|
|
aget-object v4, v0, v1
|
|
|
|
.line 290
|
|
iget v4, v4, Landroid/media/MediaCodecInfo$CodecProfileLevel;->level:I
|
|
|
|
invoke-static {v4}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->avcLevelToMaxFrameSize(I)I
|
|
|
|
move-result v4
|
|
|
|
invoke-static {v4, v3}, Ljava/lang/Math;->max(II)I
|
|
|
|
move-result v3
|
|
|
|
add-int/lit8 v1, v1, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
.line 294
|
|
:cond_0
|
|
sget v0, Landroidx/media3/common/util/Util;->SDK_INT:I
|
|
|
|
const/16 v1, 0x15
|
|
|
|
if-lt v0, v1, :cond_1
|
|
|
|
const v0, 0x54600
|
|
|
|
goto :goto_1
|
|
|
|
:cond_1
|
|
const v0, 0x2a300
|
|
|
|
:goto_1
|
|
invoke-static {v3, v0}, Ljava/lang/Math;->max(II)I
|
|
|
|
move-result v1
|
|
|
|
:cond_2
|
|
sput v1, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->maxH264DecodableFrameSize:I
|
|
|
|
:cond_3
|
|
sget v0, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->maxH264DecodableFrameSize:I
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method private static mp4aAudioObjectTypeToProfile(I)I
|
|
.locals 1
|
|
|
|
const/16 v0, 0x11
|
|
|
|
if-eq p0, v0, :cond_0
|
|
|
|
const/16 v0, 0x14
|
|
|
|
if-eq p0, v0, :cond_0
|
|
|
|
const/16 v0, 0x17
|
|
|
|
if-eq p0, v0, :cond_0
|
|
|
|
const/16 v0, 0x1d
|
|
|
|
if-eq p0, v0, :cond_0
|
|
|
|
const/16 v0, 0x27
|
|
|
|
if-eq p0, v0, :cond_0
|
|
|
|
const/16 v0, 0x2a
|
|
|
|
if-eq p0, v0, :cond_0
|
|
|
|
packed-switch p0, :pswitch_data_0
|
|
|
|
const/4 p0, -0x1
|
|
|
|
return p0
|
|
|
|
:pswitch_0
|
|
const/4 p0, 0x6
|
|
|
|
return p0
|
|
|
|
:pswitch_1
|
|
const/4 p0, 0x5
|
|
|
|
return p0
|
|
|
|
:pswitch_2
|
|
const/4 p0, 0x4
|
|
|
|
return p0
|
|
|
|
:pswitch_3
|
|
const/4 p0, 0x3
|
|
|
|
return p0
|
|
|
|
:pswitch_4
|
|
const/4 p0, 0x2
|
|
|
|
return p0
|
|
|
|
:pswitch_5
|
|
const/4 p0, 0x1
|
|
|
|
return p0
|
|
|
|
:cond_0
|
|
return v0
|
|
|
|
:pswitch_data_0
|
|
.packed-switch 0x1
|
|
:pswitch_5
|
|
:pswitch_4
|
|
:pswitch_3
|
|
:pswitch_2
|
|
:pswitch_1
|
|
:pswitch_0
|
|
.end packed-switch
|
|
.end method
|
|
|
|
.method private static sortByScore(Ljava/util/List;Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$ScoreProvider;)V
|
|
.locals 1
|
|
.annotation system Ldalvik/annotation/Signature;
|
|
value = {
|
|
"<T:",
|
|
"Ljava/lang/Object;",
|
|
">(",
|
|
"Ljava/util/List<",
|
|
"TT;>;",
|
|
"Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$ScoreProvider<",
|
|
"TT;>;)V"
|
|
}
|
|
.end annotation
|
|
|
|
.line 1033
|
|
new-instance v0, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$$ExternalSyntheticLambda1;
|
|
|
|
invoke-direct {v0, p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$$ExternalSyntheticLambda1;-><init>(Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$ScoreProvider;)V
|
|
|
|
invoke-static {p0, v0}, Ljava/util/Collections;->sort(Ljava/util/List;Ljava/util/Comparator;)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method private static vp9LevelNumberToConst(I)I
|
|
.locals 1
|
|
|
|
const/16 v0, 0xa
|
|
|
|
if-eq p0, v0, :cond_9
|
|
|
|
const/16 v0, 0xb
|
|
|
|
if-eq p0, v0, :cond_8
|
|
|
|
const/16 v0, 0x14
|
|
|
|
if-eq p0, v0, :cond_7
|
|
|
|
const/16 v0, 0x15
|
|
|
|
if-eq p0, v0, :cond_6
|
|
|
|
const/16 v0, 0x1e
|
|
|
|
if-eq p0, v0, :cond_5
|
|
|
|
const/16 v0, 0x1f
|
|
|
|
if-eq p0, v0, :cond_4
|
|
|
|
const/16 v0, 0x28
|
|
|
|
if-eq p0, v0, :cond_3
|
|
|
|
const/16 v0, 0x29
|
|
|
|
if-eq p0, v0, :cond_2
|
|
|
|
const/16 v0, 0x32
|
|
|
|
if-eq p0, v0, :cond_1
|
|
|
|
const/16 v0, 0x33
|
|
|
|
if-eq p0, v0, :cond_0
|
|
|
|
packed-switch p0, :pswitch_data_0
|
|
|
|
const/4 p0, -0x1
|
|
|
|
return p0
|
|
|
|
:pswitch_0
|
|
const/16 p0, 0x2000
|
|
|
|
return p0
|
|
|
|
:pswitch_1
|
|
const/16 p0, 0x1000
|
|
|
|
return p0
|
|
|
|
:pswitch_2
|
|
const/16 p0, 0x800
|
|
|
|
return p0
|
|
|
|
:cond_0
|
|
const/16 p0, 0x200
|
|
|
|
return p0
|
|
|
|
:cond_1
|
|
const/16 p0, 0x100
|
|
|
|
return p0
|
|
|
|
:cond_2
|
|
const/16 p0, 0x80
|
|
|
|
return p0
|
|
|
|
:cond_3
|
|
const/16 p0, 0x40
|
|
|
|
return p0
|
|
|
|
:cond_4
|
|
const/16 p0, 0x20
|
|
|
|
return p0
|
|
|
|
:cond_5
|
|
const/16 p0, 0x10
|
|
|
|
return p0
|
|
|
|
:cond_6
|
|
const/16 p0, 0x8
|
|
|
|
return p0
|
|
|
|
:cond_7
|
|
const/4 p0, 0x4
|
|
|
|
return p0
|
|
|
|
:cond_8
|
|
const/4 p0, 0x2
|
|
|
|
return p0
|
|
|
|
:cond_9
|
|
const/4 p0, 0x1
|
|
|
|
return p0
|
|
|
|
nop
|
|
|
|
:pswitch_data_0
|
|
.packed-switch 0x3c
|
|
:pswitch_2
|
|
:pswitch_1
|
|
:pswitch_0
|
|
.end packed-switch
|
|
.end method
|
|
|
|
.method private static vp9ProfileNumberToConst(I)I
|
|
.locals 2
|
|
|
|
const/4 v0, 0x1
|
|
|
|
if-eqz p0, :cond_3
|
|
|
|
const/4 v1, 0x2
|
|
|
|
if-eq p0, v0, :cond_2
|
|
|
|
if-eq p0, v1, :cond_1
|
|
|
|
const/4 v0, 0x3
|
|
|
|
if-eq p0, v0, :cond_0
|
|
|
|
const/4 p0, -0x1
|
|
|
|
return p0
|
|
|
|
:cond_0
|
|
const/16 p0, 0x8
|
|
|
|
return p0
|
|
|
|
:cond_1
|
|
const/4 p0, 0x4
|
|
|
|
return p0
|
|
|
|
:cond_2
|
|
return v1
|
|
|
|
:cond_3
|
|
return v0
|
|
.end method
|
|
|
|
.method public static warmDecoderInfoCache(Ljava/lang/String;ZZ)V
|
|
.locals 0
|
|
|
|
.line 106
|
|
:try_start_0
|
|
invoke-static {p0, p1, p2}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getDecoderInfos(Ljava/lang/String;ZZ)Ljava/util/List;
|
|
:try_end_0
|
|
.catch Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$DecoderQueryException; {:try_start_0 .. :try_end_0} :catch_0
|
|
|
|
goto :goto_0
|
|
|
|
:catch_0
|
|
move-exception p0
|
|
|
|
const-string p1, "MediaCodecUtil"
|
|
|
|
const-string p2, "Codec warming failed"
|
|
|
|
.line 109
|
|
invoke-static {p1, p2, p0}, Landroidx/media3/common/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
|
|
|
|
:goto_0
|
|
return-void
|
|
.end method
|