198 lines
9.2 KiB
Java
198 lines
9.2 KiB
Java
package c.a.r;
|
|
|
|
import c.a.r.i0.a;
|
|
import c.a.r.k0.b;
|
|
import c.a.r.k0.c;
|
|
import c.a.r.k0.d;
|
|
import c.a.r.k0.e;
|
|
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.n;
|
|
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 rx.Observable;
|
|
import rx.Subscription;
|
|
/* compiled from: RtcConnection.kt */
|
|
public final class z implements MediaEngineConnection.c {
|
|
public final /* synthetic */ RtcConnection a;
|
|
|
|
public z(RtcConnection rtcConnection) {
|
|
this.a = rtcConnection;
|
|
}
|
|
|
|
@Override // com.discord.rtcconnection.mediaengine.MediaEngineConnection.c
|
|
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.g.succeed();
|
|
rtcConnection.h = transportInfo;
|
|
MediaEngineConnection mediaEngineConnection2 = rtcConnection.n;
|
|
if (mediaEngineConnection2 != null) {
|
|
d dVar = new d(1000, rtcConnection.J, mediaEngineConnection2, new VoiceQuality(), new e(null, 1), new KrispOveruseDetector(mediaEngineConnection2), 0, 64);
|
|
rtcConnection.f = dVar;
|
|
dVar.a.clear();
|
|
Subscription subscription = dVar.b;
|
|
if (subscription != null && !subscription.isUnsubscribed()) {
|
|
dVar.a();
|
|
}
|
|
dVar.b = Observable.E(0, dVar.f217c, TimeUnit.MILLISECONDS).X(new b(dVar), new c(dVar));
|
|
}
|
|
if (transportInfo.f2090c.ordinal() != 0) {
|
|
StringBuilder L = c.d.b.a.a.L("Unsupported protocol: ");
|
|
L.append(transportInfo.f2090c);
|
|
L.append('.');
|
|
RtcConnection.j(rtcConnection, true, L.toString(), null, false, 12);
|
|
} else {
|
|
rtcConnection.J.recordBreadcrumb("Sending UDP info to RTC server.", rtcConnection.f2074c);
|
|
c.a.r.j0.a aVar = rtcConnection.m;
|
|
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");
|
|
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.f207c, aVar2.d, aVar2.e));
|
|
}
|
|
aVar.n(1, new Payloads.Protocol("udp", protocolInfo, arrayList));
|
|
}
|
|
for (RtcConnection.c cVar : rtcConnection.e) {
|
|
cVar.onMediaEngineConnectionConnected(rtcConnection);
|
|
}
|
|
}
|
|
|
|
@Override // com.discord.rtcconnection.mediaengine.MediaEngineConnection.c
|
|
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.i;
|
|
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.i.a == RtcConnection.State.h.a) {
|
|
rtcConnection.q();
|
|
}
|
|
if (rtcConnection.i.a == RtcConnection.State.f.a) {
|
|
rtcConnection.f2075s = Long.valueOf(rtcConnection.K.currentTimeMillis());
|
|
rtcConnection.f2076x = true;
|
|
Map<String, Object> mutableMapOf = h0.mutableMapOf(d0.o.to("connect_count", Integer.valueOf(rtcConnection.t)));
|
|
Long l = rtcConnection.r;
|
|
Long l2 = rtcConnection.f2075s;
|
|
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.v;
|
|
if (mediaSinkWantsManager != null) {
|
|
mediaSinkWantsManager.b(new h(mediaSinkWantsManager, rtcConnection.n));
|
|
}
|
|
}
|
|
}
|
|
|
|
@Override // com.discord.rtcconnection.mediaengine.MediaEngineConnection.c
|
|
public void onDestroy(MediaEngineConnection mediaEngineConnection) {
|
|
m.checkNotNullParameter(mediaEngineConnection, "connection");
|
|
}
|
|
|
|
@Override // com.discord.rtcconnection.mediaengine.MediaEngineConnection.c
|
|
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 P = c.d.b.a.a.P(str, " -- ");
|
|
P.append(failedConnectionException.getMessage());
|
|
rtcConnection.r(P.toString());
|
|
} else {
|
|
RtcConnection.AnalyticsEvent analyticsEvent = RtcConnection.AnalyticsEvent.VOICE_CONNECTION_FAILURE;
|
|
Map<String, Object> mutableMapOf = h0.mutableMapOf(d0.o.to("connect_count", Integer.valueOf(rtcConnection.t)));
|
|
rtcConnection.b(mutableMapOf);
|
|
rtcConnection.p(analyticsEvent, mutableMapOf);
|
|
}
|
|
RtcConnection.j(rtcConnection, true, str, failedConnectionException, false, 8);
|
|
}
|
|
|
|
@Override // com.discord.rtcconnection.mediaengine.MediaEngineConnection.c
|
|
public void onKrispStatus(MediaEngineConnection mediaEngineConnection, KrispOveruseDetector.Status status) {
|
|
m.checkNotNullParameter(mediaEngineConnection, "connection");
|
|
m.checkNotNullParameter(status, "status");
|
|
}
|
|
|
|
@Override // com.discord.rtcconnection.mediaengine.MediaEngineConnection.c
|
|
public void onLocalMute(long j, boolean z2) {
|
|
}
|
|
|
|
@Override // com.discord.rtcconnection.mediaengine.MediaEngineConnection.c
|
|
public void onLocalVideoOffScreen(long j, boolean z2) {
|
|
}
|
|
|
|
@Override // com.discord.rtcconnection.mediaengine.MediaEngineConnection.c
|
|
public void onSpeaking(long j, int i, boolean z2) {
|
|
c.a.r.j0.a aVar;
|
|
RtcConnection rtcConnection = this.a;
|
|
if (j == rtcConnection.H && (aVar = rtcConnection.m) != null) {
|
|
aVar.n(5, new Payloads.Speaking(i, Integer.valueOf(z2 ? 1 : 0), 0, null, 8, null));
|
|
}
|
|
for (RtcConnection.c cVar : rtcConnection.e) {
|
|
cVar.onSpeaking(j, z2);
|
|
}
|
|
}
|
|
|
|
@Override // com.discord.rtcconnection.mediaengine.MediaEngineConnection.c
|
|
public void onVideo(long j, Integer num, int i, int i2, int i3) {
|
|
RtcConnection rtcConnection = this.a;
|
|
if (j == rtcConnection.H) {
|
|
c.a.r.j0.a aVar = rtcConnection.m;
|
|
if (aVar == null) {
|
|
RtcConnection.o(rtcConnection, "sendVideo() socket was null.", null, null, 6);
|
|
} else {
|
|
rtcConnection.f2078z = i2;
|
|
aVar.n(12, new Payloads.Video(i, i2, i3, null, n.emptyList(), 8, null));
|
|
}
|
|
MediaSinkWantsManager mediaSinkWantsManager = rtcConnection.v;
|
|
if (mediaSinkWantsManager != null) {
|
|
mediaSinkWantsManager.b(new j(mediaSinkWantsManager, i2 != 0));
|
|
}
|
|
}
|
|
for (RtcConnection.c cVar : rtcConnection.e) {
|
|
cVar.onVideoStream(j, num);
|
|
}
|
|
}
|
|
}
|