discord-jadx/app/src/main/java/c/a/q/b0.java

243 lines
11 KiB
Java

package c.a.q;
import c.a.q.m0.a;
import c.a.q.o0.b;
import c.a.q.o0.c;
import c.a.q.o0.d;
import c.a.q.o0.e;
import co.discord.media_engine.MediaType;
import co.discord.media_engine.StreamParameters;
import co.discord.media_engine.VoiceQuality;
import com.discord.rtcconnection.KrispOveruseDetector;
import com.discord.rtcconnection.MediaSinkWantsManager;
import com.discord.rtcconnection.RtcConnection;
import com.discord.rtcconnection.mediaengine.MediaEngineConnection;
import com.discord.rtcconnection.socket.io.Payloads;
import d0.t.h0;
import d0.t.j;
import d0.t.o;
import d0.z.d.m;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
import kotlin.NoWhenBranchMatchedException;
import org.webrtc.MediaStreamTrack;
import rx.Observable;
import rx.Subscription;
/* compiled from: RtcConnection.kt */
public final class b0 implements MediaEngineConnection.d {
public final /* synthetic */ RtcConnection a;
public b0(RtcConnection rtcConnection) {
this.a = rtcConnection;
}
@Override // com.discord.rtcconnection.mediaengine.MediaEngineConnection.d
public void onConnected(MediaEngineConnection mediaEngineConnection, MediaEngineConnection.TransportInfo transportInfo, List<a> list) {
m.checkNotNullParameter(mediaEngineConnection, "connection");
m.checkNotNullParameter(transportInfo, "transportInfo");
m.checkNotNullParameter(list, "supportedVideoCodecs");
RtcConnection rtcConnection = this.a;
rtcConnection.p.succeed();
rtcConnection.q = transportInfo;
MediaEngineConnection mediaEngineConnection2 = rtcConnection.w;
if (mediaEngineConnection2 != null) {
d dVar = new d(1000, rtcConnection.U, mediaEngineConnection2, new VoiceQuality(), rtcConnection.A, new KrispOveruseDetector(mediaEngineConnection2), 0, 64);
dVar.a.clear();
Subscription subscription = dVar.b;
if (subscription != null && !subscription.isUnsubscribed()) {
dVar.a();
}
dVar.b = Observable.D(0, dVar.f230c, TimeUnit.MILLISECONDS).V(new b(dVar), new c(dVar));
rtcConnection.n = dVar;
rtcConnection.o = false;
}
if (transportInfo.f2177c.ordinal() != 0) {
StringBuilder P = c.d.b.a.a.P("Unsupported protocol: ");
P.append(transportInfo.f2177c);
P.append('.');
RtcConnection.j(rtcConnection, true, P.toString(), null, false, 12);
} else {
rtcConnection.U.recordBreadcrumb("Sending UDP info to RTC server.", rtcConnection.k);
c.a.q.n0.a aVar = rtcConnection.v;
if (aVar == null) {
RtcConnection.o(rtcConnection, "onEngineConnectionConnected() socket was null.", null, null, 6);
return;
}
String str = transportInfo.a;
int i = transportInfo.b;
m.checkNotNullParameter("udp", "protocol");
m.checkNotNullParameter(str, "address");
m.checkNotNullParameter("xsalsa20_poly1305", "mode");
m.checkNotNullParameter(list, "codecs");
aVar.G.a();
Payloads.Protocol.ProtocolInfo protocolInfo = new Payloads.Protocol.ProtocolInfo(str, i, "xsalsa20_poly1305");
ArrayList arrayList = new ArrayList(o.collectionSizeOrDefault(list, 10));
for (a aVar2 : list) {
arrayList.add(new Payloads.Protocol.CodecInfo(aVar2.a, aVar2.b, aVar2.f220c, aVar2.d, aVar2.e));
}
aVar.n(1, new Payloads.Protocol("udp", protocolInfo, arrayList));
}
for (RtcConnection.c cVar : rtcConnection.m) {
cVar.onMediaEngineConnectionConnected(rtcConnection);
}
}
@Override // com.discord.rtcconnection.mediaengine.MediaEngineConnection.d
public void onConnectionStateChange(MediaEngineConnection mediaEngineConnection, MediaEngineConnection.ConnectionState connectionState) {
RtcConnection.State state;
m.checkNotNullParameter(mediaEngineConnection, "connection");
m.checkNotNullParameter(connectionState, "connectionState");
RtcConnection rtcConnection = this.a;
RtcConnection.StateChange stateChange = rtcConnection.r;
rtcConnection.r("Connection state change: " + connectionState);
int ordinal = connectionState.ordinal();
if (ordinal == 0) {
state = RtcConnection.State.h.a;
} else if (ordinal == 1) {
state = RtcConnection.State.g.a;
} else if (ordinal == 2) {
state = RtcConnection.State.f.a;
} else if (ordinal == 3) {
state = RtcConnection.State.e.a;
} else {
throw new NoWhenBranchMatchedException();
}
rtcConnection.u(state);
if (stateChange.a == RtcConnection.State.g.a && rtcConnection.r.a == RtcConnection.State.h.a) {
rtcConnection.q();
}
if (rtcConnection.r.a == RtcConnection.State.f.a) {
rtcConnection.C = Long.valueOf(rtcConnection.V.currentTimeMillis());
rtcConnection.I = true;
Map<String, Object> mutableMapOf = h0.mutableMapOf(d0.o.to("connect_count", Integer.valueOf(rtcConnection.D)));
Long l = rtcConnection.B;
Long l2 = rtcConnection.C;
Long valueOf = (l2 == null || l == null) ? null : Long.valueOf(l2.longValue() - l.longValue());
if (valueOf != null) {
mutableMapOf.put("connect_time", Long.valueOf(valueOf.longValue()));
}
rtcConnection.b(mutableMapOf);
rtcConnection.p(RtcConnection.AnalyticsEvent.VOICE_CONNECTION_SUCCESS, mutableMapOf);
MediaSinkWantsManager mediaSinkWantsManager = rtcConnection.G;
if (mediaSinkWantsManager != null) {
mediaSinkWantsManager.b(new i(mediaSinkWantsManager, rtcConnection.w));
}
}
}
@Override // com.discord.rtcconnection.mediaengine.MediaEngineConnection.d
public void onDestroy(MediaEngineConnection mediaEngineConnection) {
m.checkNotNullParameter(mediaEngineConnection, "connection");
}
@Override // com.discord.rtcconnection.mediaengine.MediaEngineConnection.d
public void onError(MediaEngineConnection mediaEngineConnection, MediaEngineConnection.FailedConnectionException failedConnectionException) {
m.checkNotNullParameter(mediaEngineConnection, "connection");
m.checkNotNullParameter(failedConnectionException, "exception");
RtcConnection rtcConnection = this.a;
Objects.requireNonNull(rtcConnection);
String str = "connection error: " + failedConnectionException.a();
int ordinal = failedConnectionException.a().ordinal();
if (ordinal == 0 || ordinal == 1 || ordinal == 2) {
StringBuilder U = c.d.b.a.a.U(str, " -- ");
U.append(failedConnectionException.getMessage());
rtcConnection.r(U.toString());
} else {
RtcConnection.AnalyticsEvent analyticsEvent = RtcConnection.AnalyticsEvent.VOICE_CONNECTION_FAILURE;
Map<String, Object> mutableMapOf = h0.mutableMapOf(d0.o.to("connect_count", Integer.valueOf(rtcConnection.D)));
rtcConnection.b(mutableMapOf);
rtcConnection.p(analyticsEvent, mutableMapOf);
}
RtcConnection.j(rtcConnection, true, str, failedConnectionException, false, 8);
}
@Override // com.discord.rtcconnection.mediaengine.MediaEngineConnection.d
public void onKrispStatus(MediaEngineConnection mediaEngineConnection, KrispOveruseDetector.Status status) {
m.checkNotNullParameter(mediaEngineConnection, "connection");
m.checkNotNullParameter(status, "status");
}
@Override // com.discord.rtcconnection.mediaengine.MediaEngineConnection.d
public void onLocalMute(long j, boolean z2) {
}
@Override // com.discord.rtcconnection.mediaengine.MediaEngineConnection.d
public void onLocalVideoOffScreen(long j, boolean z2) {
}
@Override // com.discord.rtcconnection.mediaengine.MediaEngineConnection.d
public void onSpeaking(long j, int i, boolean z2) {
c.a.q.n0.a aVar;
RtcConnection rtcConnection = this.a;
if (j == rtcConnection.S && (aVar = rtcConnection.v) != null) {
aVar.G.a();
aVar.n(5, new Payloads.Speaking(i, Integer.valueOf(z2 ? 1 : 0), 0, null, 8, null));
}
for (RtcConnection.c cVar : rtcConnection.m) {
cVar.onSpeaking(j, z2);
}
}
@Override // com.discord.rtcconnection.mediaengine.MediaEngineConnection.d
public void onTargetBitrate(int i) {
e eVar = this.a.A;
synchronized (eVar) {
eVar.l.k = i;
}
}
@Override // com.discord.rtcconnection.mediaengine.MediaEngineConnection.d
public void onTargetFrameRate(int i) {
e eVar = this.a.A;
synchronized (eVar) {
eVar.l.l = i;
}
}
@Override // com.discord.rtcconnection.mediaengine.MediaEngineConnection.d
public void onVideo(long j, Integer num, int i, int i2, int i3, StreamParameters[] streamParametersArr) {
m.checkNotNullParameter(streamParametersArr, "streams");
RtcConnection rtcConnection = this.a;
List<StreamParameters> asList = j.asList(streamParametersArr);
if (j == rtcConnection.S) {
c.a.q.n0.a aVar = rtcConnection.v;
if (aVar == null) {
RtcConnection.o(rtcConnection, "sendVideo() socket was null.", null, null, 6);
} else {
rtcConnection.K = (long) i2;
if (i2 != 0) {
rtcConnection.o = true;
}
ArrayList arrayList = new ArrayList(o.collectionSizeOrDefault(asList, 10));
for (StreamParameters streamParameters : asList) {
String str = streamParameters.getType() == MediaType.Audio ? MediaStreamTrack.AUDIO_TRACK_KIND : MediaStreamTrack.VIDEO_TRACK_KIND;
String rid = streamParameters.getRid();
Integer valueOf = Integer.valueOf(streamParameters.getSsrc());
Integer valueOf2 = Integer.valueOf(streamParameters.getRtxSsrc());
Boolean valueOf3 = Boolean.valueOf(streamParameters.getActive());
Integer valueOf4 = Integer.valueOf(streamParameters.getMaxBitrate());
Integer valueOf5 = Integer.valueOf(streamParameters.getQuality());
j0 j0Var = f.a;
Integer valueOf6 = Integer.valueOf(j0Var.b.f211c);
Payloads.ResolutionType resolutionType = Payloads.ResolutionType.Fixed;
b bVar = j0Var.b;
arrayList.add(new Payloads.Stream(str, rid, valueOf6, valueOf5, valueOf, valueOf2, new Payloads.Stream.MaxResolution(resolutionType, bVar.a, bVar.b), valueOf3, valueOf4));
}
m.checkNotNullParameter(arrayList, "streams");
aVar.G.a();
aVar.n(12, new Payloads.Video(i, i2, i3, null, arrayList));
}
MediaSinkWantsManager mediaSinkWantsManager = rtcConnection.G;
if (mediaSinkWantsManager != null) {
mediaSinkWantsManager.b(new k(mediaSinkWantsManager, i2 != 0));
}
}
for (RtcConnection.c cVar : rtcConnection.m) {
cVar.onVideoStream(j, num, i, i2, i3);
}
}
}