RCTinyVideoOutStream.smali

.class public Lcn/rongcloud/rtc/center/stream/RCTinyVideoOutStream;
.super Lcn/rongcloud/rtc/center/stream/RCVideoOutStreamImpl;
.source "RCTinyVideoOutStream.java"


# static fields
.field private static final TINT_BASE_SIDE:I = 0x84

.field public static final TINY:Ljava/lang/CharSequence;


# instance fields
.field private mHeight:I

.field private mWidth:I


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

    const-string v0, "_tiny"

    .line 1
    sput-object v0, Lcn/rongcloud/rtc/center/stream/RCTinyVideoOutStream;->TINY:Ljava/lang/CharSequence;

    return-void
.end method

.method public constructor <init>(Ljava/lang/String;)V
    .registers 4

    .line 1
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string v1, "RongCloudRTC"

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    sget-object v1, Lcn/rongcloud/rtc/center/stream/RCTinyVideoOutStream;->TINY:Ljava/lang/CharSequence;

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-direct {p0, v0, p1}, Lcn/rongcloud/rtc/center/stream/RCVideoOutStreamImpl;-><init>(Ljava/lang/String;Ljava/lang/String;)V

    .line 2
    invoke-direct {p0}, Lcn/rongcloud/rtc/center/stream/RCTinyVideoOutStream;->configTinyVideoResolution()V

    .line 3
    sget-object p1, Lcn/rongcloud/rtc/base/RCRTCStreamType;->TINY:Lcn/rongcloud/rtc/base/RCRTCStreamType;

    iput-object p1, p0, Lcn/rongcloud/rtc/center/stream/RCVideoOutStreamImpl;->mStreamType:Lcn/rongcloud/rtc/base/RCRTCStreamType;

    return-void
.end method

.method private configTinyVideoResolution()V
    .registers 8

    .line 1
    invoke-static {}, Lcn/rongcloud/rtc/engine/RTCEngineImpl;->getInstance()Lcn/rongcloud/rtc/engine/RTCEngineImpl;

    move-result-object v0

    .line 2
    invoke-virtual {v0}, Lcn/rongcloud/rtc/engine/RTCEngineImpl;->getDefaultVideoStream()Lcn/rongcloud/rtc/api/stream/RCRTCCameraOutputStream;

    move-result-object v0

    check-cast v0, Lcn/rongcloud/rtc/center/stream/RCCameraOutputStreamImpl;

    .line 3
    invoke-virtual {v0}, Lcn/rongcloud/rtc/center/stream/RCVideoOutStreamImpl;->getWidth()I

    move-result v1

    const/16 v2, 0x84

    if-lt v1, v2, :cond_18

    .line 4
    invoke-virtual {v0}, Lcn/rongcloud/rtc/center/stream/RCVideoOutStreamImpl;->getHeight()I

    move-result v1

    if-ge v1, v2, :cond_24

    .line 5
    :cond_18
    invoke-virtual {v0}, Lcn/rongcloud/rtc/center/stream/RCVideoOutStreamImpl;->getWidth()I

    move-result v1

    iput v1, p0, Lcn/rongcloud/rtc/center/stream/RCTinyVideoOutStream;->mWidth:I

    .line 6
    invoke-virtual {v0}, Lcn/rongcloud/rtc/center/stream/RCVideoOutStreamImpl;->getHeight()I

    move-result v1

    iput v1, p0, Lcn/rongcloud/rtc/center/stream/RCTinyVideoOutStream;->mHeight:I

    .line 7
    :cond_24
    invoke-virtual {v0}, Lcn/rongcloud/rtc/center/stream/RCVideoOutStreamImpl;->getWidth()I

    move-result v1

    invoke-virtual {v0}, Lcn/rongcloud/rtc/center/stream/RCVideoOutStreamImpl;->getHeight()I

    move-result v3

    invoke-static {v1, v3}, Ljava/lang/Math;->min(II)I

    move-result v1

    const-wide v3, 0x4060800000000000L    # 132.0

    int-to-double v5, v1

    .line 8
    invoke-static {v3, v4, v5, v6}, Lcn/rongcloud/rtc/utils/RongRTCUtils;->div(DD)D

    move-result-wide v3

    .line 9
    invoke-virtual {v0}, Lcn/rongcloud/rtc/center/stream/RCVideoOutStreamImpl;->getWidth()I

    move-result v1

    invoke-virtual {v0}, Lcn/rongcloud/rtc/center/stream/RCVideoOutStreamImpl;->getHeight()I

    move-result v0

    .line 10
    invoke-static {v1, v0}, Ljava/lang/Math;->max(II)I

    move-result v0

    int-to-double v0, v0

    invoke-static {v0, v1}, Ljava/lang/Double;->isNaN(D)Z

    mul-double v3, v3, v0

    invoke-static {v3, v4}, Ljava/lang/Math;->floor(D)D

    move-result-wide v0

    double-to-int v0, v0

    shr-int/lit8 v0, v0, 0x2

    shl-int/lit8 v0, v0, 0x2

    .line 11
    iput v2, p0, Lcn/rongcloud/rtc/center/stream/RCTinyVideoOutStream;->mWidth:I

    .line 12
    iput v0, p0, Lcn/rongcloud/rtc/center/stream/RCTinyVideoOutStream;->mHeight:I

    return-void
.end method


# virtual methods
.method public getHeight()I
    .registers 2

    .line 1
    iget v0, p0, Lcn/rongcloud/rtc/center/stream/RCTinyVideoOutStream;->mHeight:I

    return v0
.end method

.method public getMaxBitrate()I
    .registers 2

    const/16 v0, 0x78

    return v0
.end method

.method public getMinBitrate()I
    .registers 2

    const/16 v0, 0x78

    return v0
.end method

.method public getWidth()I
    .registers 2

    .line 1
    iget v0, p0, Lcn/rongcloud/rtc/center/stream/RCTinyVideoOutStream;->mWidth:I

    return v0
.end method