c.smali
.class public Lk7/c;
.super Ljava/lang/Object;
.source "DeviceEncoders.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lk7/c$b;,
Lk7/c$c;
}
.end annotation
# static fields
.field public static final e:Lw6/c;
.field public static f:Z
.annotation build Landroidx/annotation/VisibleForTesting;
.end annotation
.end field
# instance fields
.field public final a:Landroid/media/MediaCodecInfo;
.field public final b:Landroid/media/MediaCodecInfo;
.field public final c:Landroid/media/MediaCodecInfo$VideoCapabilities;
.field public final d:Landroid/media/MediaCodecInfo$AudioCapabilities;
# direct methods
.method public static constructor <clinit>()V
.registers 2
const-class v0, Lk7/c;
invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Lw6/c;->a(Ljava/lang/String;)Lw6/c;
move-result-object v0
sput-object v0, Lk7/c;->e:Lw6/c;
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x15
if-lt v0, v1, :cond_14
const/4 v0, 0x1
goto :goto_15
:cond_14
const/4 v0, 0x0
:goto_15
sput-boolean v0, Lk7/c;->f:Z
return-void
.end method
.method public constructor <init>(ILjava/lang/String;Ljava/lang/String;II)V
.registers 13
.param p1 # I
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # Ljava/lang/String;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroid/annotation/SuppressLint;
value = {
"NewApi"
}
.end annotation
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
sget-boolean v0, Lk7/c;->f:Z
const/4 v1, 0x0
const/4 v2, 0x1
if-eqz v0, :cond_55
invoke-virtual {p0}, Lk7/c;->a()Ljava/util/List;
move-result-object v0
invoke-virtual {p0, v0, p2, p1, p4}, Lk7/c;->a(Ljava/util/List;Ljava/lang/String;II)Landroid/media/MediaCodecInfo;
move-result-object p4
iput-object p4, p0, Lk7/c;->a:Landroid/media/MediaCodecInfo;
sget-object v3, Lk7/c;->e:Lw6/c;
const/4 v4, 0x2
new-array v5, v4, [Ljava/lang/Object;
const-string v6, "Enabled. Found video encoder:"
aput-object v6, v5, v1
invoke-virtual {p4}, Landroid/media/MediaCodecInfo;->getName()Ljava/lang/String;
move-result-object p4
aput-object p4, v5, v2
invoke-virtual {v3, v5}, Lw6/c;->b([Ljava/lang/Object;)Ljava/lang/String;
invoke-virtual {p0, v0, p3, p1, p5}, Lk7/c;->a(Ljava/util/List;Ljava/lang/String;II)Landroid/media/MediaCodecInfo;
move-result-object p1
iput-object p1, p0, Lk7/c;->b:Landroid/media/MediaCodecInfo;
sget-object p4, Lk7/c;->e:Lw6/c;
new-array p5, v4, [Ljava/lang/Object;
const-string v0, "Enabled. Found audio encoder:"
aput-object v0, p5, v1
invoke-virtual {p1}, Landroid/media/MediaCodecInfo;->getName()Ljava/lang/String;
move-result-object p1
aput-object p1, p5, v2
invoke-virtual {p4, p5}, Lw6/c;->b([Ljava/lang/Object;)Ljava/lang/String;
iget-object p1, p0, Lk7/c;->a:Landroid/media/MediaCodecInfo;
invoke-virtual {p1, p2}, Landroid/media/MediaCodecInfo;->getCapabilitiesForType(Ljava/lang/String;)Landroid/media/MediaCodecInfo$CodecCapabilities;
move-result-object p1
invoke-virtual {p1}, Landroid/media/MediaCodecInfo$CodecCapabilities;->getVideoCapabilities()Landroid/media/MediaCodecInfo$VideoCapabilities;
move-result-object p1
iput-object p1, p0, Lk7/c;->c:Landroid/media/MediaCodecInfo$VideoCapabilities;
iget-object p1, p0, Lk7/c;->b:Landroid/media/MediaCodecInfo;
invoke-virtual {p1, p3}, Landroid/media/MediaCodecInfo;->getCapabilitiesForType(Ljava/lang/String;)Landroid/media/MediaCodecInfo$CodecCapabilities;
move-result-object p1
invoke-virtual {p1}, Landroid/media/MediaCodecInfo$CodecCapabilities;->getAudioCapabilities()Landroid/media/MediaCodecInfo$AudioCapabilities;
move-result-object p1
iput-object p1, p0, Lk7/c;->d:Landroid/media/MediaCodecInfo$AudioCapabilities;
goto :goto_69
:cond_55
const/4 p1, 0x0
iput-object p1, p0, Lk7/c;->a:Landroid/media/MediaCodecInfo;
iput-object p1, p0, Lk7/c;->b:Landroid/media/MediaCodecInfo;
iput-object p1, p0, Lk7/c;->c:Landroid/media/MediaCodecInfo$VideoCapabilities;
iput-object p1, p0, Lk7/c;->d:Landroid/media/MediaCodecInfo$AudioCapabilities;
sget-object p1, Lk7/c;->e:Lw6/c;
new-array p2, v2, [Ljava/lang/Object;
const-string p3, "Disabled."
aput-object p3, p2, v1
invoke-virtual {p1, p2}, Lw6/c;->b([Ljava/lang/Object;)Ljava/lang/String;
:goto_69
return-void
.end method
# virtual methods
.method public a(I)I
.registers 7
.annotation build Landroid/annotation/SuppressLint;
value = {
"NewApi"
}
.end annotation
sget-boolean v0, Lk7/c;->f:Z
if-nez v0, :cond_5
return p1
:cond_5
iget-object v0, p0, Lk7/c;->d:Landroid/media/MediaCodecInfo$AudioCapabilities;
invoke-virtual {v0}, Landroid/media/MediaCodecInfo$AudioCapabilities;->getBitrateRange()Landroid/util/Range;
move-result-object v0
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
invoke-virtual {v0, v1}, Landroid/util/Range;->clamp(Ljava/lang/Comparable;)Ljava/lang/Comparable;
move-result-object v0
check-cast v0, Ljava/lang/Integer;
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v0
sget-object v1, Lk7/c;->e:Lw6/c;
const/4 v2, 0x5
new-array v2, v2, [Ljava/lang/Object;
const/4 v3, 0x0
const-string v4, "getSupportedAudioBitRate -"
aput-object v4, v2, v3
const/4 v3, 0x1
const-string v4, "inputRate:"
aput-object v4, v2, v3
const/4 v3, 0x2
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p1
aput-object p1, v2, v3
const/4 p1, 0x3
const-string v3, "adjustedRate:"
aput-object v3, v2, p1
const/4 p1, 0x4
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
aput-object v3, v2, p1
invoke-virtual {v1, v2}, Lw6/c;->b([Ljava/lang/Object;)Ljava/lang/String;
return v0
.end method
.method public a(Lq7/b;I)I
.registers 7
.param p1 # Lq7/b;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroid/annotation/SuppressLint;
value = {
"NewApi"
}
.end annotation
sget-boolean v0, Lk7/c;->f:Z
if-nez v0, :cond_5
return p2
:cond_5
iget-object v0, p0, Lk7/c;->c:Landroid/media/MediaCodecInfo$VideoCapabilities;
invoke-virtual {p1}, Lq7/b;->c()I
move-result v1
invoke-virtual {p1}, Lq7/b;->b()I
move-result p1
invoke-virtual {v0, v1, p1}, Landroid/media/MediaCodecInfo$VideoCapabilities;->getSupportedFrameRatesFor(II)Landroid/util/Range;
move-result-object p1
int-to-double v0, p2
invoke-static {v0, v1}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object v0
invoke-virtual {p1, v0}, Landroid/util/Range;->clamp(Ljava/lang/Comparable;)Ljava/lang/Comparable;
move-result-object p1
check-cast p1, Ljava/lang/Double;
invoke-virtual {p1}, Ljava/lang/Double;->doubleValue()D
move-result-wide v0
double-to-int p1, v0
sget-object v0, Lk7/c;->e:Lw6/c;
const/4 v1, 0x5
new-array v1, v1, [Ljava/lang/Object;
const/4 v2, 0x0
const-string v3, "getSupportedVideoFrameRate -"
aput-object v3, v1, v2
const/4 v2, 0x1
const-string v3, "inputRate:"
aput-object v3, v1, v2
const/4 v2, 0x2
invoke-static {p2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p2
aput-object p2, v1, v2
const/4 p2, 0x3
const-string v2, "adjustedRate:"
aput-object v2, v1, p2
const/4 p2, 0x4
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v2
aput-object v2, v1, p2
invoke-virtual {v0, v1}, Lw6/c;->b([Ljava/lang/Object;)Ljava/lang/String;
return p1
.end method
.method public a(Ljava/util/List;Ljava/lang/String;II)Landroid/media/MediaCodecInfo;
.registers 11
.param p1 # Ljava/util/List;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # Ljava/lang/String;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroid/annotation/SuppressLint;
value = {
"NewApi"
}
.end annotation
.annotation build Landroidx/annotation/NonNull;
.end annotation
.annotation build Landroidx/annotation/VisibleForTesting;
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Landroid/media/MediaCodecInfo;",
">;",
"Ljava/lang/String;",
"II)",
"Landroid/media/MediaCodecInfo;"
}
.end annotation
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
invoke-interface {p1}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object p1
:cond_9
:goto_9
invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z
move-result v1
const/4 v2, 0x0
if-eqz v1, :cond_2c
invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Landroid/media/MediaCodecInfo;
invoke-virtual {v1}, Landroid/media/MediaCodecInfo;->getSupportedTypes()[Ljava/lang/String;
move-result-object v3
array-length v4, v3
:goto_1b
if-ge v2, v4, :cond_9
aget-object v5, v3, v2
invoke-virtual {v5, p2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v5
if-eqz v5, :cond_29
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto :goto_9
:cond_29
add-int/lit8 v2, v2, 0x1
goto :goto_1b
:cond_2c
sget-object p1, Lk7/c;->e:Lw6/c;
const/4 v1, 0x5
new-array v1, v1, [Ljava/lang/Object;
const-string v3, "findDeviceEncoder -"
aput-object v3, v1, v2
const-string v2, "type:"
const/4 v3, 0x1
aput-object v2, v1, v3
const/4 v2, 0x2
aput-object p2, v1, v2
const/4 v2, 0x3
const-string v4, "encoders:"
aput-object v4, v1, v2
const/4 v2, 0x4
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v4
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
aput-object v4, v1, v2
invoke-virtual {p1, v1}, Lw6/c;->b([Ljava/lang/Object;)Ljava/lang/String;
if-ne p3, v3, :cond_5a
new-instance p1, Lk7/c$a;
invoke-direct {p1, p0}, Lk7/c$a;-><init>(Lk7/c;)V
invoke-static {v0, p1}, Ljava/util/Collections;->sort(Ljava/util/List;Ljava/util/Comparator;)V
:cond_5a
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result p1
add-int/lit8 p3, p4, 0x1
if-lt p1, p3, :cond_69
invoke-virtual {v0, p4}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object p1
check-cast p1, Landroid/media/MediaCodecInfo;
return-object p1
:cond_69
new-instance p1, Ljava/lang/RuntimeException;
new-instance p3, Ljava/lang/StringBuilder;
invoke-direct {p3}, Ljava/lang/StringBuilder;-><init>()V
const-string p4, "No encoders for type:"
invoke-virtual {p3, p4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p3, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-direct {p1, p2}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
goto :goto_81
:goto_80
throw p1
:goto_81
goto :goto_80
.end method
.method public a()Ljava/util/List;
.registers 7
.annotation build Landroid/annotation/SuppressLint;
value = {
"NewApi"
}
.end annotation
.annotation build Landroidx/annotation/NonNull;
.end annotation
.annotation build Landroidx/annotation/VisibleForTesting;
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List<",
"Landroid/media/MediaCodecInfo;",
">;"
}
.end annotation
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
new-instance v1, Landroid/media/MediaCodecList;
const/4 v2, 0x0
invoke-direct {v1, v2}, Landroid/media/MediaCodecList;-><init>(I)V
invoke-virtual {v1}, Landroid/media/MediaCodecList;->getCodecInfos()[Landroid/media/MediaCodecInfo;
move-result-object v1
array-length v3, v1
:goto_10
if-ge v2, v3, :cond_20
aget-object v4, v1, v2
invoke-virtual {v4}, Landroid/media/MediaCodecInfo;->isEncoder()Z
move-result v5
if-eqz v5, :cond_1d
invoke-virtual {v0, v4}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
:cond_1d
add-int/lit8 v2, v2, 0x1
goto :goto_10
:cond_20
return-object v0
.end method
.method public a(Lq7/b;)Lq7/b;
.registers 16
.param p1 # Lq7/b;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroid/annotation/SuppressLint;
value = {
"NewApi"
}
.end annotation
.annotation build Landroidx/annotation/NonNull;
.end annotation
sget-boolean v0, Lk7/c;->f:Z
if-nez v0, :cond_5
return-object p1
:cond_5
invoke-virtual {p1}, Lq7/b;->c()I
move-result v0
invoke-virtual {p1}, Lq7/b;->b()I
move-result p1
int-to-double v1, v0
int-to-double v3, p1
invoke-static {v1, v2}, Ljava/lang/Double;->isNaN(D)Z
invoke-static {v3, v4}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v1, v3
sget-object v3, Lk7/c;->e:Lw6/c;
const/4 v4, 0x4
new-array v5, v4, [Ljava/lang/Object;
const-string v6, "getSupportedVideoSize - started. width:"
const/4 v7, 0x0
aput-object v6, v5, v7
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v6
const/4 v8, 0x1
aput-object v6, v5, v8
const-string v6, "height:"
const/4 v9, 0x2
aput-object v6, v5, v9
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v10
const/4 v11, 0x3
aput-object v10, v5, v11
invoke-virtual {v3, v5}, Lw6/c;->b([Ljava/lang/Object;)Ljava/lang/String;
iget-object v3, p0, Lk7/c;->c:Landroid/media/MediaCodecInfo$VideoCapabilities;
invoke-virtual {v3}, Landroid/media/MediaCodecInfo$VideoCapabilities;->getSupportedWidths()Landroid/util/Range;
move-result-object v3
invoke-virtual {v3}, Landroid/util/Range;->getUpper()Ljava/lang/Comparable;
move-result-object v3
check-cast v3, Ljava/lang/Integer;
invoke-virtual {v3}, Ljava/lang/Integer;->intValue()I
move-result v3
if-ge v3, v0, :cond_7b
iget-object p1, p0, Lk7/c;->c:Landroid/media/MediaCodecInfo$VideoCapabilities;
invoke-virtual {p1}, Landroid/media/MediaCodecInfo$VideoCapabilities;->getSupportedWidths()Landroid/util/Range;
move-result-object p1
invoke-virtual {p1}, Landroid/util/Range;->getUpper()Ljava/lang/Comparable;
move-result-object p1
check-cast p1, Ljava/lang/Integer;
invoke-virtual {p1}, Ljava/lang/Integer;->intValue()I
move-result v0
int-to-double v12, v0
invoke-static {v12, v13}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v12, v1
invoke-static {v12, v13}, Ljava/lang/Math;->round(D)J
move-result-wide v12
long-to-int p1, v12
sget-object v3, Lk7/c;->e:Lw6/c;
new-array v5, v4, [Ljava/lang/Object;
const-string v10, "getSupportedVideoSize - exceeds maxWidth! width:"
aput-object v10, v5, v7
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v10
aput-object v10, v5, v8
aput-object v6, v5, v9
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v10
aput-object v10, v5, v11
invoke-virtual {v3, v5}, Lw6/c;->b([Ljava/lang/Object;)Ljava/lang/String;
:cond_7b
iget-object v3, p0, Lk7/c;->c:Landroid/media/MediaCodecInfo$VideoCapabilities;
invoke-virtual {v3}, Landroid/media/MediaCodecInfo$VideoCapabilities;->getSupportedHeights()Landroid/util/Range;
move-result-object v3
invoke-virtual {v3}, Landroid/util/Range;->getUpper()Ljava/lang/Comparable;
move-result-object v3
check-cast v3, Ljava/lang/Integer;
invoke-virtual {v3}, Ljava/lang/Integer;->intValue()I
move-result v3
if-ge v3, p1, :cond_c1
iget-object p1, p0, Lk7/c;->c:Landroid/media/MediaCodecInfo$VideoCapabilities;
invoke-virtual {p1}, Landroid/media/MediaCodecInfo$VideoCapabilities;->getSupportedHeights()Landroid/util/Range;
move-result-object p1
invoke-virtual {p1}, Landroid/util/Range;->getUpper()Ljava/lang/Comparable;
move-result-object p1
check-cast p1, Ljava/lang/Integer;
invoke-virtual {p1}, Ljava/lang/Integer;->intValue()I
move-result p1
int-to-double v12, p1
invoke-static {v12, v13}, Ljava/lang/Double;->isNaN(D)Z
mul-double v12, v12, v1
invoke-static {v12, v13}, Ljava/lang/Math;->round(D)J
move-result-wide v12
long-to-int v0, v12
sget-object v3, Lk7/c;->e:Lw6/c;
new-array v5, v4, [Ljava/lang/Object;
const-string v10, "getSupportedVideoSize - exceeds maxHeight! width:"
aput-object v10, v5, v7
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v10
aput-object v10, v5, v8
aput-object v6, v5, v9
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v10
aput-object v10, v5, v11
invoke-virtual {v3, v5}, Lw6/c;->b([Ljava/lang/Object;)Ljava/lang/String;
:cond_c1
:goto_c1
iget-object v3, p0, Lk7/c;->c:Landroid/media/MediaCodecInfo$VideoCapabilities;
invoke-virtual {v3}, Landroid/media/MediaCodecInfo$VideoCapabilities;->getWidthAlignment()I
move-result v3
rem-int v3, v0, v3
if-eqz v3, :cond_ce
add-int/lit8 v0, v0, -0x1
goto :goto_c1
:cond_ce
:goto_ce
iget-object v3, p0, Lk7/c;->c:Landroid/media/MediaCodecInfo$VideoCapabilities;
invoke-virtual {v3}, Landroid/media/MediaCodecInfo$VideoCapabilities;->getHeightAlignment()I
move-result v3
rem-int v3, p1, v3
if-eqz v3, :cond_db
add-int/lit8 p1, p1, -0x1
goto :goto_ce
:cond_db
sget-object v3, Lk7/c;->e:Lw6/c;
new-array v4, v4, [Ljava/lang/Object;
const-string v5, "getSupportedVideoSize - aligned. width:"
aput-object v5, v4, v7
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v5
aput-object v5, v4, v8
aput-object v6, v4, v9
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v5
aput-object v5, v4, v11
invoke-virtual {v3, v4}, Lw6/c;->b([Ljava/lang/Object;)Ljava/lang/String;
iget-object v3, p0, Lk7/c;->c:Landroid/media/MediaCodecInfo$VideoCapabilities;
invoke-virtual {v3}, Landroid/media/MediaCodecInfo$VideoCapabilities;->getSupportedWidths()Landroid/util/Range;
move-result-object v3
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
invoke-virtual {v3, v4}, Landroid/util/Range;->contains(Ljava/lang/Comparable;)Z
move-result v3
const-string v4, " Range:"
const/4 v5, 0x0
if-eqz v3, :cond_1c6
iget-object v3, p0, Lk7/c;->c:Landroid/media/MediaCodecInfo$VideoCapabilities;
invoke-virtual {v3}, Landroid/media/MediaCodecInfo$VideoCapabilities;->getSupportedHeights()Landroid/util/Range;
move-result-object v3
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v6
invoke-virtual {v3, v6}, Landroid/util/Range;->contains(Ljava/lang/Comparable;)Z
move-result v3
if-eqz v3, :cond_1a3
:try_start_117
iget-object v3, p0, Lk7/c;->c:Landroid/media/MediaCodecInfo$VideoCapabilities;
invoke-virtual {v3, v0}, Landroid/media/MediaCodecInfo$VideoCapabilities;->getSupportedHeightsFor(I)Landroid/util/Range;
move-result-object v3
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
invoke-virtual {v3, v4}, Landroid/util/Range;->contains(Ljava/lang/Comparable;)Z
move-result v3
if-nez v3, :cond_179
iget-object v3, p0, Lk7/c;->c:Landroid/media/MediaCodecInfo$VideoCapabilities;
invoke-virtual {v3}, Landroid/media/MediaCodecInfo$VideoCapabilities;->getSupportedWidths()Landroid/util/Range;
move-result-object v3
invoke-virtual {v3}, Landroid/util/Range;->getLower()Ljava/lang/Comparable;
move-result-object v3
check-cast v3, Ljava/lang/Integer;
invoke-virtual {v3}, Ljava/lang/Integer;->intValue()I
move-result v3
iget-object v4, p0, Lk7/c;->c:Landroid/media/MediaCodecInfo$VideoCapabilities;
invoke-virtual {v4}, Landroid/media/MediaCodecInfo$VideoCapabilities;->getWidthAlignment()I
move-result v4
move v6, v0
:cond_13e
if-lt v6, v3, :cond_179
add-int/lit8 v6, v6, -0x20
:goto_142
rem-int v9, v6, v4
:try_end_144
.catch Ljava/lang/IllegalArgumentException; {:try_start_117 .. :try_end_144} :catch_178
if-eqz v9, :cond_149
add-int/lit8 v6, v6, -0x1
goto :goto_142
:cond_149
int-to-double v9, v6
invoke-static {v9, v10}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v9, v1
:try_start_14e
invoke-static {v9, v10}, Ljava/lang/Math;->round(D)J
move-result-wide v9
long-to-int v10, v9
iget-object v9, p0, Lk7/c;->c:Landroid/media/MediaCodecInfo$VideoCapabilities;
invoke-virtual {v9, v6}, Landroid/media/MediaCodecInfo$VideoCapabilities;->getSupportedHeightsFor(I)Landroid/util/Range;
move-result-object v9
invoke-static {v10}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v11
invoke-virtual {v9, v11}, Landroid/util/Range;->contains(Ljava/lang/Comparable;)Z
move-result v9
if-eqz v9, :cond_13e
sget-object v1, Lk7/c;->e:Lw6/c;
new-array v2, v8, [Ljava/lang/Object;
const-string v3, "getSupportedVideoSize - restarting with smaller size."
aput-object v3, v2, v7
invoke-virtual {v1, v2}, Lw6/c;->d([Ljava/lang/Object;)Ljava/lang/String;
new-instance v1, Lq7/b;
invoke-direct {v1, v6, v10}, Lq7/b;-><init>(II)V
invoke-virtual {p0, v1}, Lk7/c;->a(Lq7/b;)Lq7/b;
move-result-object p1
:try_end_177
.catch Ljava/lang/IllegalArgumentException; {:try_start_14e .. :try_end_177} :catch_178
return-object p1
:catch_178
nop
:cond_179
iget-object v1, p0, Lk7/c;->c:Landroid/media/MediaCodecInfo$VideoCapabilities;
invoke-virtual {v1, v0, p1}, Landroid/media/MediaCodecInfo$VideoCapabilities;->isSizeSupported(II)Z
move-result v1
if-eqz v1, :cond_187
new-instance v1, Lq7/b;
invoke-direct {v1, v0, p1}, Lq7/b;-><init>(II)V
return-object v1
:cond_187
new-instance v1, Lk7/c$c;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Size not supported for unknown reason. Might be an aspect ratio issue. Desired size:"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
new-instance v3, Lq7/b;
invoke-direct {v3, v0, p1}, Lq7/b;-><init>(II)V
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v1, p0, p1, v5}, Lk7/c$c;-><init>(Lk7/c;Ljava/lang/String;Lk7/c$a;)V
throw v1
:cond_1a3
new-instance v0, Lk7/c$c;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Height not supported after adjustment. Desired:"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object p1, p0, Lk7/c;->c:Landroid/media/MediaCodecInfo$VideoCapabilities;
invoke-virtual {p1}, Landroid/media/MediaCodecInfo$VideoCapabilities;->getSupportedHeights()Landroid/util/Range;
move-result-object p1
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p0, p1, v5}, Lk7/c$c;-><init>(Lk7/c;Ljava/lang/String;Lk7/c$a;)V
throw v0
:cond_1c6
new-instance p1, Lk7/c$c;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Width not supported after adjustment. Desired:"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v0, p0, Lk7/c;->c:Landroid/media/MediaCodecInfo$VideoCapabilities;
invoke-virtual {v0}, Landroid/media/MediaCodecInfo$VideoCapabilities;->getSupportedWidths()Landroid/util/Range;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {p1, p0, v0, v5}, Lk7/c$c;-><init>(Lk7/c;Ljava/lang/String;Lk7/c$a;)V
goto :goto_1ea
:goto_1e9
throw p1
:goto_1ea
goto :goto_1e9
.end method
.method public a(Ljava/lang/String;III)V
.registers 7
.param p1 # Ljava/lang/String;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroid/annotation/SuppressLint;
value = {
"NewApi"
}
.end annotation
iget-object v0, p0, Lk7/c;->b:Landroid/media/MediaCodecInfo;
if-eqz v0, :cond_58
const/4 v0, 0x0
:try_start_5
invoke-static {p1, p3, p4}, Landroid/media/MediaFormat;->createAudioFormat(Ljava/lang/String;II)Landroid/media/MediaFormat;
move-result-object p1
const/4 p3, 0x2
if-ne p4, p3, :cond_f
const/16 p3, 0xc
goto :goto_11
:cond_f
const/16 p3, 0x10
:goto_11
const-string p4, "channel-mask"
invoke-virtual {p1, p4, p3}, Landroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V
const-string p3, "bitrate"
invoke-virtual {p1, p3, p2}, Landroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V
iget-object p2, p0, Lk7/c;->b:Landroid/media/MediaCodecInfo;
invoke-virtual {p2}, Landroid/media/MediaCodecInfo;->getName()Ljava/lang/String;
move-result-object p2
invoke-static {p2}, Landroid/media/MediaCodec;->createByCodecName(Ljava/lang/String;)Landroid/media/MediaCodec;
move-result-object p2
:try_end_25
.catch Ljava/lang/Exception; {:try_start_5 .. :try_end_25} :catch_33
.catchall {:try_start_5 .. :try_end_25} :catchall_31
const/4 p3, 0x1
:try_start_26
invoke-virtual {p2, p1, v0, v0, p3}, Landroid/media/MediaCodec;->configure(Landroid/media/MediaFormat;Landroid/view/Surface;Landroid/media/MediaCrypto;I)V
:try_end_29
.catch Ljava/lang/Exception; {:try_start_26 .. :try_end_29} :catch_2f
.catchall {:try_start_26 .. :try_end_29} :catchall_50
if-eqz p2, :cond_58
:try_start_2b
invoke-virtual {p2}, Landroid/media/MediaCodec;->release()V
:try_end_2e
.catch Ljava/lang/Exception; {:try_start_2b .. :try_end_2e} :catch_58
goto :goto_58
:catch_2f
move-exception p1
goto :goto_35
:catchall_31
move-exception p1
goto :goto_52
:catch_33
move-exception p1
move-object p2, v0
:goto_35
:try_start_35
new-instance p3, Lk7/c$b;
new-instance p4, Ljava/lang/StringBuilder;
invoke-direct {p4}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Failed to configure video audio: "
invoke-virtual {p4, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object p1
invoke-virtual {p4, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {p3, p0, p1, v0}, Lk7/c$b;-><init>(Lk7/c;Ljava/lang/String;Lk7/c$a;)V
throw p3
:try_end_50
.catchall {:try_start_35 .. :try_end_50} :catchall_50
:catchall_50
move-exception p1
move-object v0, p2
:goto_52
if-eqz v0, :cond_57
:try_start_54
invoke-virtual {v0}, Landroid/media/MediaCodec;->release()V
:try_end_57
.catch Ljava/lang/Exception; {:try_start_54 .. :try_end_57} :catch_57
:catch_57
:cond_57
throw p1
:catch_58
:cond_58
:goto_58
return-void
.end method
.method public a(Ljava/lang/String;Lq7/b;II)V
.registers 7
.param p1 # Ljava/lang/String;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # Lq7/b;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroid/annotation/SuppressLint;
value = {
"NewApi"
}
.end annotation
iget-object v0, p0, Lk7/c;->a:Landroid/media/MediaCodecInfo;
if-eqz v0, :cond_65
const/4 v0, 0x0
:try_start_5
invoke-virtual {p2}, Lq7/b;->c()I
move-result v1
invoke-virtual {p2}, Lq7/b;->b()I
move-result p2
invoke-static {p1, v1, p2}, Landroid/media/MediaFormat;->createVideoFormat(Ljava/lang/String;II)Landroid/media/MediaFormat;
move-result-object p1
const-string p2, "color-format"
const v1, 0x7f000789
invoke-virtual {p1, p2, v1}, Landroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V
const-string p2, "bitrate"
invoke-virtual {p1, p2, p4}, Landroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V
const-string p2, "frame-rate"
invoke-virtual {p1, p2, p3}, Landroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V
const-string p2, "i-frame-interval"
const/4 p3, 0x1
invoke-virtual {p1, p2, p3}, Landroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V
iget-object p2, p0, Lk7/c;->a:Landroid/media/MediaCodecInfo;
invoke-virtual {p2}, Landroid/media/MediaCodecInfo;->getName()Ljava/lang/String;
move-result-object p2
invoke-static {p2}, Landroid/media/MediaCodec;->createByCodecName(Ljava/lang/String;)Landroid/media/MediaCodec;
move-result-object p2
:try_end_33
.catch Ljava/lang/Exception; {:try_start_5 .. :try_end_33} :catch_40
.catchall {:try_start_5 .. :try_end_33} :catchall_3e
:try_start_33
invoke-virtual {p2, p1, v0, v0, p3}, Landroid/media/MediaCodec;->configure(Landroid/media/MediaFormat;Landroid/view/Surface;Landroid/media/MediaCrypto;I)V
:try_end_36
.catch Ljava/lang/Exception; {:try_start_33 .. :try_end_36} :catch_3c
.catchall {:try_start_33 .. :try_end_36} :catchall_5d
if-eqz p2, :cond_65
:try_start_38
invoke-virtual {p2}, Landroid/media/MediaCodec;->release()V
:try_end_3b
.catch Ljava/lang/Exception; {:try_start_38 .. :try_end_3b} :catch_65
goto :goto_65
:catch_3c
move-exception p1
goto :goto_42
:catchall_3e
move-exception p1
goto :goto_5f
:catch_40
move-exception p1
move-object p2, v0
:goto_42
:try_start_42
new-instance p3, Lk7/c$c;
new-instance p4, Ljava/lang/StringBuilder;
invoke-direct {p4}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Failed to configure video codec: "
invoke-virtual {p4, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object p1
invoke-virtual {p4, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {p3, p0, p1, v0}, Lk7/c$c;-><init>(Lk7/c;Ljava/lang/String;Lk7/c$a;)V
throw p3
:try_end_5d
.catchall {:try_start_42 .. :try_end_5d} :catchall_5d
:catchall_5d
move-exception p1
move-object v0, p2
:goto_5f
if-eqz v0, :cond_64
:try_start_61
invoke-virtual {v0}, Landroid/media/MediaCodec;->release()V
:try_end_64
.catch Ljava/lang/Exception; {:try_start_61 .. :try_end_64} :catch_64
:catch_64
:cond_64
throw p1
:catch_65
:cond_65
:goto_65
return-void
.end method
.method public a(Ljava/lang/String;)Z
.registers 4
.param p1 # Ljava/lang/String;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroid/annotation/SuppressLint;
value = {
"NewApi"
}
.end annotation
.annotation build Landroidx/annotation/VisibleForTesting;
.end annotation
invoke-virtual {p1}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;
move-result-object p1
const-string v0, "omx.google."
invoke-virtual {p1, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
const/4 v1, 0x1
if-nez v0, :cond_28
const-string v0, "c2.android."
invoke-virtual {p1, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_28
const-string v0, "omx."
invoke-virtual {p1, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_26
const-string v0, "c2."
invoke-virtual {p1, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result p1
if-nez p1, :cond_26
goto :goto_28
:cond_26
const/4 p1, 0x0
goto :goto_29
:cond_28
:goto_28
const/4 p1, 0x1
:goto_29
xor-int/2addr p1, v1
return p1
.end method
.method public b(I)I
.registers 7
.annotation build Landroid/annotation/SuppressLint;
value = {
"NewApi"
}
.end annotation
sget-boolean v0, Lk7/c;->f:Z
if-nez v0, :cond_5
return p1
:cond_5
iget-object v0, p0, Lk7/c;->c:Landroid/media/MediaCodecInfo$VideoCapabilities;
invoke-virtual {v0}, Landroid/media/MediaCodecInfo$VideoCapabilities;->getBitrateRange()Landroid/util/Range;
move-result-object v0
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
invoke-virtual {v0, v1}, Landroid/util/Range;->clamp(Ljava/lang/Comparable;)Ljava/lang/Comparable;
move-result-object v0
check-cast v0, Ljava/lang/Integer;
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v0
sget-object v1, Lk7/c;->e:Lw6/c;
const/4 v2, 0x5
new-array v2, v2, [Ljava/lang/Object;
const/4 v3, 0x0
const-string v4, "getSupportedVideoBitRate -"
aput-object v4, v2, v3
const/4 v3, 0x1
const-string v4, "inputRate:"
aput-object v4, v2, v3
const/4 v3, 0x2
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p1
aput-object p1, v2, v3
const/4 p1, 0x3
const-string v3, "adjustedRate:"
aput-object v3, v2, p1
const/4 p1, 0x4
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
aput-object v3, v2, p1
invoke-virtual {v1, v2}, Lw6/c;->b([Ljava/lang/Object;)Ljava/lang/String;
return v0
.end method