RTCSDPTools.smali
.class public Lcn/rongcloud/rtc/utils/RTCSDPTools;
.super Ljava/lang/Object;
.source "RTCSDPTools.java"
# static fields
.field private static final AUDIO_CODEC_PARAM_BITRATE:Ljava/lang/String; = "maxaveragebitrate"
.field private static final TAG:Ljava/lang/String; = "RTCSDPTools"
.field private static final VIDEO_CODEC_PARAM_START_BITRATE:Ljava/lang/String; = "x-google-start-bitrate"
# direct methods
.method static constructor <clinit>()V
.registers 0
return-void
.end method
.method public constructor <init>()V
.registers 1
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static getTotalMaxBitRate(Ljava/util/List;)I
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"+",
"Lcn/rongcloud/rtc/webrtc/IStreamResource;",
">;)I"
}
.end annotation
.line 1
invoke-static {p0}, Lcn/rongcloud/rtc/utils/RongRTCUtils;->isEmpty(Ljava/util/Collection;)Z
move-result v0
const/4 v1, 0x0
if-eqz v0, :cond_8
return v1
.line 2
:cond_8
invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object p0
:cond_c
:goto_c
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_28
invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcn/rongcloud/rtc/webrtc/IStreamResource;
.line 3
sget-object v2, Lcn/rongcloud/rtc/base/RCRTCMediaType;->VIDEO:Lcn/rongcloud/rtc/base/RCRTCMediaType;
invoke-interface {v0}, Lcn/rongcloud/rtc/webrtc/IStreamResource;->getMediaType()Lcn/rongcloud/rtc/base/RCRTCMediaType;
move-result-object v3
if-ne v2, v3, :cond_c
.line 4
check-cast v0, Lcn/rongcloud/rtc/webrtc/ILocalVideoStreamResource;
invoke-interface {v0}, Lcn/rongcloud/rtc/webrtc/ILocalVideoStreamResource;->getMaxBitrate()I
move-result v0
add-int/2addr v1, v0
goto :goto_c
:cond_28
return v1
.end method
.method public static getTotalMinBitRate(Ljava/util/List;)I
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"+",
"Lcn/rongcloud/rtc/webrtc/IStreamResource;",
">;)I"
}
.end annotation
.line 1
invoke-static {p0}, Lcn/rongcloud/rtc/utils/RongRTCUtils;->isEmpty(Ljava/util/Collection;)Z
move-result v0
const/4 v1, 0x0
if-eqz v0, :cond_8
return v1
.line 2
:cond_8
invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object p0
:cond_c
:goto_c
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_28
invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcn/rongcloud/rtc/webrtc/IStreamResource;
.line 3
sget-object v2, Lcn/rongcloud/rtc/base/RCRTCMediaType;->VIDEO:Lcn/rongcloud/rtc/base/RCRTCMediaType;
invoke-interface {v0}, Lcn/rongcloud/rtc/webrtc/IStreamResource;->getMediaType()Lcn/rongcloud/rtc/base/RCRTCMediaType;
move-result-object v3
if-ne v2, v3, :cond_c
.line 4
check-cast v0, Lcn/rongcloud/rtc/webrtc/ILocalVideoStreamResource;
invoke-interface {v0}, Lcn/rongcloud/rtc/webrtc/ILocalVideoStreamResource;->getMinBitrate()I
move-result v0
add-int/2addr v1, v0
goto :goto_c
:cond_28
return v1
.end method
.method public static preferCodec(Lcn/rongcloud/rtc/center/config/RCRTCConfigImpl;Ljava/lang/String;Ljava/lang/String;ZI)Ljava/lang/String;
.registers 16
const-string v0, "\r\n"
.line 1
invoke-virtual {p1, v0}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v1
.line 2
array-length v2, v1
const/4 v3, 0x0
const/4 v4, 0x1
if-ne v2, v4, :cond_30
const-string v2, "\n"
.line 3
invoke-virtual {p1, v2}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object p1
.line 4
array-length v2, p1
if-lez v2, :cond_30
.line 5
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
.line 6
array-length v2, p1
const/4 v5, 0x0
:goto_1b
if-ge v5, v2, :cond_28
aget-object v6, p1, v5
.line 7
invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
add-int/lit8 v5, v5, 0x1
goto :goto_1b
.line 8
:cond_28
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
.line 9
invoke-virtual {p1, v0}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v1
.line 10
:cond_30
new-instance p1, Ljava/lang/StringBuilder;
invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "^a=rtpmap:(\\d+) "
invoke-virtual {p1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, "(/\\d+)+[\r]?$"
invoke-virtual {p1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
.line 11
invoke-static {p1}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern;
if-eqz p3, :cond_4e
const-string p1, "m=audio "
goto :goto_50
:cond_4e
const-string p1, "m=video "
:goto_50
const-string v2, "\r\nb=AS:%d"
const/4 v5, -0x1
const/4 v6, 0x0
const/4 v7, -0x1
.line 12
:goto_55
array-length v8, v1
if-ge v6, v8, :cond_100
.line 13
aget-object v8, v1, v6
invoke-virtual {v8, p1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v8
if-eqz v8, :cond_63
move v7, v6
goto/16 :goto_fc
:cond_63
if-nez p3, :cond_8f
.line 14
aget-object v8, v1, v6
const-string v9, "a=mid:video"
invoke-virtual {v8, v9}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v8
if-eqz v8, :cond_bc
.line 15
new-instance v8, Ljava/lang/StringBuilder;
invoke-direct {v8}, Ljava/lang/StringBuilder;-><init>()V
aget-object v9, v1, v6
invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
new-array v9, v4, [Ljava/lang/Object;
invoke-static {p4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v10
aput-object v10, v9, v3
invoke-static {v2, v9}, Lcn/rongcloud/rtc/utils/RongRTCUtils;->StringFormat(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v9
invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v8
aput-object v8, v1, v6
goto :goto_bc
.line 16
:cond_8f
aget-object v8, v1, v6
const-string v9, "a=mid:audio"
invoke-virtual {v8, v9}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v8
if-eqz v8, :cond_bc
.line 17
new-instance v8, Ljava/lang/StringBuilder;
invoke-direct {v8}, Ljava/lang/StringBuilder;-><init>()V
aget-object v9, v1, v6
invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
new-array v9, v4, [Ljava/lang/Object;
invoke-virtual {p0}, Lcn/rongcloud/rtc/center/config/RCRTCConfigImpl;->getAudioBitrate()I
move-result v10
invoke-static {v10}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v10
aput-object v10, v9, v3
invoke-static {v2, v9}, Lcn/rongcloud/rtc/utils/RongRTCUtils;->StringFormat(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v9
invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v8
aput-object v8, v1, v6
.line 18
:cond_bc
:goto_bc
aget-object v8, v1, v6
const-string v9, "a=candidate"
invoke-virtual {v8, v9}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v8
if-eqz v8, :cond_cd
.line 19
sget-object v8, Lcn/rongcloud/rtc/utils/RTCSDPTools;->TAG:Ljava/lang/String;
aget-object v9, v1, v6
invoke-static {v8, v9}, Lcn/rongcloud/rtc/utils/FinLog;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 20
:cond_cd
aget-object v8, v1, v6
const-string v9, "a=rtpmap:111 opus"
invoke-virtual {v8, v9}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v8
if-eqz v8, :cond_ee
if-eqz p3, :cond_ee
.line 21
new-instance v8, Ljava/lang/StringBuilder;
invoke-direct {v8}, Ljava/lang/StringBuilder;-><init>()V
aget-object v9, v1, v6
invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v9, "\r\na=rtcp-fb:111 nack"
invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v8
aput-object v8, v1, v6
.line 22
:cond_ee
aget-object v8, v1, v6
const-string v9, "extmap:5"
invoke-virtual {v8, v9}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v8
if-eqz v8, :cond_fc
const-string v8, ""
.line 23
aput-object v8, v1, v6
:cond_fc
:goto_fc
add-int/lit8 v6, v6, 0x1
goto/16 :goto_55
.line 24
:cond_100
new-instance p0, Ljava/lang/StringBuilder;
invoke-direct {p0}, Ljava/lang/StringBuilder;-><init>()V
.line 25
array-length p3, v1
:goto_106
if-ge v3, p3, :cond_119
aget-object p4, v1, v3
.line 26
invoke-static {p4}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v2
if-nez v2, :cond_116
.line 27
invoke-virtual {p0, p4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
:cond_116
add-int/lit8 v3, v3, 0x1
goto :goto_106
.line 28
:cond_119
invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
if-ne v7, v5, :cond_13e
.line 29
sget-object p3, Lcn/rongcloud/rtc/utils/RTCSDPTools;->TAG:Ljava/lang/String;
new-instance p4, Ljava/lang/StringBuilder;
invoke-direct {p4}, Ljava/lang/StringBuilder;-><init>()V
const-string v0, "No "
invoke-virtual {p4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p4, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p1, " line, so can\'t prefer "
invoke-virtual {p4, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p4, p2}, 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-static {p3, p1}, Lcn/rongcloud/rtc/utils/FinLog;->w(Ljava/lang/String;Ljava/lang/String;)V
return-object p0
.line 30
:cond_13e
sget-object p1, Lcn/rongcloud/rtc/utils/RTCSDPTools;->TAG:Ljava/lang/String;
new-instance p3, Ljava/lang/StringBuilder;
invoke-direct {p3}, Ljava/lang/StringBuilder;-><init>()V
const-string p4, "No rtpmap for "
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-static {p1, p2}, Lcn/rongcloud/rtc/utils/FinLog;->w(Ljava/lang/String;Ljava/lang/String;)V
return-object p0
.end method
.method public static preferRemoteCodec(Ljava/lang/String;Ljava/lang/String;ZII)Ljava/lang/String;
.registers 22
move-object/from16 v0, p0
move-object/from16 v1, p1
const-string v2, "\r\n"
.line 1
invoke-virtual {v0, v2}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v3
.line 2
array-length v4, v3
const/4 v5, 0x0
const/4 v6, 0x1
if-ne v4, v6, :cond_34
const-string v4, "\n"
.line 3
invoke-virtual {v0, v4}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v4
.line 4
array-length v7, v4
if-lez v7, :cond_34
.line 5
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
.line 6
array-length v3, v4
const/4 v7, 0x0
:goto_1f
if-ge v7, v3, :cond_2c
aget-object v8, v4, v7
.line 7
invoke-virtual {v0, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
add-int/lit8 v7, v7, 0x1
goto :goto_1f
.line 8
:cond_2c
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 9
invoke-virtual {v0, v2}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v3
:cond_34
const/4 v4, 0x0
.line 10
new-instance v7, Ljava/lang/StringBuilder;
invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
const-string v8, "^a=rtpmap:(\\d+) "
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v7, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v8, "(/\\d+)+[\r]?$"
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v7
.line 11
invoke-static {v7}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern;
move-result-object v7
if-eqz p2, :cond_54
const-string v8, "m=audio "
goto :goto_56
:cond_54
const-string v8, "m=video "
:goto_56
const v9, 0x3f333333 # 0.7f
move/from16 v10, p3
int-to-float v11, v10
mul-float v11, v11, v9
float-to-int v9, v11
move-object v13, v4
const/4 v4, 0x0
const/4 v12, -0x1
.line 12
:goto_62
array-length v14, v3
const/4 v15, 0x2
if-ge v4, v14, :cond_105
.line 13
aget-object v14, v3, v4
invoke-virtual {v14, v8}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v14
if-eqz v14, :cond_71
move v12, v4
goto/16 :goto_100
.line 14
:cond_71
aget-object v14, v3, v4
const-string v11, "a=mid:video"
invoke-virtual {v14, v11}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v11
if-eqz v11, :cond_9c
.line 15
new-instance v11, Ljava/lang/StringBuilder;
invoke-direct {v11}, Ljava/lang/StringBuilder;-><init>()V
aget-object v14, v3, v4
invoke-virtual {v11, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
new-array v14, v6, [Ljava/lang/Object;
invoke-static/range {p3 .. p3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v16
aput-object v16, v14, v5
const-string v5, "\r\nb=AS:%d"
invoke-static {v5, v14}, Lcn/rongcloud/rtc/utils/RongRTCUtils;->StringFormat(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v5
invoke-virtual {v11, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v11}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
aput-object v5, v3, v4
.line 16
:cond_9c
aget-object v5, v3, v4
const-string v11, "a=candidate"
invoke-virtual {v5, v11}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v5
if-eqz v5, :cond_ad
.line 17
sget-object v5, Lcn/rongcloud/rtc/utils/RTCSDPTools;->TAG:Ljava/lang/String;
aget-object v11, v3, v4
invoke-static {v5, v11}, Lcn/rongcloud/rtc/utils/FinLog;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 18
:cond_ad
aget-object v5, v3, v4
invoke-virtual {v7, v5}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
move-result-object v5
.line 19
invoke-virtual {v5}, Ljava/util/regex/Matcher;->matches()Z
move-result v11
if-eqz v11, :cond_100
.line 20
invoke-virtual {v5, v6}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v5
.line 21
new-instance v11, Ljava/lang/StringBuffer;
invoke-direct {v11}, Ljava/lang/StringBuffer;-><init>()V
.line 22
new-array v13, v15, [Ljava/lang/Object;
const/4 v14, 0x0
aput-object v5, v13, v14
invoke-static/range {p4 .. p4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v15
aput-object v15, v13, v6
const-string v15, "\r\na=fmtp:%s x-google-min-bitrate=%d;"
invoke-static {v15, v13}, Lcn/rongcloud/rtc/utils/RongRTCUtils;->StringFormat(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v13
invoke-virtual {v11, v13}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 23
new-array v13, v6, [Ljava/lang/Object;
invoke-static {v9}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v15
aput-object v15, v13, v14
const-string/jumbo v14, "x-google-start-bitrate=%d"
invoke-static {v14, v13}, Lcn/rongcloud/rtc/utils/RongRTCUtils;->StringFormat(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v13
invoke-virtual {v11, v13}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 24
new-instance v13, Ljava/lang/StringBuilder;
invoke-direct {v13}, Ljava/lang/StringBuilder;-><init>()V
aget-object v14, v3, v4
invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v11}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v11
invoke-virtual {v13, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v11
aput-object v11, v3, v4
move-object v13, v5
:cond_100
:goto_100
add-int/lit8 v4, v4, 0x1
const/4 v5, 0x0
goto/16 :goto_62
:cond_105
const/4 v4, -0x1
if-eq v12, v4, :cond_10d
if-nez v13, :cond_10b
goto :goto_10d
:cond_10b
:goto_10b
const/4 v4, -0x1
goto :goto_12c
.line 25
:cond_10d
:goto_10d
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
.line 26
array-length v4, v3
const/4 v5, 0x0
:goto_114
if-ge v5, v4, :cond_127
aget-object v7, v3, v5
.line 27
invoke-static {v7}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v9
if-nez v9, :cond_124
.line 28
invoke-virtual {v0, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
:cond_124
add-int/lit8 v5, v5, 0x1
goto :goto_114
.line 29
:cond_127
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
goto :goto_10b
:goto_12c
if-ne v12, v4, :cond_14d
.line 30
sget-object v2, Lcn/rongcloud/rtc/utils/RTCSDPTools;->TAG:Ljava/lang/String;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "No "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v4, " line, so can\'t prefer "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v2, v1}, Lcn/rongcloud/rtc/utils/FinLog;->d(Ljava/lang/String;Ljava/lang/String;)V
return-object v0
:cond_14d
if-nez v13, :cond_166
.line 31
sget-object v2, Lcn/rongcloud/rtc/utils/RTCSDPTools;->TAG:Ljava/lang/String;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "No rtpmap for "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v2, v1}, Lcn/rongcloud/rtc/utils/FinLog;->d(Ljava/lang/String;Ljava/lang/String;)V
return-object v0
.line 32
:cond_166
sget-object v0, Lcn/rongcloud/rtc/utils/RTCSDPTools;->TAG:Ljava/lang/String;
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "Found "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, " rtpmap "
invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, ", prefer at "
invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
aget-object v1, v3, v12
invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Lcn/rongcloud/rtc/utils/FinLog;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 33
aget-object v0, v3, v12
const-string v1, " "
invoke-virtual {v0, v1}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v0
.line 34
array-length v4, v0
const/4 v5, 0x3
if-le v4, v5, :cond_1f0
.line 35
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const/4 v14, 0x0
.line 36
aget-object v7, v0, v14
invoke-virtual {v4, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 37
aget-object v6, v0, v6
invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 38
aget-object v6, v0, v15
invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 39
invoke-virtual {v4, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 40
:goto_1bb
array-length v6, v0
if-ge v5, v6, :cond_1d1
.line 41
aget-object v6, v0, v5
invoke-virtual {v6, v13}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v6
if-nez v6, :cond_1ce
.line 42
invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
aget-object v6, v0, v5
invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
:cond_1ce
add-int/lit8 v5, v5, 0x1
goto :goto_1bb
.line 43
:cond_1d1
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
aput-object v0, v3, v12
.line 44
sget-object v0, Lcn/rongcloud/rtc/utils/RTCSDPTools;->TAG:Ljava/lang/String;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "Change media description: "
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
aget-object v4, v3, v12
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Lcn/rongcloud/rtc/utils/FinLog;->d(Ljava/lang/String;Ljava/lang/String;)V
goto :goto_209
:cond_1f0
const/4 v14, 0x0
.line 45
sget-object v0, Lcn/rongcloud/rtc/utils/RTCSDPTools;->TAG:Ljava/lang/String;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "Wrong SDP media description format: "
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
aget-object v4, v3, v12
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Lcn/rongcloud/rtc/utils/FinLog;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 46
:goto_209
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
.line 47
array-length v1, v3
:goto_20f
if-ge v14, v1, :cond_222
aget-object v4, v3, v14
.line 48
invoke-static {v4}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v5
if-nez v5, :cond_21f
.line 49
invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
:cond_21f
add-int/lit8 v14, v14, 0x1
goto :goto_20f
.line 50
:cond_222
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static setStartBitrate(Ljava/lang/String;ZLjava/lang/String;IZ)Ljava/lang/String;
.registers 15
const-string v0, "\r\n"
.line 1
invoke-virtual {p2, v0}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v1
.line 2
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "^a=rtpmap:(\\d+) "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v3, "(/\\d+)+[\r]?$"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
.line 3
invoke-static {v2}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern;
move-result-object v2
const/4 v3, 0x0
const/4 v4, 0x0
.line 4
:goto_22
array-length v5, v1
const/4 v6, 0x1
if-ge v4, v5, :cond_3a
.line 5
aget-object v5, v1, v4
invoke-virtual {v2, v5}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
move-result-object v5
.line 6
invoke-virtual {v5}, Ljava/util/regex/Matcher;->matches()Z
move-result v7
if-eqz v7, :cond_37
.line 7
invoke-virtual {v5, v6}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v2
goto :goto_3c
:cond_37
add-int/lit8 v4, v4, 0x1
goto :goto_22
:cond_3a
const/4 v4, -0x1
const/4 v2, 0x0
:goto_3c
if-nez v2, :cond_5a
.line 8
sget-object p1, Lcn/rongcloud/rtc/utils/RTCSDPTools;->TAG:Ljava/lang/String;
new-instance p3, Ljava/lang/StringBuilder;
invoke-direct {p3}, Ljava/lang/StringBuilder;-><init>()V
const-string p4, "No rtpmap for "
invoke-virtual {p3, p4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p3, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p0, " codec"
invoke-virtual {p3, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-static {p1, p0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
return-object p2
.line 9
:cond_5a
sget-object p2, Lcn/rongcloud/rtc/utils/RTCSDPTools;->TAG:Ljava/lang/String;
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v7, "Found "
invoke-virtual {v5, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v8, " rtpmap "
invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v8, " at "
invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
aget-object v8, v1, v4
invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-static {p2, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 10
new-instance p2, Ljava/lang/StringBuilder;
invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "^a=fmtp:"
invoke-virtual {p2, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p2, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v5, " \\w+=\\d+.*[\r]?$"
invoke-virtual {p2, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
.line 11
invoke-static {p2}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern;
move-result-object p2
const/4 v5, 0x0
.line 12
:goto_9d
array-length v8, v1
const-string v9, " "
if-ge v5, v8, :cond_157
.line 13
aget-object v8, v1, v5
invoke-virtual {p2, v8}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
move-result-object v8
.line 14
invoke-virtual {v8}, Ljava/util/regex/Matcher;->matches()Z
move-result v8
if-eqz v8, :cond_153
.line 15
sget-object p2, Lcn/rongcloud/rtc/utils/RTCSDPTools;->TAG:Ljava/lang/String;
new-instance v8, Ljava/lang/StringBuilder;
invoke-direct {v8}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v8, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v8, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
aget-object p0, v1, v5
invoke-virtual {v8, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-static {p2, p0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
if-eqz p1, :cond_e5
.line 16
new-instance p0, Ljava/lang/StringBuilder;
invoke-direct {p0}, Ljava/lang/StringBuilder;-><init>()V
aget-object p2, v1, v5
invoke-virtual {p0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p2, "; x-google-start-bitrate="
invoke-virtual {p0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0, p3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
aput-object p0, v1, v5
goto :goto_13a
:cond_e5
if-lez p3, :cond_11c
.line 17
sget-object p0, Lcn/rongcloud/rtc/utils/RTCSDPTools;->TAG:Ljava/lang/String;
new-instance p2, Ljava/lang/StringBuilder;
invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V
const-string v7, "audio option : set maxaveragebitrate "
invoke-virtual {p2, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v7, "K"
invoke-virtual {p2, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-static {p0, p2}, Lcn/rongcloud/rtc/utils/FinLog;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 18
new-instance p0, Ljava/lang/StringBuilder;
invoke-direct {p0}, Ljava/lang/StringBuilder;-><init>()V
aget-object p2, v1, v5
invoke-virtual {p0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p2, "; maxaveragebitrate="
invoke-virtual {p0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
mul-int/lit16 p2, p3, 0x3e8
invoke-virtual {p0, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
aput-object p0, v1, v5
:cond_11c
if-eqz p4, :cond_13a
.line 19
sget-object p0, Lcn/rongcloud/rtc/utils/RTCSDPTools;->TAG:Ljava/lang/String;
const-string p2, "audio option : set stereo=1"
invoke-static {p0, p2}, Lcn/rongcloud/rtc/utils/FinLog;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 20
new-instance p0, Ljava/lang/StringBuilder;
invoke-direct {p0}, Ljava/lang/StringBuilder;-><init>()V
aget-object p2, v1, v5
invoke-virtual {p0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p2, "; stereo=1"
invoke-virtual {p0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
aput-object p0, v1, v5
.line 21
:cond_13a
:goto_13a
sget-object p0, Lcn/rongcloud/rtc/utils/RTCSDPTools;->TAG:Ljava/lang/String;
new-instance p2, Ljava/lang/StringBuilder;
invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V
const-string p4, "Update remote SDP line: "
invoke-virtual {p2, p4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
aget-object p4, v1, v5
invoke-virtual {p2, p4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-static {p0, p2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
goto :goto_158
:cond_153
add-int/lit8 v5, v5, 0x1
goto/16 :goto_9d
:cond_157
const/4 v6, 0x0
.line 22
:goto_158
new-instance p0, Ljava/lang/StringBuilder;
invoke-direct {p0}, Ljava/lang/StringBuilder;-><init>()V
.line 23
:goto_15d
array-length p2, v1
if-ge v3, p2, :cond_1cf
.line 24
aget-object p2, v1, v3
invoke-virtual {p0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
if-nez v6, :cond_1cc
if-ne v3, v4, :cond_1cc
const-string p2, "="
const-string p4, "a=fmtp:"
if-eqz p1, :cond_191
.line 25
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v5, p4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string/jumbo p4, "x-google-start-bitrate"
invoke-virtual {v5, p4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, p3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
goto :goto_1b0
.line 26
:cond_191
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v5, p4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p4, "maxaveragebitrate"
invoke-virtual {v5, p4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
mul-int/lit16 p2, p3, 0x3e8
invoke-virtual {v5, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
.line 27
:goto_1b0
sget-object p4, Lcn/rongcloud/rtc/utils/RTCSDPTools;->TAG:Ljava/lang/String;
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v7, "Add remote SDP line: "
invoke-virtual {v5, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-static {p4, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 28
invoke-virtual {p0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
:cond_1cc
add-int/lit8 v3, v3, 0x1
goto :goto_15d
.line 29
:cond_1cf
invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
return-object p0
.end method