mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2025-01-09 13:43:22 +00:00
2493 lines
57 KiB
Smali
2493 lines
57 KiB
Smali
.class public final Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;
|
|
.super Ljava/lang/Object;
|
|
.source "MediaCodecInfo.java"
|
|
|
|
|
|
# annotations
|
|
.annotation system Ldalvik/annotation/MemberClasses;
|
|
value = {
|
|
Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo$Api29;
|
|
}
|
|
.end annotation
|
|
|
|
|
|
# static fields
|
|
.field private static final COVERAGE_RESULT_NO:I = 0x1
|
|
|
|
.field private static final COVERAGE_RESULT_NO_EMPTY_LIST:I = 0x0
|
|
|
|
.field private static final COVERAGE_RESULT_YES:I = 0x2
|
|
|
|
.field public static final MAX_SUPPORTED_INSTANCES_UNKNOWN:I = -0x1
|
|
|
|
.field public static final TAG:Ljava/lang/String; = "MediaCodecInfo"
|
|
|
|
|
|
# instance fields
|
|
.field public final adaptive:Z
|
|
|
|
.field public final capabilities:Landroid/media/MediaCodecInfo$CodecCapabilities;
|
|
|
|
.field public final codecMimeType:Ljava/lang/String;
|
|
|
|
.field public final hardwareAccelerated:Z
|
|
|
|
.field private final isVideo:Z
|
|
|
|
.field public final mimeType:Ljava/lang/String;
|
|
|
|
.field public final name:Ljava/lang/String;
|
|
|
|
.field public final secure:Z
|
|
|
|
.field public final softwareOnly:Z
|
|
|
|
.field public final tunneling:Z
|
|
|
|
.field public final vendor:Z
|
|
|
|
|
|
# direct methods
|
|
.method constructor <init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/media/MediaCodecInfo$CodecCapabilities;ZZZZZZ)V
|
|
.locals 0
|
|
|
|
.line 203
|
|
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
|
|
|
|
.line 204
|
|
invoke-static {p1}, Landroidx/media3/common/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
|
|
|
|
move-result-object p1
|
|
|
|
check-cast p1, Ljava/lang/String;
|
|
|
|
iput-object p1, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->name:Ljava/lang/String;
|
|
|
|
iput-object p2, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->mimeType:Ljava/lang/String;
|
|
|
|
iput-object p3, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->codecMimeType:Ljava/lang/String;
|
|
|
|
iput-object p4, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->capabilities:Landroid/media/MediaCodecInfo$CodecCapabilities;
|
|
|
|
iput-boolean p5, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->hardwareAccelerated:Z
|
|
|
|
iput-boolean p6, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->softwareOnly:Z
|
|
|
|
iput-boolean p7, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->vendor:Z
|
|
|
|
iput-boolean p8, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->adaptive:Z
|
|
|
|
iput-boolean p9, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->tunneling:Z
|
|
|
|
iput-boolean p10, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->secure:Z
|
|
|
|
.line 214
|
|
invoke-static {p2}, Landroidx/media3/common/MimeTypes;->isVideo(Ljava/lang/String;)Z
|
|
|
|
move-result p1
|
|
|
|
iput-boolean p1, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->isVideo:Z
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method static synthetic access$000()Z
|
|
.locals 1
|
|
|
|
.line 64
|
|
invoke-static {}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->needsIgnorePerformancePointsWorkaround()Z
|
|
|
|
move-result v0
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method private static adjustMaxInputChannelCount(Ljava/lang/String;Ljava/lang/String;I)I
|
|
.locals 2
|
|
|
|
const/4 v0, 0x1
|
|
|
|
if-gt p2, v0, :cond_4
|
|
|
|
.line 655
|
|
sget v0, Landroidx/media3/common/util/Util;->SDK_INT:I
|
|
|
|
const/16 v1, 0x1a
|
|
|
|
if-lt v0, v1, :cond_0
|
|
|
|
if-lez p2, :cond_0
|
|
|
|
goto/16 :goto_1
|
|
|
|
:cond_0
|
|
const-string v0, "audio/mpeg"
|
|
|
|
.line 659
|
|
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_4
|
|
|
|
const-string v0, "audio/3gpp"
|
|
|
|
.line 660
|
|
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_4
|
|
|
|
const-string v0, "audio/amr-wb"
|
|
|
|
.line 661
|
|
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_4
|
|
|
|
const-string v0, "audio/mp4a-latm"
|
|
|
|
.line 662
|
|
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_4
|
|
|
|
const-string v0, "audio/vorbis"
|
|
|
|
.line 663
|
|
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_4
|
|
|
|
const-string v0, "audio/opus"
|
|
|
|
.line 664
|
|
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_4
|
|
|
|
const-string v0, "audio/raw"
|
|
|
|
.line 665
|
|
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_4
|
|
|
|
const-string v0, "audio/flac"
|
|
|
|
.line 666
|
|
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_4
|
|
|
|
const-string v0, "audio/g711-alaw"
|
|
|
|
.line 667
|
|
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_4
|
|
|
|
const-string v0, "audio/g711-mlaw"
|
|
|
|
.line 668
|
|
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_4
|
|
|
|
const-string v0, "audio/gsm"
|
|
|
|
.line 669
|
|
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_1
|
|
|
|
goto :goto_1
|
|
|
|
:cond_1
|
|
const-string v0, "audio/ac3"
|
|
|
|
.line 675
|
|
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_2
|
|
|
|
const/4 p1, 0x6
|
|
|
|
goto :goto_0
|
|
|
|
:cond_2
|
|
const-string v0, "audio/eac3"
|
|
|
|
.line 677
|
|
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p1
|
|
|
|
if-eqz p1, :cond_3
|
|
|
|
const/16 p1, 0x10
|
|
|
|
goto :goto_0
|
|
|
|
:cond_3
|
|
const/16 p1, 0x1e
|
|
|
|
.line 683
|
|
:goto_0
|
|
new-instance v0, Ljava/lang/StringBuilder;
|
|
|
|
const-string v1, "AssumedMaxChannelAdjustment: "
|
|
|
|
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p0
|
|
|
|
const-string v0, ", ["
|
|
|
|
invoke-virtual {p0, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-virtual {p0, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p0
|
|
|
|
const-string p2, " to "
|
|
|
|
invoke-virtual {p0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p0
|
|
|
|
const-string p2, "]"
|
|
|
|
invoke-virtual {p0, p2}, 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
|
|
|
|
const-string p2, "MediaCodecInfo"
|
|
|
|
invoke-static {p2, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
return p1
|
|
|
|
:cond_4
|
|
:goto_1
|
|
return p2
|
|
.end method
|
|
|
|
.method private static alignVideoSizeV21(Landroid/media/MediaCodecInfo$VideoCapabilities;II)Landroid/graphics/Point;
|
|
.locals 2
|
|
|
|
.line 745
|
|
invoke-virtual {p0}, Landroid/media/MediaCodecInfo$VideoCapabilities;->getWidthAlignment()I
|
|
|
|
move-result v0
|
|
|
|
.line 746
|
|
invoke-virtual {p0}, Landroid/media/MediaCodecInfo$VideoCapabilities;->getHeightAlignment()I
|
|
|
|
move-result p0
|
|
|
|
.line 747
|
|
new-instance v1, Landroid/graphics/Point;
|
|
|
|
.line 748
|
|
invoke-static {p1, v0}, Landroidx/media3/common/util/Util;->ceilDivide(II)I
|
|
|
|
move-result p1
|
|
|
|
mul-int/2addr p1, v0
|
|
|
|
.line 749
|
|
invoke-static {p2, p0}, Landroidx/media3/common/util/Util;->ceilDivide(II)I
|
|
|
|
move-result p2
|
|
|
|
mul-int/2addr p2, p0
|
|
|
|
invoke-direct {v1, p1, p2}, Landroid/graphics/Point;-><init>(II)V
|
|
|
|
return-object v1
|
|
.end method
|
|
|
|
.method private static areSizeAndRateSupportedV21(Landroid/media/MediaCodecInfo$VideoCapabilities;IID)Z
|
|
.locals 2
|
|
|
|
.line 726
|
|
invoke-static {p0, p1, p2}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->alignVideoSizeV21(Landroid/media/MediaCodecInfo$VideoCapabilities;II)Landroid/graphics/Point;
|
|
|
|
move-result-object p1
|
|
|
|
.line 727
|
|
iget p2, p1, Landroid/graphics/Point;->x:I
|
|
|
|
.line 728
|
|
iget p1, p1, Landroid/graphics/Point;->y:I
|
|
|
|
const-wide/high16 v0, -0x4010000000000000L # -1.0
|
|
|
|
cmpl-double v0, p3, v0
|
|
|
|
if-eqz v0, :cond_1
|
|
|
|
const-wide/high16 v0, 0x3ff0000000000000L # 1.0
|
|
|
|
cmpg-double v0, p3, v0
|
|
|
|
if-gez v0, :cond_0
|
|
|
|
goto :goto_0
|
|
|
|
.line 738
|
|
:cond_0
|
|
invoke-static {p3, p4}, Ljava/lang/Math;->floor(D)D
|
|
|
|
move-result-wide p3
|
|
|
|
.line 739
|
|
invoke-virtual {p0, p2, p1, p3, p4}, Landroid/media/MediaCodecInfo$VideoCapabilities;->areSizeAndRateSupported(IID)Z
|
|
|
|
move-result p0
|
|
|
|
return p0
|
|
|
|
.line 733
|
|
:cond_1
|
|
:goto_0
|
|
invoke-virtual {p0, p2, p1}, Landroid/media/MediaCodecInfo$VideoCapabilities;->isSizeSupported(II)Z
|
|
|
|
move-result p0
|
|
|
|
return p0
|
|
.end method
|
|
|
|
.method private static estimateLegacyVp9ProfileLevels(Landroid/media/MediaCodecInfo$CodecCapabilities;)[Landroid/media/MediaCodecInfo$CodecProfileLevel;
|
|
.locals 3
|
|
|
|
const/4 v0, 0x0
|
|
|
|
if-eqz p0, :cond_0
|
|
|
|
.line 771
|
|
invoke-virtual {p0}, Landroid/media/MediaCodecInfo$CodecCapabilities;->getVideoCapabilities()Landroid/media/MediaCodecInfo$VideoCapabilities;
|
|
|
|
move-result-object p0
|
|
|
|
if-eqz p0, :cond_0
|
|
|
|
.line 773
|
|
invoke-virtual {p0}, Landroid/media/MediaCodecInfo$VideoCapabilities;->getBitrateRange()Landroid/util/Range;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-virtual {p0}, Landroid/util/Range;->getUpper()Ljava/lang/Comparable;
|
|
|
|
move-result-object p0
|
|
|
|
check-cast p0, Ljava/lang/Integer;
|
|
|
|
invoke-virtual {p0}, Ljava/lang/Integer;->intValue()I
|
|
|
|
move-result p0
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
move p0, v0
|
|
|
|
:goto_0
|
|
const v1, 0xaba9500
|
|
|
|
const/4 v2, 0x1
|
|
|
|
if-lt p0, v1, :cond_1
|
|
|
|
const/16 p0, 0x400
|
|
|
|
goto :goto_1
|
|
|
|
:cond_1
|
|
const v1, 0x7270e00
|
|
|
|
if-lt p0, v1, :cond_2
|
|
|
|
const/16 p0, 0x200
|
|
|
|
goto :goto_1
|
|
|
|
:cond_2
|
|
const v1, 0x3938700
|
|
|
|
if-lt p0, v1, :cond_3
|
|
|
|
const/16 p0, 0x100
|
|
|
|
goto :goto_1
|
|
|
|
:cond_3
|
|
const v1, 0x1c9c380
|
|
|
|
if-lt p0, v1, :cond_4
|
|
|
|
const/16 p0, 0x80
|
|
|
|
goto :goto_1
|
|
|
|
:cond_4
|
|
const v1, 0x112a880
|
|
|
|
if-lt p0, v1, :cond_5
|
|
|
|
const/16 p0, 0x40
|
|
|
|
goto :goto_1
|
|
|
|
:cond_5
|
|
const v1, 0xb71b00
|
|
|
|
if-lt p0, v1, :cond_6
|
|
|
|
const/16 p0, 0x20
|
|
|
|
goto :goto_1
|
|
|
|
:cond_6
|
|
const v1, 0x6ddd00
|
|
|
|
if-lt p0, v1, :cond_7
|
|
|
|
const/16 p0, 0x10
|
|
|
|
goto :goto_1
|
|
|
|
:cond_7
|
|
const v1, 0x36ee80
|
|
|
|
if-lt p0, v1, :cond_8
|
|
|
|
const/16 p0, 0x8
|
|
|
|
goto :goto_1
|
|
|
|
:cond_8
|
|
const v1, 0x1b7740
|
|
|
|
if-lt p0, v1, :cond_9
|
|
|
|
const/4 p0, 0x4
|
|
|
|
goto :goto_1
|
|
|
|
:cond_9
|
|
const v1, 0xc3500
|
|
|
|
if-lt p0, v1, :cond_a
|
|
|
|
const/4 p0, 0x2
|
|
|
|
goto :goto_1
|
|
|
|
:cond_a
|
|
move p0, v2
|
|
|
|
.line 803
|
|
:goto_1
|
|
new-instance v1, Landroid/media/MediaCodecInfo$CodecProfileLevel;
|
|
|
|
invoke-direct {v1}, Landroid/media/MediaCodecInfo$CodecProfileLevel;-><init>()V
|
|
|
|
.line 805
|
|
iput v2, v1, Landroid/media/MediaCodecInfo$CodecProfileLevel;->profile:I
|
|
|
|
.line 806
|
|
iput p0, v1, Landroid/media/MediaCodecInfo$CodecProfileLevel;->level:I
|
|
|
|
new-array p0, v2, [Landroid/media/MediaCodecInfo$CodecProfileLevel;
|
|
|
|
aput-object v1, p0, v0
|
|
|
|
return-object p0
|
|
.end method
|
|
|
|
.method private static getMaxSupportedInstancesV23(Landroid/media/MediaCodecInfo$CodecCapabilities;)I
|
|
.locals 0
|
|
|
|
.line 754
|
|
invoke-virtual {p0}, Landroid/media/MediaCodecInfo$CodecCapabilities;->getMaxSupportedInstances()I
|
|
|
|
move-result p0
|
|
|
|
return p0
|
|
.end method
|
|
|
|
.method private static isAdaptive(Landroid/media/MediaCodecInfo$CodecCapabilities;)Z
|
|
.locals 2
|
|
|
|
.line 696
|
|
sget v0, Landroidx/media3/common/util/Util;->SDK_INT:I
|
|
|
|
const/16 v1, 0x13
|
|
|
|
if-lt v0, v1, :cond_0
|
|
|
|
invoke-static {p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->isAdaptiveV19(Landroid/media/MediaCodecInfo$CodecCapabilities;)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 isAdaptiveV19(Landroid/media/MediaCodecInfo$CodecCapabilities;)Z
|
|
.locals 1
|
|
|
|
const-string v0, "adaptive-playback"
|
|
|
|
.line 701
|
|
invoke-virtual {p0, v0}, Landroid/media/MediaCodecInfo$CodecCapabilities;->isFeatureSupported(Ljava/lang/String;)Z
|
|
|
|
move-result p0
|
|
|
|
return p0
|
|
.end method
|
|
|
|
.method private isCodecProfileAndLevelSupported(Landroidx/media3/common/Format;Z)Z
|
|
.locals 9
|
|
|
|
.line 305
|
|
invoke-static {p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getCodecProfileAndLevel(Landroidx/media3/common/Format;)Landroid/util/Pair;
|
|
|
|
move-result-object v0
|
|
|
|
const/4 v1, 0x1
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
return v1
|
|
|
|
.line 310
|
|
:cond_0
|
|
iget-object v2, v0, Landroid/util/Pair;->first:Ljava/lang/Object;
|
|
|
|
check-cast v2, Ljava/lang/Integer;
|
|
|
|
invoke-virtual {v2}, Ljava/lang/Integer;->intValue()I
|
|
|
|
move-result v2
|
|
|
|
.line 311
|
|
iget-object v0, v0, Landroid/util/Pair;->second:Ljava/lang/Object;
|
|
|
|
check-cast v0, Ljava/lang/Integer;
|
|
|
|
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
|
|
|
|
move-result v0
|
|
|
|
const-string v3, "video/dolby-vision"
|
|
|
|
.line 312
|
|
iget-object v4, p1, Landroidx/media3/common/Format;->sampleMimeType:Ljava/lang/String;
|
|
|
|
invoke-virtual {v3, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v3
|
|
|
|
const/4 v4, 0x0
|
|
|
|
if-eqz v3, :cond_2
|
|
|
|
const-string v3, "video/avc"
|
|
|
|
iget-object v5, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->mimeType:Ljava/lang/String;
|
|
|
|
.line 316
|
|
invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v3
|
|
|
|
if-eqz v3, :cond_1
|
|
|
|
const/16 v2, 0x8
|
|
|
|
:goto_0
|
|
move v0, v4
|
|
|
|
goto :goto_1
|
|
|
|
:cond_1
|
|
const-string v3, "video/hevc"
|
|
|
|
iget-object v5, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->mimeType:Ljava/lang/String;
|
|
|
|
.line 319
|
|
invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v3
|
|
|
|
if-eqz v3, :cond_2
|
|
|
|
const/4 v2, 0x2
|
|
|
|
goto :goto_0
|
|
|
|
:cond_2
|
|
:goto_1
|
|
iget-boolean v3, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->isVideo:Z
|
|
|
|
if-nez v3, :cond_3
|
|
|
|
const/16 v3, 0x2a
|
|
|
|
if-eq v2, v3, :cond_3
|
|
|
|
return v1
|
|
|
|
.line 331
|
|
:cond_3
|
|
invoke-virtual {p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->getProfileLevels()[Landroid/media/MediaCodecInfo$CodecProfileLevel;
|
|
|
|
move-result-object v3
|
|
|
|
.line 332
|
|
sget v5, Landroidx/media3/common/util/Util;->SDK_INT:I
|
|
|
|
const/16 v6, 0x17
|
|
|
|
if-gt v5, v6, :cond_4
|
|
|
|
const-string v5, "video/x-vnd.on2.vp9"
|
|
|
|
iget-object v6, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->mimeType:Ljava/lang/String;
|
|
|
|
invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v5
|
|
|
|
if-eqz v5, :cond_4
|
|
|
|
array-length v5, v3
|
|
|
|
if-nez v5, :cond_4
|
|
|
|
iget-object v3, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->capabilities:Landroid/media/MediaCodecInfo$CodecCapabilities;
|
|
|
|
.line 335
|
|
invoke-static {v3}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->estimateLegacyVp9ProfileLevels(Landroid/media/MediaCodecInfo$CodecCapabilities;)[Landroid/media/MediaCodecInfo$CodecProfileLevel;
|
|
|
|
move-result-object v3
|
|
|
|
.line 338
|
|
:cond_4
|
|
array-length v5, v3
|
|
|
|
move v6, v4
|
|
|
|
:goto_2
|
|
if-ge v6, v5, :cond_7
|
|
|
|
aget-object v7, v3, v6
|
|
|
|
.line 339
|
|
iget v8, v7, Landroid/media/MediaCodecInfo$CodecProfileLevel;->profile:I
|
|
|
|
if-ne v8, v2, :cond_6
|
|
|
|
iget v7, v7, Landroid/media/MediaCodecInfo$CodecProfileLevel;->level:I
|
|
|
|
if-ge v7, v0, :cond_5
|
|
|
|
if-nez p2, :cond_6
|
|
|
|
:cond_5
|
|
iget-object v7, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->mimeType:Ljava/lang/String;
|
|
|
|
.line 341
|
|
invoke-static {v7, v2}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->needsProfileExcludedWorkaround(Ljava/lang/String;I)Z
|
|
|
|
move-result v7
|
|
|
|
if-nez v7, :cond_6
|
|
|
|
return v1
|
|
|
|
:cond_6
|
|
add-int/lit8 v6, v6, 0x1
|
|
|
|
goto :goto_2
|
|
|
|
.line 345
|
|
:cond_7
|
|
new-instance p2, Ljava/lang/StringBuilder;
|
|
|
|
const-string v0, "codec.profileLevel, "
|
|
|
|
invoke-direct {p2, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
iget-object p1, p1, Landroidx/media3/common/Format;->codecs:Ljava/lang/String;
|
|
|
|
invoke-virtual {p2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p1
|
|
|
|
const-string p2, ", "
|
|
|
|
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p1
|
|
|
|
iget-object p2, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->codecMimeType:Ljava/lang/String;
|
|
|
|
invoke-virtual {p1, p2}, 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-direct {p0, p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->logNoSupport(Ljava/lang/String;)V
|
|
|
|
return v4
|
|
.end method
|
|
|
|
.method private isSampleMimeTypeSupported(Landroidx/media3/common/Format;)Z
|
|
.locals 2
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->mimeType:Ljava/lang/String;
|
|
|
|
.line 299
|
|
iget-object v1, p1, Landroidx/media3/common/Format;->sampleMimeType:Ljava/lang/String;
|
|
|
|
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_1
|
|
|
|
iget-object p0, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->mimeType:Ljava/lang/String;
|
|
|
|
.line 300
|
|
invoke-static {p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getAlternativeCodecMimeType(Landroidx/media3/common/Format;)Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_0
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const/4 p0, 0x0
|
|
|
|
goto :goto_1
|
|
|
|
:cond_1
|
|
:goto_0
|
|
const/4 p0, 0x1
|
|
|
|
:goto_1
|
|
return p0
|
|
.end method
|
|
|
|
.method private static isSecure(Landroid/media/MediaCodecInfo$CodecCapabilities;)Z
|
|
.locals 2
|
|
|
|
.line 714
|
|
sget v0, Landroidx/media3/common/util/Util;->SDK_INT:I
|
|
|
|
const/16 v1, 0x15
|
|
|
|
if-lt v0, v1, :cond_0
|
|
|
|
invoke-static {p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->isSecureV21(Landroid/media/MediaCodecInfo$CodecCapabilities;)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 isSecureV21(Landroid/media/MediaCodecInfo$CodecCapabilities;)Z
|
|
.locals 1
|
|
|
|
const-string v0, "secure-playback"
|
|
|
|
.line 719
|
|
invoke-virtual {p0, v0}, Landroid/media/MediaCodecInfo$CodecCapabilities;->isFeatureSupported(Ljava/lang/String;)Z
|
|
|
|
move-result p0
|
|
|
|
return p0
|
|
.end method
|
|
|
|
.method private static isTunneling(Landroid/media/MediaCodecInfo$CodecCapabilities;)Z
|
|
.locals 2
|
|
|
|
.line 705
|
|
sget v0, Landroidx/media3/common/util/Util;->SDK_INT:I
|
|
|
|
const/16 v1, 0x15
|
|
|
|
if-lt v0, v1, :cond_0
|
|
|
|
invoke-static {p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->isTunnelingV21(Landroid/media/MediaCodecInfo$CodecCapabilities;)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 isTunnelingV21(Landroid/media/MediaCodecInfo$CodecCapabilities;)Z
|
|
.locals 1
|
|
|
|
const-string v0, "tunneled-playback"
|
|
|
|
.line 710
|
|
invoke-virtual {p0, v0}, Landroid/media/MediaCodecInfo$CodecCapabilities;->isFeatureSupported(Ljava/lang/String;)Z
|
|
|
|
move-result p0
|
|
|
|
return p0
|
|
.end method
|
|
|
|
.method private logAssumedSupport(Ljava/lang/String;)V
|
|
.locals 2
|
|
|
|
.line 641
|
|
new-instance v0, Ljava/lang/StringBuilder;
|
|
|
|
const-string v1, "AssumedSupport ["
|
|
|
|
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p1
|
|
|
|
const-string v0, "] ["
|
|
|
|
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p1
|
|
|
|
iget-object v1, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->name:Ljava/lang/String;
|
|
|
|
invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p1
|
|
|
|
const-string v1, ", "
|
|
|
|
invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p1
|
|
|
|
iget-object p0, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->mimeType:Ljava/lang/String;
|
|
|
|
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-virtual {p0, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p0
|
|
|
|
sget-object p1, Landroidx/media3/common/util/Util;->DEVICE_DEBUG_INFO:Ljava/lang/String;
|
|
|
|
invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p0
|
|
|
|
const-string p1, "]"
|
|
|
|
invoke-virtual {p0, p1}, 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
|
|
|
|
const-string p1, "MediaCodecInfo"
|
|
|
|
invoke-static {p1, p0}, Landroidx/media3/common/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method private logNoSupport(Ljava/lang/String;)V
|
|
.locals 2
|
|
|
|
.line 627
|
|
new-instance v0, Ljava/lang/StringBuilder;
|
|
|
|
const-string v1, "NoSupport ["
|
|
|
|
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p1
|
|
|
|
const-string v0, "] ["
|
|
|
|
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p1
|
|
|
|
iget-object v1, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->name:Ljava/lang/String;
|
|
|
|
invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p1
|
|
|
|
const-string v1, ", "
|
|
|
|
invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p1
|
|
|
|
iget-object p0, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->mimeType:Ljava/lang/String;
|
|
|
|
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-virtual {p0, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p0
|
|
|
|
sget-object p1, Landroidx/media3/common/util/Util;->DEVICE_DEBUG_INFO:Ljava/lang/String;
|
|
|
|
invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p0
|
|
|
|
const-string p1, "]"
|
|
|
|
invoke-virtual {p0, p1}, 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
|
|
|
|
const-string p1, "MediaCodecInfo"
|
|
|
|
invoke-static {p1, p0}, Landroidx/media3/common/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method private static needsAdaptationFlushWorkaround(Ljava/lang/String;)Z
|
|
.locals 1
|
|
|
|
const-string v0, "audio/opus"
|
|
|
|
.line 848
|
|
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
return p0
|
|
.end method
|
|
|
|
.method private static needsAdaptationReconfigureWorkaround(Ljava/lang/String;)Z
|
|
.locals 2
|
|
|
|
.line 833
|
|
sget-object v0, Landroidx/media3/common/util/Util;->MODEL:Ljava/lang/String;
|
|
|
|
const-string v1, "SM-T230"
|
|
|
|
invoke-virtual {v0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
const-string v0, "OMX.MARVELL.VIDEO.HW.CODA7542DECODER"
|
|
|
|
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)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 needsDisableAdaptationWorkaround(Ljava/lang/String;)Z
|
|
.locals 2
|
|
|
|
.line 819
|
|
sget v0, Landroidx/media3/common/util/Util;->SDK_INT:I
|
|
|
|
const/16 v1, 0x16
|
|
|
|
if-gt v0, v1, :cond_2
|
|
|
|
const-string v0, "ODROID-XU3"
|
|
|
|
sget-object v1, Landroidx/media3/common/util/Util;->MODEL:Ljava/lang/String;
|
|
|
|
.line 820
|
|
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
const-string v0, "Nexus 10"
|
|
|
|
sget-object v1, Landroidx/media3/common/util/Util;->MODEL:Ljava/lang/String;
|
|
|
|
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_2
|
|
|
|
:cond_0
|
|
const-string v0, "OMX.Exynos.AVC.Decoder"
|
|
|
|
.line 821
|
|
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_1
|
|
|
|
const-string v0, "OMX.Exynos.AVC.Decoder.secure"
|
|
|
|
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_2
|
|
|
|
:cond_1
|
|
const/4 p0, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_2
|
|
const/4 p0, 0x0
|
|
|
|
:goto_0
|
|
return p0
|
|
.end method
|
|
|
|
.method private static needsIgnorePerformancePointsWorkaround()Z
|
|
.locals 2
|
|
|
|
.line 882
|
|
sget-object v0, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
const-string v1, "sabrina"
|
|
|
|
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_1
|
|
|
|
sget-object v0, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
const-string v1, "boreal"
|
|
|
|
.line 883
|
|
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_1
|
|
|
|
sget-object v0, Landroidx/media3/common/util/Util;->MODEL:Ljava/lang/String;
|
|
|
|
const-string v1, "Lenovo TB-X605"
|
|
|
|
.line 885
|
|
invoke-virtual {v0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_1
|
|
|
|
sget-object v0, Landroidx/media3/common/util/Util;->MODEL:Ljava/lang/String;
|
|
|
|
const-string v1, "Lenovo TB-X606"
|
|
|
|
.line 886
|
|
invoke-virtual {v0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_1
|
|
|
|
sget-object v0, Landroidx/media3/common/util/Util;->MODEL:Ljava/lang/String;
|
|
|
|
const-string v1, "Lenovo TB-X616"
|
|
|
|
.line 887
|
|
invoke-virtual {v0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const/4 v0, 0x0
|
|
|
|
goto :goto_1
|
|
|
|
:cond_1
|
|
:goto_0
|
|
const/4 v0, 0x1
|
|
|
|
:goto_1
|
|
return v0
|
|
.end method
|
|
|
|
.method private static needsProfileExcludedWorkaround(Ljava/lang/String;I)Z
|
|
.locals 1
|
|
|
|
const-string v0, "video/hevc"
|
|
|
|
.line 874
|
|
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_1
|
|
|
|
const/4 p0, 0x2
|
|
|
|
if-ne p0, p1, :cond_1
|
|
|
|
const-string p0, "sailfish"
|
|
|
|
sget-object p1, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
.line 876
|
|
invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-nez p0, :cond_0
|
|
|
|
const-string p0, "marlin"
|
|
|
|
sget-object p1, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_1
|
|
|
|
:cond_0
|
|
const/4 p0, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
const/4 p0, 0x0
|
|
|
|
:goto_0
|
|
return p0
|
|
.end method
|
|
|
|
.method private static needsRotatedVerticalResolutionWorkaround(Ljava/lang/String;)Z
|
|
.locals 1
|
|
|
|
const-string v0, "OMX.MTK.VIDEO.DECODER.HEVC"
|
|
|
|
.line 861
|
|
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_0
|
|
|
|
const-string p0, "mcv5a"
|
|
|
|
sget-object v0, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String;
|
|
|
|
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_0
|
|
|
|
const/4 p0, 0x0
|
|
|
|
return p0
|
|
|
|
:cond_0
|
|
const/4 p0, 0x1
|
|
|
|
return p0
|
|
.end method
|
|
|
|
.method public static newInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/media/MediaCodecInfo$CodecCapabilities;ZZZZZ)Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;
|
|
.locals 12
|
|
|
|
.line 176
|
|
new-instance v11, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;
|
|
|
|
const/4 v0, 0x1
|
|
|
|
const/4 v1, 0x0
|
|
|
|
if-nez p7, :cond_0
|
|
|
|
if-eqz p3, :cond_0
|
|
|
|
.line 186
|
|
invoke-static {p3}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->isAdaptive(Landroid/media/MediaCodecInfo$CodecCapabilities;)Z
|
|
|
|
move-result v2
|
|
|
|
if-eqz v2, :cond_0
|
|
|
|
.line 187
|
|
invoke-static {p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->needsDisableAdaptationWorkaround(Ljava/lang/String;)Z
|
|
|
|
move-result v2
|
|
|
|
if-nez v2, :cond_0
|
|
|
|
move v8, v0
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
move v8, v1
|
|
|
|
:goto_0
|
|
if-eqz p3, :cond_1
|
|
|
|
.line 188
|
|
invoke-static {p3}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->isTunneling(Landroid/media/MediaCodecInfo$CodecCapabilities;)Z
|
|
|
|
move-result v2
|
|
|
|
if-eqz v2, :cond_1
|
|
|
|
move v9, v0
|
|
|
|
goto :goto_1
|
|
|
|
:cond_1
|
|
move v9, v1
|
|
|
|
:goto_1
|
|
if-nez p8, :cond_3
|
|
|
|
if-eqz p3, :cond_2
|
|
|
|
.line 189
|
|
invoke-static {p3}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->isSecure(Landroid/media/MediaCodecInfo$CodecCapabilities;)Z
|
|
|
|
move-result v2
|
|
|
|
if-eqz v2, :cond_2
|
|
|
|
goto :goto_2
|
|
|
|
:cond_2
|
|
move v10, v1
|
|
|
|
goto :goto_3
|
|
|
|
:cond_3
|
|
:goto_2
|
|
move v10, v0
|
|
|
|
:goto_3
|
|
move-object v0, v11
|
|
|
|
move-object v1, p0
|
|
|
|
move-object v2, p1
|
|
|
|
move-object v3, p2
|
|
|
|
move-object v4, p3
|
|
|
|
move/from16 v5, p4
|
|
|
|
move/from16 v6, p5
|
|
|
|
move/from16 v7, p6
|
|
|
|
invoke-direct/range {v0 .. v10}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/media/MediaCodecInfo$CodecCapabilities;ZZZZZZ)V
|
|
|
|
return-object v11
|
|
.end method
|
|
|
|
|
|
# virtual methods
|
|
.method public alignVideoSizeV21(II)Landroid/graphics/Point;
|
|
.locals 1
|
|
|
|
iget-object p0, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->capabilities:Landroid/media/MediaCodecInfo$CodecCapabilities;
|
|
|
|
const/4 v0, 0x0
|
|
|
|
if-nez p0, :cond_0
|
|
|
|
return-object v0
|
|
|
|
.line 565
|
|
:cond_0
|
|
invoke-virtual {p0}, Landroid/media/MediaCodecInfo$CodecCapabilities;->getVideoCapabilities()Landroid/media/MediaCodecInfo$VideoCapabilities;
|
|
|
|
move-result-object p0
|
|
|
|
if-nez p0, :cond_1
|
|
|
|
return-object v0
|
|
|
|
.line 569
|
|
:cond_1
|
|
invoke-static {p0, p1, p2}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->alignVideoSizeV21(Landroid/media/MediaCodecInfo$VideoCapabilities;II)Landroid/graphics/Point;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
.end method
|
|
|
|
.method public canReuseCodec(Landroidx/media3/common/Format;Landroidx/media3/common/Format;)Landroidx/media3/exoplayer/DecoderReuseEvaluation;
|
|
.locals 13
|
|
|
|
.line 420
|
|
iget-object v0, p1, Landroidx/media3/common/Format;->sampleMimeType:Ljava/lang/String;
|
|
|
|
iget-object v1, p2, Landroidx/media3/common/Format;->sampleMimeType:Ljava/lang/String;
|
|
|
|
invoke-static {v0, v1}, Landroidx/media3/common/util/Util;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
const/16 v0, 0x8
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const/4 v0, 0x0
|
|
|
|
:goto_0
|
|
iget-boolean v1, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->isVideo:Z
|
|
|
|
if-eqz v1, :cond_8
|
|
|
|
.line 425
|
|
iget v1, p1, Landroidx/media3/common/Format;->rotationDegrees:I
|
|
|
|
iget v2, p2, Landroidx/media3/common/Format;->rotationDegrees:I
|
|
|
|
if-eq v1, v2, :cond_1
|
|
|
|
or-int/lit16 v0, v0, 0x400
|
|
|
|
:cond_1
|
|
iget-boolean v1, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->adaptive:Z
|
|
|
|
if-nez v1, :cond_3
|
|
|
|
.line 428
|
|
iget v1, p1, Landroidx/media3/common/Format;->width:I
|
|
|
|
iget v2, p2, Landroidx/media3/common/Format;->width:I
|
|
|
|
if-ne v1, v2, :cond_2
|
|
|
|
iget v1, p1, Landroidx/media3/common/Format;->height:I
|
|
|
|
iget v2, p2, Landroidx/media3/common/Format;->height:I
|
|
|
|
if-eq v1, v2, :cond_3
|
|
|
|
:cond_2
|
|
or-int/lit16 v0, v0, 0x200
|
|
|
|
.line 432
|
|
:cond_3
|
|
iget-object v1, p1, Landroidx/media3/common/Format;->colorInfo:Landroidx/media3/common/ColorInfo;
|
|
|
|
iget-object v2, p2, Landroidx/media3/common/Format;->colorInfo:Landroidx/media3/common/ColorInfo;
|
|
|
|
invoke-static {v1, v2}, Landroidx/media3/common/util/Util;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
|
|
|
|
move-result v1
|
|
|
|
if-nez v1, :cond_4
|
|
|
|
or-int/lit16 v0, v0, 0x800
|
|
|
|
:cond_4
|
|
iget-object v1, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->name:Ljava/lang/String;
|
|
|
|
.line 435
|
|
invoke-static {v1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->needsAdaptationReconfigureWorkaround(Ljava/lang/String;)Z
|
|
|
|
move-result v1
|
|
|
|
if-eqz v1, :cond_5
|
|
|
|
.line 436
|
|
invoke-virtual {p1, p2}, Landroidx/media3/common/Format;->initializationDataEquals(Landroidx/media3/common/Format;)Z
|
|
|
|
move-result v1
|
|
|
|
if-nez v1, :cond_5
|
|
|
|
or-int/lit8 v0, v0, 0x2
|
|
|
|
:cond_5
|
|
if-nez v0, :cond_7
|
|
|
|
.line 441
|
|
new-instance v0, Landroidx/media3/exoplayer/DecoderReuseEvaluation;
|
|
|
|
iget-object v2, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->name:Ljava/lang/String;
|
|
|
|
.line 445
|
|
invoke-virtual {p1, p2}, Landroidx/media3/common/Format;->initializationDataEquals(Landroidx/media3/common/Format;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_6
|
|
|
|
const/4 p0, 0x3
|
|
|
|
goto :goto_1
|
|
|
|
:cond_6
|
|
const/4 p0, 0x2
|
|
|
|
:goto_1
|
|
move v5, p0
|
|
|
|
const/4 v6, 0x0
|
|
|
|
move-object v1, v0
|
|
|
|
move-object v3, p1
|
|
|
|
move-object v4, p2
|
|
|
|
.line 447
|
|
invoke-direct/range {v1 .. v6}, Landroidx/media3/exoplayer/DecoderReuseEvaluation;-><init>(Ljava/lang/String;Landroidx/media3/common/Format;Landroidx/media3/common/Format;II)V
|
|
|
|
return-object v0
|
|
|
|
:cond_7
|
|
move v12, v0
|
|
|
|
goto/16 :goto_2
|
|
|
|
.line 451
|
|
:cond_8
|
|
iget v1, p1, Landroidx/media3/common/Format;->channelCount:I
|
|
|
|
iget v2, p2, Landroidx/media3/common/Format;->channelCount:I
|
|
|
|
if-eq v1, v2, :cond_9
|
|
|
|
or-int/lit16 v0, v0, 0x1000
|
|
|
|
.line 454
|
|
:cond_9
|
|
iget v1, p1, Landroidx/media3/common/Format;->sampleRate:I
|
|
|
|
iget v2, p2, Landroidx/media3/common/Format;->sampleRate:I
|
|
|
|
if-eq v1, v2, :cond_a
|
|
|
|
or-int/lit16 v0, v0, 0x2000
|
|
|
|
.line 457
|
|
:cond_a
|
|
iget v1, p1, Landroidx/media3/common/Format;->pcmEncoding:I
|
|
|
|
iget v2, p2, Landroidx/media3/common/Format;->pcmEncoding:I
|
|
|
|
if-eq v1, v2, :cond_b
|
|
|
|
or-int/lit16 v0, v0, 0x4000
|
|
|
|
:cond_b
|
|
if-nez v0, :cond_c
|
|
|
|
const-string v1, "audio/mp4a-latm"
|
|
|
|
iget-object v2, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->mimeType:Ljava/lang/String;
|
|
|
|
.line 463
|
|
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v1
|
|
|
|
if-eqz v1, :cond_c
|
|
|
|
.line 466
|
|
invoke-static {p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getCodecProfileAndLevel(Landroidx/media3/common/Format;)Landroid/util/Pair;
|
|
|
|
move-result-object v1
|
|
|
|
.line 469
|
|
invoke-static {p2}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getCodecProfileAndLevel(Landroidx/media3/common/Format;)Landroid/util/Pair;
|
|
|
|
move-result-object v2
|
|
|
|
if-eqz v1, :cond_c
|
|
|
|
if-eqz v2, :cond_c
|
|
|
|
.line 471
|
|
iget-object v1, v1, Landroid/util/Pair;->first:Ljava/lang/Object;
|
|
|
|
check-cast v1, Ljava/lang/Integer;
|
|
|
|
invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
|
|
|
|
move-result v1
|
|
|
|
.line 472
|
|
iget-object v2, v2, Landroid/util/Pair;->first:Ljava/lang/Object;
|
|
|
|
check-cast v2, Ljava/lang/Integer;
|
|
|
|
invoke-virtual {v2}, Ljava/lang/Integer;->intValue()I
|
|
|
|
move-result v2
|
|
|
|
const/16 v3, 0x2a
|
|
|
|
if-ne v1, v3, :cond_c
|
|
|
|
if-ne v2, v3, :cond_c
|
|
|
|
.line 475
|
|
new-instance v0, Landroidx/media3/exoplayer/DecoderReuseEvaluation;
|
|
|
|
iget-object v5, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->name:Ljava/lang/String;
|
|
|
|
const/4 v8, 0x3
|
|
|
|
const/4 v9, 0x0
|
|
|
|
move-object v4, v0
|
|
|
|
move-object v6, p1
|
|
|
|
move-object v7, p2
|
|
|
|
invoke-direct/range {v4 .. v9}, Landroidx/media3/exoplayer/DecoderReuseEvaluation;-><init>(Ljava/lang/String;Landroidx/media3/common/Format;Landroidx/media3/common/Format;II)V
|
|
|
|
return-object v0
|
|
|
|
.line 485
|
|
:cond_c
|
|
invoke-virtual {p1, p2}, Landroidx/media3/common/Format;->initializationDataEquals(Landroidx/media3/common/Format;)Z
|
|
|
|
move-result v1
|
|
|
|
if-nez v1, :cond_d
|
|
|
|
or-int/lit8 v0, v0, 0x20
|
|
|
|
:cond_d
|
|
iget-object v1, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->mimeType:Ljava/lang/String;
|
|
|
|
.line 488
|
|
invoke-static {v1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->needsAdaptationFlushWorkaround(Ljava/lang/String;)Z
|
|
|
|
move-result v1
|
|
|
|
if-eqz v1, :cond_e
|
|
|
|
or-int/lit8 v0, v0, 0x2
|
|
|
|
:cond_e
|
|
if-nez v0, :cond_7
|
|
|
|
.line 493
|
|
new-instance v0, Landroidx/media3/exoplayer/DecoderReuseEvaluation;
|
|
|
|
iget-object v2, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->name:Ljava/lang/String;
|
|
|
|
const/4 v5, 0x1
|
|
|
|
const/4 v6, 0x0
|
|
|
|
move-object v1, v0
|
|
|
|
move-object v3, p1
|
|
|
|
move-object v4, p2
|
|
|
|
invoke-direct/range {v1 .. v6}, Landroidx/media3/exoplayer/DecoderReuseEvaluation;-><init>(Ljava/lang/String;Landroidx/media3/common/Format;Landroidx/media3/common/Format;II)V
|
|
|
|
return-object v0
|
|
|
|
.line 498
|
|
:goto_2
|
|
new-instance v0, Landroidx/media3/exoplayer/DecoderReuseEvaluation;
|
|
|
|
iget-object v8, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->name:Ljava/lang/String;
|
|
|
|
const/4 v11, 0x0
|
|
|
|
move-object v7, v0
|
|
|
|
move-object v9, p1
|
|
|
|
move-object v10, p2
|
|
|
|
invoke-direct/range {v7 .. v12}, Landroidx/media3/exoplayer/DecoderReuseEvaluation;-><init>(Ljava/lang/String;Landroidx/media3/common/Format;Landroidx/media3/common/Format;II)V
|
|
|
|
return-object v0
|
|
.end method
|
|
|
|
.method public getMaxSupportedInstances()I
|
|
.locals 2
|
|
|
|
.line 241
|
|
sget v0, Landroidx/media3/common/util/Util;->SDK_INT:I
|
|
|
|
const/16 v1, 0x17
|
|
|
|
if-lt v0, v1, :cond_1
|
|
|
|
iget-object p0, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->capabilities:Landroid/media/MediaCodecInfo$CodecCapabilities;
|
|
|
|
if-nez p0, :cond_0
|
|
|
|
goto :goto_0
|
|
|
|
.line 244
|
|
:cond_0
|
|
invoke-static {p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->getMaxSupportedInstancesV23(Landroid/media/MediaCodecInfo$CodecCapabilities;)I
|
|
|
|
move-result p0
|
|
|
|
return p0
|
|
|
|
:cond_1
|
|
:goto_0
|
|
const/4 p0, -0x1
|
|
|
|
return p0
|
|
.end method
|
|
|
|
.method public getProfileLevels()[Landroid/media/MediaCodecInfo$CodecProfileLevel;
|
|
.locals 1
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->capabilities:Landroid/media/MediaCodecInfo$CodecCapabilities;
|
|
|
|
if-eqz v0, :cond_1
|
|
|
|
.line 228
|
|
iget-object v0, v0, Landroid/media/MediaCodecInfo$CodecCapabilities;->profileLevels:[Landroid/media/MediaCodecInfo$CodecProfileLevel;
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
iget-object p0, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->capabilities:Landroid/media/MediaCodecInfo$CodecCapabilities;
|
|
|
|
.line 230
|
|
iget-object p0, p0, Landroid/media/MediaCodecInfo$CodecCapabilities;->profileLevels:[Landroid/media/MediaCodecInfo$CodecProfileLevel;
|
|
|
|
goto :goto_1
|
|
|
|
:cond_1
|
|
:goto_0
|
|
const/4 p0, 0x0
|
|
|
|
new-array p0, p0, [Landroid/media/MediaCodecInfo$CodecProfileLevel;
|
|
|
|
:goto_1
|
|
return-object p0
|
|
.end method
|
|
|
|
.method public isAudioChannelCountSupportedV21(I)Z
|
|
.locals 4
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->capabilities:Landroid/media/MediaCodecInfo$CodecCapabilities;
|
|
|
|
const/4 v1, 0x0
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
const-string p1, "channelCount.caps"
|
|
|
|
.line 609
|
|
invoke-direct {p0, p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->logNoSupport(Ljava/lang/String;)V
|
|
|
|
return v1
|
|
|
|
.line 612
|
|
:cond_0
|
|
invoke-virtual {v0}, Landroid/media/MediaCodecInfo$CodecCapabilities;->getAudioCapabilities()Landroid/media/MediaCodecInfo$AudioCapabilities;
|
|
|
|
move-result-object v0
|
|
|
|
if-nez v0, :cond_1
|
|
|
|
const-string p1, "channelCount.aCaps"
|
|
|
|
.line 614
|
|
invoke-direct {p0, p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->logNoSupport(Ljava/lang/String;)V
|
|
|
|
return v1
|
|
|
|
:cond_1
|
|
iget-object v2, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->name:Ljava/lang/String;
|
|
|
|
iget-object v3, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->mimeType:Ljava/lang/String;
|
|
|
|
.line 618
|
|
invoke-virtual {v0}, Landroid/media/MediaCodecInfo$AudioCapabilities;->getMaxInputChannelCount()I
|
|
|
|
move-result v0
|
|
|
|
invoke-static {v2, v3, v0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->adjustMaxInputChannelCount(Ljava/lang/String;Ljava/lang/String;I)I
|
|
|
|
move-result v0
|
|
|
|
if-ge v0, p1, :cond_2
|
|
|
|
.line 620
|
|
new-instance v0, Ljava/lang/StringBuilder;
|
|
|
|
const-string v2, "channelCount.support, "
|
|
|
|
invoke-direct {v0, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-direct {p0, p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->logNoSupport(Ljava/lang/String;)V
|
|
|
|
return v1
|
|
|
|
:cond_2
|
|
const/4 p0, 0x1
|
|
|
|
return p0
|
|
.end method
|
|
|
|
.method public isAudioSampleRateSupportedV21(I)Z
|
|
.locals 3
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->capabilities:Landroid/media/MediaCodecInfo$CodecCapabilities;
|
|
|
|
const/4 v1, 0x0
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
const-string p1, "sampleRate.caps"
|
|
|
|
.line 583
|
|
invoke-direct {p0, p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->logNoSupport(Ljava/lang/String;)V
|
|
|
|
return v1
|
|
|
|
.line 586
|
|
:cond_0
|
|
invoke-virtual {v0}, Landroid/media/MediaCodecInfo$CodecCapabilities;->getAudioCapabilities()Landroid/media/MediaCodecInfo$AudioCapabilities;
|
|
|
|
move-result-object v0
|
|
|
|
if-nez v0, :cond_1
|
|
|
|
const-string p1, "sampleRate.aCaps"
|
|
|
|
.line 588
|
|
invoke-direct {p0, p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->logNoSupport(Ljava/lang/String;)V
|
|
|
|
return v1
|
|
|
|
.line 591
|
|
:cond_1
|
|
invoke-virtual {v0, p1}, Landroid/media/MediaCodecInfo$AudioCapabilities;->isSampleRateSupported(I)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_2
|
|
|
|
.line 592
|
|
new-instance v0, Ljava/lang/StringBuilder;
|
|
|
|
const-string v2, "sampleRate.support, "
|
|
|
|
invoke-direct {v0, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-direct {p0, p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->logNoSupport(Ljava/lang/String;)V
|
|
|
|
return v1
|
|
|
|
:cond_2
|
|
const/4 p0, 0x1
|
|
|
|
return p0
|
|
.end method
|
|
|
|
.method public isFormatFunctionallySupported(Landroidx/media3/common/Format;)Z
|
|
.locals 2
|
|
|
|
.line 294
|
|
invoke-direct {p0, p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->isSampleMimeTypeSupported(Landroidx/media3/common/Format;)Z
|
|
|
|
move-result v0
|
|
|
|
const/4 v1, 0x0
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
.line 295
|
|
invoke-direct {p0, p1, v1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->isCodecProfileAndLevelSupported(Landroidx/media3/common/Format;Z)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_0
|
|
|
|
const/4 v1, 0x1
|
|
|
|
:cond_0
|
|
return v1
|
|
.end method
|
|
|
|
.method public isFormatSupported(Landroidx/media3/common/Format;)Z
|
|
.locals 4
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$DecoderQueryException;
|
|
}
|
|
.end annotation
|
|
|
|
.line 256
|
|
invoke-direct {p0, p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->isSampleMimeTypeSupported(Landroidx/media3/common/Format;)Z
|
|
|
|
move-result v0
|
|
|
|
const/4 v1, 0x0
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
return v1
|
|
|
|
:cond_0
|
|
const/4 v0, 0x1
|
|
|
|
.line 260
|
|
invoke-direct {p0, p1, v0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->isCodecProfileAndLevelSupported(Landroidx/media3/common/Format;Z)Z
|
|
|
|
move-result v2
|
|
|
|
if-nez v2, :cond_1
|
|
|
|
return v1
|
|
|
|
:cond_1
|
|
iget-boolean v2, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->isVideo:Z
|
|
|
|
const/16 v3, 0x15
|
|
|
|
if-eqz v2, :cond_7
|
|
|
|
.line 265
|
|
iget v2, p1, Landroidx/media3/common/Format;->width:I
|
|
|
|
if-lez v2, :cond_6
|
|
|
|
iget v2, p1, Landroidx/media3/common/Format;->height:I
|
|
|
|
if-gtz v2, :cond_2
|
|
|
|
goto :goto_0
|
|
|
|
.line 268
|
|
:cond_2
|
|
sget v2, Landroidx/media3/common/util/Util;->SDK_INT:I
|
|
|
|
if-lt v2, v3, :cond_3
|
|
|
|
.line 269
|
|
iget v0, p1, Landroidx/media3/common/Format;->width:I
|
|
|
|
iget v1, p1, Landroidx/media3/common/Format;->height:I
|
|
|
|
iget p1, p1, Landroidx/media3/common/Format;->frameRate:F
|
|
|
|
float-to-double v2, p1
|
|
|
|
invoke-virtual {p0, v0, v1, v2, v3}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->isVideoSizeAndRateSupportedV21(IID)Z
|
|
|
|
move-result p0
|
|
|
|
return p0
|
|
|
|
.line 271
|
|
:cond_3
|
|
iget v2, p1, Landroidx/media3/common/Format;->width:I
|
|
|
|
iget v3, p1, Landroidx/media3/common/Format;->height:I
|
|
|
|
mul-int/2addr v2, v3
|
|
|
|
.line 272
|
|
invoke-static {}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->maxH264DecodableFrameSize()I
|
|
|
|
move-result v3
|
|
|
|
if-gt v2, v3, :cond_4
|
|
|
|
move v1, v0
|
|
|
|
:cond_4
|
|
if-nez v1, :cond_5
|
|
|
|
.line 274
|
|
new-instance v0, Ljava/lang/StringBuilder;
|
|
|
|
const-string v2, "legacyFrameSize, "
|
|
|
|
invoke-direct {v0, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
iget v2, p1, Landroidx/media3/common/Format;->width:I
|
|
|
|
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object v0
|
|
|
|
const-string v2, "x"
|
|
|
|
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object v0
|
|
|
|
iget p1, p1, Landroidx/media3/common/Format;->height:I
|
|
|
|
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-direct {p0, p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->logNoSupport(Ljava/lang/String;)V
|
|
|
|
:cond_5
|
|
return v1
|
|
|
|
:cond_6
|
|
:goto_0
|
|
return v0
|
|
|
|
.line 279
|
|
:cond_7
|
|
sget v2, Landroidx/media3/common/util/Util;->SDK_INT:I
|
|
|
|
if-lt v2, v3, :cond_9
|
|
|
|
iget v2, p1, Landroidx/media3/common/Format;->sampleRate:I
|
|
|
|
const/4 v3, -0x1
|
|
|
|
if-eq v2, v3, :cond_8
|
|
|
|
iget v2, p1, Landroidx/media3/common/Format;->sampleRate:I
|
|
|
|
.line 281
|
|
invoke-virtual {p0, v2}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->isAudioSampleRateSupportedV21(I)Z
|
|
|
|
move-result v2
|
|
|
|
if-eqz v2, :cond_a
|
|
|
|
:cond_8
|
|
iget v2, p1, Landroidx/media3/common/Format;->channelCount:I
|
|
|
|
if-eq v2, v3, :cond_9
|
|
|
|
iget p1, p1, Landroidx/media3/common/Format;->channelCount:I
|
|
|
|
.line 283
|
|
invoke-virtual {p0, p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->isAudioChannelCountSupportedV21(I)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_a
|
|
|
|
:cond_9
|
|
move v1, v0
|
|
|
|
:cond_a
|
|
return v1
|
|
.end method
|
|
|
|
.method public isHdr10PlusOutOfBandMetadataSupported()Z
|
|
.locals 5
|
|
|
|
.line 351
|
|
sget v0, Landroidx/media3/common/util/Util;->SDK_INT:I
|
|
|
|
const/16 v1, 0x1d
|
|
|
|
const/4 v2, 0x0
|
|
|
|
if-lt v0, v1, :cond_1
|
|
|
|
const-string v0, "video/x-vnd.on2.vp9"
|
|
|
|
iget-object v1, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->mimeType:Ljava/lang/String;
|
|
|
|
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_1
|
|
|
|
.line 352
|
|
invoke-virtual {p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->getProfileLevels()[Landroid/media/MediaCodecInfo$CodecProfileLevel;
|
|
|
|
move-result-object p0
|
|
|
|
array-length v0, p0
|
|
|
|
move v1, v2
|
|
|
|
:goto_0
|
|
if-ge v1, v0, :cond_1
|
|
|
|
aget-object v3, p0, v1
|
|
|
|
.line 353
|
|
iget v3, v3, Landroid/media/MediaCodecInfo$CodecProfileLevel;->profile:I
|
|
|
|
const/16 v4, 0x4000
|
|
|
|
if-ne v3, v4, :cond_0
|
|
|
|
const/4 p0, 0x1
|
|
|
|
return p0
|
|
|
|
:cond_0
|
|
add-int/lit8 v1, v1, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
return v2
|
|
.end method
|
|
|
|
.method public isSeamlessAdaptationSupported(Landroidx/media3/common/Format;)Z
|
|
.locals 1
|
|
|
|
iget-boolean v0, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->isVideo:Z
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
iget-boolean p0, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->adaptive:Z
|
|
|
|
return p0
|
|
|
|
.line 376
|
|
:cond_0
|
|
invoke-static {p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getCodecProfileAndLevel(Landroidx/media3/common/Format;)Landroid/util/Pair;
|
|
|
|
move-result-object p0
|
|
|
|
if-eqz p0, :cond_1
|
|
|
|
.line 377
|
|
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 p1, 0x2a
|
|
|
|
if-ne p0, p1, :cond_1
|
|
|
|
const/4 p0, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
const/4 p0, 0x0
|
|
|
|
:goto_0
|
|
return p0
|
|
.end method
|
|
|
|
.method public isSeamlessAdaptationSupported(Landroidx/media3/common/Format;Landroidx/media3/common/Format;Z)Z
|
|
.locals 0
|
|
.annotation runtime Ljava/lang/Deprecated;
|
|
.end annotation
|
|
|
|
if-nez p3, :cond_0
|
|
|
|
.line 399
|
|
iget-object p3, p1, Landroidx/media3/common/Format;->colorInfo:Landroidx/media3/common/ColorInfo;
|
|
|
|
if-eqz p3, :cond_0
|
|
|
|
iget-object p3, p2, Landroidx/media3/common/Format;->colorInfo:Landroidx/media3/common/ColorInfo;
|
|
|
|
if-nez p3, :cond_0
|
|
|
|
.line 400
|
|
invoke-virtual {p2}, Landroidx/media3/common/Format;->buildUpon()Landroidx/media3/common/Format$Builder;
|
|
|
|
move-result-object p2
|
|
|
|
iget-object p3, p1, Landroidx/media3/common/Format;->colorInfo:Landroidx/media3/common/ColorInfo;
|
|
|
|
invoke-virtual {p2, p3}, Landroidx/media3/common/Format$Builder;->setColorInfo(Landroidx/media3/common/ColorInfo;)Landroidx/media3/common/Format$Builder;
|
|
|
|
move-result-object p2
|
|
|
|
invoke-virtual {p2}, Landroidx/media3/common/Format$Builder;->build()Landroidx/media3/common/Format;
|
|
|
|
move-result-object p2
|
|
|
|
.line 402
|
|
:cond_0
|
|
invoke-virtual {p0, p1, p2}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->canReuseCodec(Landroidx/media3/common/Format;Landroidx/media3/common/Format;)Landroidx/media3/exoplayer/DecoderReuseEvaluation;
|
|
|
|
move-result-object p0
|
|
|
|
iget p0, p0, Landroidx/media3/exoplayer/DecoderReuseEvaluation;->result:I
|
|
|
|
const/4 p1, 0x2
|
|
|
|
if-eq p0, p1, :cond_2
|
|
|
|
const/4 p1, 0x3
|
|
|
|
if-ne p0, p1, :cond_1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
const/4 p0, 0x0
|
|
|
|
goto :goto_1
|
|
|
|
:cond_2
|
|
:goto_0
|
|
const/4 p0, 0x1
|
|
|
|
:goto_1
|
|
return p0
|
|
.end method
|
|
|
|
.method public isVideoSizeAndRateSupportedV21(IID)Z
|
|
.locals 7
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->capabilities:Landroid/media/MediaCodecInfo$CodecCapabilities;
|
|
|
|
const/4 v1, 0x0
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
const-string p1, "sizeAndRate.caps"
|
|
|
|
.line 513
|
|
invoke-direct {p0, p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->logNoSupport(Ljava/lang/String;)V
|
|
|
|
return v1
|
|
|
|
.line 516
|
|
:cond_0
|
|
invoke-virtual {v0}, Landroid/media/MediaCodecInfo$CodecCapabilities;->getVideoCapabilities()Landroid/media/MediaCodecInfo$VideoCapabilities;
|
|
|
|
move-result-object v0
|
|
|
|
if-nez v0, :cond_1
|
|
|
|
const-string p1, "sizeAndRate.vCaps"
|
|
|
|
.line 518
|
|
invoke-direct {p0, p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->logNoSupport(Ljava/lang/String;)V
|
|
|
|
return v1
|
|
|
|
.line 522
|
|
:cond_1
|
|
sget v2, Landroidx/media3/common/util/Util;->SDK_INT:I
|
|
|
|
const/16 v3, 0x1d
|
|
|
|
const-string v4, "@"
|
|
|
|
const-string v5, "x"
|
|
|
|
const/4 v6, 0x1
|
|
|
|
if-lt v2, v3, :cond_3
|
|
|
|
.line 525
|
|
invoke-static {v0, p1, p2, p3, p4}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo$Api29;->areResolutionAndFrameRateCovered(Landroid/media/MediaCodecInfo$VideoCapabilities;IID)I
|
|
|
|
move-result v2
|
|
|
|
const/4 v3, 0x2
|
|
|
|
if-ne v2, v3, :cond_2
|
|
|
|
return v6
|
|
|
|
:cond_2
|
|
if-ne v2, v6, :cond_3
|
|
|
|
.line 529
|
|
new-instance v0, Ljava/lang/StringBuilder;
|
|
|
|
const-string v2, "sizeAndRate.cover, "
|
|
|
|
invoke-direct {v0, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-virtual {p1, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-virtual {p1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-virtual {p1, p3, p4}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-direct {p0, p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->logNoSupport(Ljava/lang/String;)V
|
|
|
|
return v1
|
|
|
|
.line 535
|
|
:cond_3
|
|
invoke-static {v0, p1, p2, p3, p4}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->areSizeAndRateSupportedV21(Landroid/media/MediaCodecInfo$VideoCapabilities;IID)Z
|
|
|
|
move-result v2
|
|
|
|
if-nez v2, :cond_6
|
|
|
|
if-ge p1, p2, :cond_5
|
|
|
|
iget-object v2, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->name:Ljava/lang/String;
|
|
|
|
.line 537
|
|
invoke-static {v2}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->needsRotatedVerticalResolutionWorkaround(Ljava/lang/String;)Z
|
|
|
|
move-result v2
|
|
|
|
if-eqz v2, :cond_5
|
|
|
|
.line 538
|
|
invoke-static {v0, p2, p1, p3, p4}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->areSizeAndRateSupportedV21(Landroid/media/MediaCodecInfo$VideoCapabilities;IID)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_4
|
|
|
|
goto :goto_0
|
|
|
|
.line 542
|
|
:cond_4
|
|
new-instance v0, Ljava/lang/StringBuilder;
|
|
|
|
const-string v1, "sizeAndRate.rotated, "
|
|
|
|
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-virtual {p1, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-virtual {p1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-virtual {p1, p3, p4}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-direct {p0, p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->logAssumedSupport(Ljava/lang/String;)V
|
|
|
|
goto :goto_1
|
|
|
|
.line 539
|
|
:cond_5
|
|
:goto_0
|
|
new-instance v0, Ljava/lang/StringBuilder;
|
|
|
|
const-string v2, "sizeAndRate.support, "
|
|
|
|
invoke-direct {v0, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-virtual {p1, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-virtual {p1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-virtual {p1, p3, p4}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-direct {p0, p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->logNoSupport(Ljava/lang/String;)V
|
|
|
|
return v1
|
|
|
|
:cond_6
|
|
:goto_1
|
|
return v6
|
|
.end method
|
|
|
|
.method public toString()Ljava/lang/String;
|
|
.locals 0
|
|
|
|
iget-object p0, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->name:Ljava/lang/String;
|
|
|
|
return-object p0
|
|
.end method
|