RendererCommon.smali
.class public Lorg/webrtc/ali/RendererCommon;
.super Ljava/lang/Object;
.source "RendererCommon.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lorg/webrtc/ali/RendererCommon$ScalingType;,
Lorg/webrtc/ali/RendererCommon$VideoLayoutMeasure;,
Lorg/webrtc/ali/RendererCommon$YuvUploader;,
Lorg/webrtc/ali/RendererCommon$GlDrawer;,
Lorg/webrtc/ali/RendererCommon$RendererEvents;
}
.end annotation
# static fields
.field private static BALANCED_VISIBLE_FRACTION:F
# direct methods
.method static constructor <clinit>()V
.registers 1
.line 188
const/high16 v0, 0x3f100000 # 0.5625f
sput v0, Lorg/webrtc/ali/RendererCommon;->BALANCED_VISIBLE_FRACTION:F
return-void
.end method
.method public constructor <init>()V
.registers 1
.line 22
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method private static adjustOrigin([F)V
.registers 7
.param p0, "matrix" # [F
.line 277
const/16 v0, 0xc
aget v1, p0, v0
const/4 v2, 0x0
aget v2, p0, v2
const/4 v3, 0x4
aget v3, p0, v3
add-float/2addr v2, v3
const/high16 v3, 0x3f000000 # 0.5f
mul-float v2, v2, v3
sub-float/2addr v1, v2
aput v1, p0, v0
.line 278
const/16 v1, 0xd
aget v2, p0, v1
const/4 v4, 0x1
aget v4, p0, v4
const/4 v5, 0x5
aget v5, p0, v5
add-float/2addr v4, v5
mul-float v4, v4, v3
sub-float/2addr v2, v4
aput v2, p0, v1
.line 280
aget v2, p0, v0
add-float/2addr v2, v3
aput v2, p0, v0
.line 281
aget v0, p0, v1
add-float/2addr v0, v3
aput v0, p0, v1
.line 282
return-void
.end method
.method private static convertScalingTypeToVisibleFraction(Lorg/webrtc/ali/RendererCommon$ScalingType;)F
.registers 3
.param p0, "scalingType" # Lorg/webrtc/ali/RendererCommon$ScalingType;
.line 289
sget-object v0, Lorg/webrtc/ali/RendererCommon$1;->$SwitchMap$org$webrtc$ali$RendererCommon$ScalingType:[I
invoke-virtual {p0}, Lorg/webrtc/ali/RendererCommon$ScalingType;->ordinal()I
move-result v1
aget v0, v0, v1
const/4 v1, 0x1
if-eq v0, v1, :cond_1c
const/4 v1, 0x2
if-eq v0, v1, :cond_1a
const/4 v1, 0x3
if-ne v0, v1, :cond_14
.line 295
sget v0, Lorg/webrtc/ali/RendererCommon;->BALANCED_VISIBLE_FRACTION:F
return v0
.line 297
:cond_14
new-instance v0, Ljava/lang/IllegalArgumentException;
invoke-direct {v0}, Ljava/lang/IllegalArgumentException;-><init>()V
throw v0
.line 293
:cond_1a
const/4 v0, 0x0
return v0
.line 291
:cond_1c
const/high16 v0, 0x3f800000 # 1.0f
return v0
.end method
.method private static getDisplaySize(FFII)Landroid/graphics/Point;
.registers 7
.param p0, "minVisibleFraction" # F
.param p1, "videoAspectRatio" # F
.param p2, "maxDisplayWidth" # I
.param p3, "maxDisplayHeight" # I
.line 308
const/4 v0, 0x0
cmpl-float v1, p0, v0
if-eqz v1, :cond_27
cmpl-float v0, p1, v0
if-nez v0, :cond_a
goto :goto_27
.line 312
:cond_a
int-to-float v0, p3
div-float/2addr v0, p0
mul-float v0, v0, p1
.line 313
invoke-static {v0}, Ljava/lang/Math;->round(F)I
move-result v0
.line 312
invoke-static {p2, v0}, Ljava/lang/Math;->min(II)I
move-result v0
.line 314
.local v0, "width":I
int-to-float v1, p2
div-float/2addr v1, p0
div-float/2addr v1, p1
.line 315
invoke-static {v1}, Ljava/lang/Math;->round(F)I
move-result v1
.line 314
invoke-static {p3, v1}, Ljava/lang/Math;->min(II)I
move-result v1
.line 316
.local v1, "height":I
new-instance v2, Landroid/graphics/Point;
invoke-direct {v2, v0, v1}, Landroid/graphics/Point;-><init>(II)V
return-object v2
.line 309
.end local v0 # "width":I
.end local v1 # "height":I
:cond_27
:goto_27
new-instance v0, Landroid/graphics/Point;
invoke-direct {v0, p2, p3}, Landroid/graphics/Point;-><init>(II)V
return-object v0
.end method
.method public static getDisplaySize(Lorg/webrtc/ali/RendererCommon$ScalingType;FII)Landroid/graphics/Point;
.registers 5
.param p0, "scalingType" # Lorg/webrtc/ali/RendererCommon$ScalingType;
.param p1, "videoAspectRatio" # F
.param p2, "maxDisplayWidth" # I
.param p3, "maxDisplayHeight" # I
.line 266
invoke-static {p0}, Lorg/webrtc/ali/RendererCommon;->convertScalingTypeToVisibleFraction(Lorg/webrtc/ali/RendererCommon$ScalingType;)F
move-result v0
invoke-static {v0, p1, p2, p3}, Lorg/webrtc/ali/RendererCommon;->getDisplaySize(FFII)Landroid/graphics/Point;
move-result-object v0
return-object v0
.end method
.method public static getLayoutMatrix(ZFF)[F
.registers 8
.param p0, "mirror" # Z
.param p1, "videoAspectRatio" # F
.param p2, "displayAspectRatio" # F
.line 242
const/high16 v0, 0x3f800000 # 1.0f
.line 243
.local v0, "scaleX":F
const/high16 v1, 0x3f800000 # 1.0f
.line 245
.local v1, "scaleY":F
cmpl-float v2, p2, p1
if-lez v2, :cond_b
.line 246
div-float v1, p1, p2
goto :goto_d
.line 248
:cond_b
div-float v0, p2, p1
.line 251
:goto_d
if-eqz p0, :cond_13
.line 252
const/high16 v2, -0x40800000 # -1.0f
mul-float v0, v0, v2
.line 254
:cond_13
const/16 v2, 0x10
new-array v2, v2, [F
.line 255
.local v2, "matrix":[F
const/4 v3, 0x0
invoke-static {v2, v3}, Landroid/opengl/Matrix;->setIdentityM([FI)V
.line 256
const/high16 v4, 0x3f800000 # 1.0f
invoke-static {v2, v3, v0, v1, v4}, Landroid/opengl/Matrix;->scaleM([FIFFF)V
.line 257
invoke-static {v2}, Lorg/webrtc/ali/RendererCommon;->adjustOrigin([F)V
.line 258
return-object v2
.end method
.method public static final horizontalFlipMatrix()[F
.registers 1
.line 208
const/16 v0, 0x10
new-array v0, v0, [F
fill-array-data v0, :array_8
return-object v0
:array_8
.array-data 4
-0x40800000 # -1.0f
0x0
0x0
0x0
0x0
0x3f800000 # 1.0f
0x0
0x0
0x0
0x0
0x3f800000 # 1.0f
0x0
0x3f800000 # 1.0f
0x0
0x0
0x3f800000 # 1.0f
.end array-data
.end method
.method public static final identityMatrix()[F
.registers 1
.line 191
const/16 v0, 0x10
new-array v0, v0, [F
fill-array-data v0, :array_8
return-object v0
:array_8
.array-data 4
0x3f800000 # 1.0f
0x0
0x0
0x0
0x0
0x3f800000 # 1.0f
0x0
0x0
0x0
0x0
0x3f800000 # 1.0f
0x0
0x0
0x0
0x0
0x3f800000 # 1.0f
.end array-data
.end method
.method public static multiplyMatrices([F[F)[F
.registers 9
.param p0, "a" # [F
.param p1, "b" # [F
.line 231
const/16 v0, 0x10
new-array v0, v0, [F
.line 232
.local v0, "resultMatrix":[F
const/4 v2, 0x0
const/4 v4, 0x0
const/4 v6, 0x0
move-object v1, v0
move-object v3, p0
move-object v5, p1
invoke-static/range {v1 .. v6}, Landroid/opengl/Matrix;->multiplyMM([FI[FI[FI)V
.line 233
return-object v0
.end method
.method public static rotateTextureMatrix([FF)[F
.registers 9
.param p0, "textureMatrix" # [F
.param p1, "rotationDegree" # F
.line 221
const/16 v0, 0x10
new-array v0, v0, [F
.line 222
.local v0, "rotationMatrix":[F
const/4 v2, 0x0
const/4 v4, 0x0
const/4 v5, 0x0
const/high16 v6, 0x3f800000 # 1.0f
move-object v1, v0
move v3, p1
invoke-static/range {v1 .. v6}, Landroid/opengl/Matrix;->setRotateM([FIFFFF)V
.line 223
invoke-static {v0}, Lorg/webrtc/ali/RendererCommon;->adjustOrigin([F)V
.line 224
invoke-static {p0, v0}, Lorg/webrtc/ali/RendererCommon;->multiplyMatrices([F[F)[F
move-result-object v1
return-object v1
.end method
.method public static final verticalFlipMatrix()[F
.registers 1
.line 199
const/16 v0, 0x10
new-array v0, v0, [F
fill-array-data v0, :array_8
return-object v0
:array_8
.array-data 4
0x3f800000 # 1.0f
0x0
0x0
0x0
0x0
-0x40800000 # -1.0f
0x0
0x0
0x0
0x0
0x3f800000 # 1.0f
0x0
0x0
0x3f800000 # 1.0f
0x0
0x3f800000 # 1.0f
.end array-data
.end method