RendererCommon$VideoLayoutMeasure.smali

.class public Lorg/webrtc/ali/RendererCommon$VideoLayoutMeasure;
.super Ljava/lang/Object;
.source "RendererCommon.java"


# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
    value = Lorg/webrtc/ali/RendererCommon;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x9
    name = "VideoLayoutMeasure"
.end annotation


# instance fields
.field private scalingTypeMatchOrientation:Lorg/webrtc/ali/RendererCommon$ScalingType;

.field private scalingTypeMismatchOrientation:Lorg/webrtc/ali/RendererCommon$ScalingType;


# direct methods
.method static constructor <clinit>()V
    .registers 1

    return-void
.end method

.method public constructor <init>()V
    .registers 2

    .line 131
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 135
    sget-object v0, Lorg/webrtc/ali/RendererCommon$ScalingType;->SCALE_ASPECT_BALANCED:Lorg/webrtc/ali/RendererCommon$ScalingType;

    iput-object v0, p0, Lorg/webrtc/ali/RendererCommon$VideoLayoutMeasure;->scalingTypeMatchOrientation:Lorg/webrtc/ali/RendererCommon$ScalingType;

    .line 136
    sget-object v0, Lorg/webrtc/ali/RendererCommon$ScalingType;->SCALE_ASPECT_BALANCED:Lorg/webrtc/ali/RendererCommon$ScalingType;

    iput-object v0, p0, Lorg/webrtc/ali/RendererCommon$VideoLayoutMeasure;->scalingTypeMismatchOrientation:Lorg/webrtc/ali/RendererCommon$ScalingType;

    return-void
.end method


# virtual methods
.method public measure(IIII)Landroid/graphics/Point;
    .registers 13
    .param p1, "widthSpec"    # I
    .param p2, "heightSpec"    # I
    .param p3, "frameWidth"    # I
    .param p4, "frameHeight"    # I

    .line 151
    const v0, 0x7fffffff

    invoke-static {v0, p1}, Landroid/view/View;->getDefaultSize(II)I

    move-result v1

    .line 152
    .local v1, "maxWidth":I
    invoke-static {v0, p2}, Landroid/view/View;->getDefaultSize(II)I

    move-result v0

    .line 153
    .local v0, "maxHeight":I
    if-eqz p3, :cond_49

    if-eqz p4, :cond_49

    if-eqz v1, :cond_49

    if-nez v0, :cond_14

    goto :goto_49

    .line 158
    :cond_14
    int-to-float v2, p3

    int-to-float v3, p4

    div-float/2addr v2, v3

    .line 159
    .local v2, "frameAspect":F
    int-to-float v3, v1

    int-to-float v4, v0

    div-float/2addr v3, v4

    .line 160
    .local v3, "displayAspect":F
    const/4 v4, 0x1

    const/4 v5, 0x0

    const/high16 v6, 0x3f800000    # 1.0f

    cmpl-float v7, v2, v6

    if-lez v7, :cond_24

    const/4 v7, 0x1

    goto :goto_25

    :cond_24
    const/4 v7, 0x0

    :goto_25
    cmpl-float v6, v3, v6

    if-lez v6, :cond_2a

    goto :goto_2b

    :cond_2a
    const/4 v4, 0x0

    :goto_2b
    if-ne v7, v4, :cond_30

    iget-object v4, p0, Lorg/webrtc/ali/RendererCommon$VideoLayoutMeasure;->scalingTypeMatchOrientation:Lorg/webrtc/ali/RendererCommon$ScalingType;

    goto :goto_32

    :cond_30
    iget-object v4, p0, Lorg/webrtc/ali/RendererCommon$VideoLayoutMeasure;->scalingTypeMismatchOrientation:Lorg/webrtc/ali/RendererCommon$ScalingType;

    .line 163
    .local v4, "scalingType":Lorg/webrtc/ali/RendererCommon$ScalingType;
    :goto_32
    invoke-static {v4, v2, v1, v0}, Lorg/webrtc/ali/RendererCommon;->getDisplaySize(Lorg/webrtc/ali/RendererCommon$ScalingType;FII)Landroid/graphics/Point;

    move-result-object v5

    .line 166
    .local v5, "layoutSize":Landroid/graphics/Point;
    invoke-static {p1}, Landroid/view/View$MeasureSpec;->getMode(I)I

    move-result v6

    const/high16 v7, 0x40000000    # 2.0f

    if-ne v6, v7, :cond_40

    .line 167
    iput v1, v5, Landroid/graphics/Point;->x:I

    .line 169
    :cond_40
    invoke-static {p2}, Landroid/view/View$MeasureSpec;->getMode(I)I

    move-result v6

    if-ne v6, v7, :cond_48

    .line 170
    iput v0, v5, Landroid/graphics/Point;->y:I

    .line 172
    :cond_48
    return-object v5

    .line 154
    .end local v2    # "frameAspect":F
    .end local v3    # "displayAspect":F
    .end local v4    # "scalingType":Lorg/webrtc/ali/RendererCommon$ScalingType;
    .end local v5    # "layoutSize":Landroid/graphics/Point;
    :cond_49
    :goto_49
    new-instance v2, Landroid/graphics/Point;

    invoke-direct {v2, v1, v0}, Landroid/graphics/Point;-><init>(II)V

    return-object v2
.end method

.method public setScalingType(Lorg/webrtc/ali/RendererCommon$ScalingType;)V
    .registers 2
    .param p1, "scalingType"    # Lorg/webrtc/ali/RendererCommon$ScalingType;

    .line 139
    iput-object p1, p0, Lorg/webrtc/ali/RendererCommon$VideoLayoutMeasure;->scalingTypeMatchOrientation:Lorg/webrtc/ali/RendererCommon$ScalingType;

    .line 140
    iput-object p1, p0, Lorg/webrtc/ali/RendererCommon$VideoLayoutMeasure;->scalingTypeMismatchOrientation:Lorg/webrtc/ali/RendererCommon$ScalingType;

    .line 141
    return-void
.end method

.method public setScalingType(Lorg/webrtc/ali/RendererCommon$ScalingType;Lorg/webrtc/ali/RendererCommon$ScalingType;)V
    .registers 3
    .param p1, "scalingTypeMatchOrientation"    # Lorg/webrtc/ali/RendererCommon$ScalingType;
    .param p2, "scalingTypeMismatchOrientation"    # Lorg/webrtc/ali/RendererCommon$ScalingType;

    .line 145
    iput-object p1, p0, Lorg/webrtc/ali/RendererCommon$VideoLayoutMeasure;->scalingTypeMatchOrientation:Lorg/webrtc/ali/RendererCommon$ScalingType;

    .line 146
    iput-object p2, p0, Lorg/webrtc/ali/RendererCommon$VideoLayoutMeasure;->scalingTypeMismatchOrientation:Lorg/webrtc/ali/RendererCommon$ScalingType;

    .line 147
    return-void
.end method