package c.a.r; import c.a.r.e; import c.a.r.o0.a; import c.a.r.p0.d; import c.a.r.p0.e; import co.discord.media_engine.MediaType; import co.discord.media_engine.StreamParameters; import com.discord.rtcconnection.EncodeQuality; import com.discord.rtcconnection.MediaSinkWantsManager; import com.discord.rtcconnection.RtcConnection; import com.discord.rtcconnection.VideoMetadata; import com.discord.rtcconnection.mediaengine.MediaEngine; import com.discord.rtcconnection.mediaengine.MediaEngineConnection; import com.discord.rtcconnection.socket.io.Payloads; import com.discord.utilities.logging.Logger; import d0.t.n; import d0.t.o; import d0.t.r; import d0.t.u; import d0.z.d.m; import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.ListIterator; import java.util.Map; import java.util.NoSuchElementException; import java.util.Objects; import kotlin.NoWhenBranchMatchedException; import org.webrtc.MediaStreamTrack; /* compiled from: RtcConnection.kt */ public final class h0 implements a.d { public final /* synthetic */ RtcConnection a; public h0(RtcConnection rtcConnection) { this.a = rtcConnection; } @Override // c.a.r.o0.a.d public void a(String str, String str2) { m.checkNotNullParameter(str, "audioCodec"); m.checkNotNullParameter(str2, "videoCodec"); MediaEngineConnection mediaEngineConnection = this.a.w; if (mediaEngineConnection != null) { mediaEngineConnection.r(str, str2); } } @Override // c.a.r.o0.a.d public void b(boolean z2, Integer num, String str) { RtcConnection rtcConnection = this.a; Objects.requireNonNull(rtcConnection); rtcConnection.s("Disconnected from RTC server. wasFatal: " + z2 + " -- code: " + num + " -- reason: " + str); MediaEngineConnection mediaEngineConnection = rtcConnection.w; if (mediaEngineConnection != null) { mediaEngineConnection.destroy(); } MediaEngineConnection mediaEngineConnection2 = rtcConnection.w; if (mediaEngineConnection2 != null) { mediaEngineConnection2.o(rtcConnection.L); } boolean z3 = num == null || num.intValue() != 1000; if (!(rtcConnection.r.a instanceof RtcConnection.State.d)) { rtcConnection.o(z3, str); d dVar = rtcConnection.n; if (dVar != null) { dVar.a(); } rtcConnection.n = null; rtcConnection.o = false; } rtcConnection.f2122z = 0; rtcConnection.C = null; MediaSinkWantsManager mediaSinkWantsManager = rtcConnection.F; if (mediaSinkWantsManager != null) { mediaSinkWantsManager.b(new g(mediaSinkWantsManager)); } rtcConnection.v(new RtcConnection.State.d(z3)); if (z3) { long fail = rtcConnection.p.fail(new d0(rtcConnection)); Logger.w$default(rtcConnection.T, rtcConnection.k, "Disconnect was not clean! Reason: " + str + ", code: " + num + ". Reconnecting in " + (fail / ((long) 1000)) + " seconds.", null, 4, null); } } @Override // c.a.r.o0.a.d public void c(String str, List list) { m.checkNotNullParameter(str, "mode"); m.checkNotNullParameter(list, "secretKey"); MediaEngineConnection mediaEngineConnection = this.a.w; if (mediaEngineConnection != null) { mediaEngineConnection.t(str, u.toIntArray(list)); } } @Override // c.a.r.o0.a.d public void d(String str) { m.checkNotNullParameter(str, "mediaSessionId"); RtcConnection rtcConnection = this.a; rtcConnection.I = str; for (RtcConnection.c cVar : rtcConnection.m) { cVar.onMediaSessionIdReceived(); rtcConnection.q(RtcConnection.AnalyticsEvent.MEDIA_SESSION_JOINED, new LinkedHashMap()); } } /* JADX DEBUG: Failed to insert an additional move for type inference into block B:43:0x0099 */ /* JADX WARN: Multi-variable type inference failed */ /* JADX DEBUG: Type inference failed for r1v2. Raw type applied. Possible types: java.util.Iterator, java.util.Iterator */ /* JADX DEBUG: Type inference failed for r1v9. Raw type applied. Possible types: java.util.Iterator, java.util.Iterator */ /* JADX WARNING: Unknown variable types count: 1 */ @Override // c.a.r.o0.a.d public void e(long j, int i, int i2, List list) { VideoMetadata videoMetadata; Object obj; boolean z2; ?? r2; RtcConnection rtcConnection = this.a; e j2 = rtcConnection.j(); long j3 = (long) i2; Objects.requireNonNull(j2); if (j3 != 0) { j2.m.put(Long.valueOf(j3), Long.valueOf(j2.p.currentTimeMillis())); Logger logger = j2.o; StringBuilder N = c.d.b.a.a.N("VideoQuality: handleVideoStreamUpdate(userId: ", j, ", videoSsrc: "); N.append(j3); N.append(')'); Logger.i$default(logger, N.toString(), null, 2, null); } if (j != rtcConnection.R) { boolean z3 = false; if (rtcConnection.F != null) { if (list != null) { r2 = new ArrayList(o.collectionSizeOrDefault(list, 10)); for (Payloads.Stream stream : list) { r2.add(Payloads.Stream.copy$default(stream, MediaStreamTrack.VIDEO_TRACK_KIND, null, null, null, null, null, null, Boolean.valueOf(i2 > 0), null, 382, null)); } } else { r2 = n.emptyList(); } boolean isEmpty = r2.isEmpty(); List list2 = r2; if (isEmpty) { Integer valueOf = Integer.valueOf(i2); Integer valueOf2 = Integer.valueOf(i2 + 1); if (i2 > 0) { z3 = true; } list2 = d0.t.m.listOf(new Payloads.Stream(MediaStreamTrack.VIDEO_TRACK_KIND, "100", null, 100, valueOf, valueOf2, null, Boolean.valueOf(z3), null)); } rtcConnection.F.c(j, Long.valueOf((long) i)); MediaSinkWantsManager mediaSinkWantsManager = rtcConnection.F; Objects.requireNonNull(mediaSinkWantsManager); m.checkNotNullParameter(list2, "ssrcs"); mediaSinkWantsManager.b(new l(mediaSinkWantsManager, list2, j)); return; } if (list != null) { Iterator it = list.iterator(); while (true) { if (!it.hasNext()) { obj = null; break; } obj = it.next(); Payloads.Stream stream2 = (Payloads.Stream) obj; Integer ssrc = stream2.getSsrc(); if (ssrc == null || ssrc.intValue() != i2 || stream2.getMaxResolution() == null) { z2 = false; continue; } else { z2 = true; continue; } if (z2) { break; } } Payloads.Stream stream3 = (Payloads.Stream) obj; if (stream3 != null) { Payloads.Stream.MaxResolution maxResolution = stream3.getMaxResolution(); m.checkNotNull(maxResolution); videoMetadata = new VideoMetadata(j, maxResolution.getWidth(), stream3.getMaxResolution().getHeight(), stream3.getMaxFrameRate(), stream3.getMaxResolution().getType()); rtcConnection.d(j, (long) i, j3, videoMetadata); } } videoMetadata = null; rtcConnection.d(j, (long) i, j3, videoMetadata); } } @Override // c.a.r.o0.a.d public void f(Map map) { boolean z2; Integer num; m.checkNotNullParameter(map, "wants"); RtcConnection rtcConnection = this.a; if (rtcConnection.F != null) { long j = rtcConnection.J; int intValue = (j == 0 || (num = map.get(String.valueOf(j))) == null) ? 0 : num.intValue(); Integer num2 = map.get("any"); int intValue2 = num2 != null ? num2.intValue() : 0; if (intValue <= 0) { intValue = intValue2 > 0 ? intValue2 : 100; } e.c cVar = null; rtcConnection.T.i(rtcConnection.k, "remote MediaSinkWants: " + map + ", decided on encode quality " + intValue, null); EncodeQuality[] values = EncodeQuality.values(); for (int i = 10; i >= 0; i--) { EncodeQuality encodeQuality = values[i]; if (encodeQuality.getValue() <= intValue) { e eVar = rtcConnection.F.j; k0 k0Var = eVar.e; m.checkNotNullParameter(encodeQuality, "wantValue"); List list = eVar.d; ListIterator listIterator = list.listIterator(list.size()); while (true) { if (!listIterator.hasPrevious()) { break; } e.c previous = listIterator.previous(); if (encodeQuality.compareTo(previous.f210c) >= 0) { z2 = true; continue; } else { z2 = false; continue; } if (z2) { cVar = previous; break; } } e.c cVar2 = cVar; if (cVar2 == null) { cVar2 = (e.c) u.first((List) eVar.d); } n nVar = cVar2.a; int max = Math.max((int) (((double) k0Var.f211c.a) * nVar.f215c), k0Var.d); int max2 = Math.max((int) (((double) k0Var.f211c.b) * nVar.f215c), k0Var.d); MediaEngineConnection mediaEngineConnection = rtcConnection.w; if (mediaEngineConnection != null) { mediaEngineConnection.m(new MediaEngineConnection.b(max, max2, nVar.a, nVar.b, nVar.d, nVar.e)); return; } return; } } throw new NoSuchElementException("Array contains no element matching the predicate."); } } @Override // c.a.r.o0.a.d public void g(long j) { RtcConnection rtcConnection = this.a; rtcConnection.u.add(Long.valueOf(j)); if (rtcConnection.u.size() > 5) { r.removeFirst(rtcConnection.u); } if (j > ((long) 500)) { rtcConnection.f2122z++; } double d = (double) j; Objects.requireNonNull(RtcConnection.Quality.Companion); RtcConnection.Quality quality = Double.isNaN(d) ? RtcConnection.Quality.UNKNOWN : d < ((double) 250) ? RtcConnection.Quality.FINE : d < ((double) 500) ? RtcConnection.Quality.AVERAGE : RtcConnection.Quality.BAD; for (RtcConnection.c cVar : rtcConnection.m) { cVar.onQualityUpdate(quality); } } @Override // c.a.r.o0.a.d public void h() { } @Override // c.a.r.o0.a.d public void i() { RtcConnection rtcConnection = this.a; rtcConnection.p.cancel(); rtcConnection.T.recordBreadcrumb("Connected to RTC server.", rtcConnection.k); a aVar = rtcConnection.v; if (aVar == null) { RtcConnection.p(rtcConnection, "onSocketConnect() socket was null.", null, null, 6); return; } List listOf = d0.t.m.listOf(new Payloads.Stream(MediaStreamTrack.VIDEO_TRACK_KIND, "100", null, 100, null, null, null, null, null)); String str = rtcConnection.Q; long j = rtcConnection.R; String str2 = rtcConnection.O; boolean z2 = rtcConnection.P; m.checkNotNullParameter(str, "serverId"); m.checkNotNullParameter(str2, "sessionId"); m.checkNotNullParameter(listOf, "streams"); aVar.b(); aVar.f221s = str; aVar.t = str2; aVar.A = a.c.IDENTIFYING; aVar.p(0, new Payloads.Identify(str, j, str2, aVar.D, z2, listOf)); rtcConnection.v(RtcConnection.State.a.a); } @Override // c.a.r.o0.a.d public void j(long j) { Map b; RtcConnection rtcConnection = this.a; if ((rtcConnection.V instanceof RtcConnection.d.a) && (b = rtcConnection.j().b(String.valueOf(j))) != null) { rtcConnection.m(j, b); } MediaSinkWantsManager mediaSinkWantsManager = rtcConnection.F; if (mediaSinkWantsManager != null) { mediaSinkWantsManager.c(j, null); } MediaSinkWantsManager mediaSinkWantsManager2 = rtcConnection.F; if (mediaSinkWantsManager2 != null) { List emptyList = n.emptyList(); m.checkNotNullParameter(emptyList, "ssrcs"); mediaSinkWantsManager2.b(new l(mediaSinkWantsManager2, emptyList, j)); } } /* JADX WARN: Multi-variable type inference failed */ /* JADX WARNING: Unknown variable types count: 1 */ @Override // c.a.r.o0.a.d public void k(int i, int i2, String str, List list) { MediaEngineConnection.Type type; m.checkNotNullParameter(str, "ip"); m.checkNotNullParameter(list, "streams"); RtcConnection rtcConnection = this.a; Objects.requireNonNull(rtcConnection); rtcConnection.s("Discovered dedicated UDP server on port " + i); rtcConnection.v(RtcConnection.State.g.a); ArrayList arrayList = new ArrayList(o.collectionSizeOrDefault(list, 10)); for (Iterator it = list.iterator(); it.hasNext(); it = it) { Payloads.Stream stream = (Payloads.Stream) it.next(); MediaType mediaType = MediaStreamTrack.VIDEO_TRACK_KIND.equals(stream.getType()) ? MediaType.Video : MediaType.Audio; String rid = stream.getRid(); if (rid == null) { rid = ""; } Integer ssrc = stream.getSsrc(); int intValue = ssrc != null ? ssrc.intValue() : 0; Integer rtxSsrc = stream.getRtxSsrc(); int intValue2 = rtxSsrc != null ? rtxSsrc.intValue() : 0; Boolean active = stream.getActive(); boolean booleanValue = active != null ? active.booleanValue() : false; Integer maxBitrate = stream.getMaxBitrate(); int intValue3 = maxBitrate != null ? maxBitrate.intValue() : 0; Integer quality = stream.getQuality(); arrayList.add(new StreamParameters(mediaType, rid, intValue, intValue2, booleanValue, intValue3, quality != null ? quality.intValue() : 100, 0)); } boolean isEmpty = arrayList.isEmpty(); ArrayList arrayList2 = arrayList; if (isEmpty) { arrayList2 = d0.t.m.listOf(new StreamParameters(MediaType.Video, "100", i2 + 1, i2 + 2, false, 0, 100, 0)); } MediaEngine mediaEngine = rtcConnection.S; long j = rtcConnection.R; MediaEngine.a aVar = new MediaEngine.a(i2, str, i, arrayList2); RtcConnection.d dVar = rtcConnection.V; if (m.areEqual(dVar, RtcConnection.d.a.a)) { type = MediaEngineConnection.Type.DEFAULT; } else if (dVar instanceof RtcConnection.d.b) { type = MediaEngineConnection.Type.STREAM; } else { throw new NoWhenBranchMatchedException(); } MediaEngineConnection g = mediaEngine.g(j, aVar, type, new e0(rtcConnection)); if (g == null) { RtcConnection.p(rtcConnection, "onSocketHello(): connect() return null.", null, null, 6); return; } g.l(rtcConnection.L); rtcConnection.w = g; } @Override // c.a.r.o0.a.d public void onConnecting() { RtcConnection rtcConnection = this.a; rtcConnection.p.cancel(); StringBuilder sb = new StringBuilder(); sb.append("Connecting to RTC server "); a aVar = rtcConnection.v; sb.append(aVar != null ? aVar.C : null); rtcConnection.s(sb.toString()); rtcConnection.v(RtcConnection.State.c.a); } @Override // c.a.r.o0.a.d public void onSpeaking(long j, int i, boolean z2) { RtcConnection rtcConnection = this.a; if (j != rtcConnection.R) { MediaEngineConnection mediaEngineConnection = rtcConnection.w; if (mediaEngineConnection != null) { mediaEngineConnection.s(j, i, null, rtcConnection.g(j), rtcConnection.h(j)); } MediaSinkWantsManager mediaSinkWantsManager = rtcConnection.F; if (mediaSinkWantsManager != null) { mediaSinkWantsManager.c(j, Long.valueOf((long) i)); } for (RtcConnection.c cVar : rtcConnection.m) { cVar.onUserCreated(rtcConnection, j); } } } }