discord-jadx/app/src/main/java/c/a/r/o0/a.java

150 lines
7.7 KiB
Java

package c.a.r.o0;
import c.a.r.o0.e;
import co.discord.media_engine.InboundRtpVideo;
import co.discord.media_engine.OutboundRtpAudio;
import co.discord.media_engine.OutboundRtpVideo;
import co.discord.media_engine.ReceiverReport;
import co.discord.media_engine.Stats;
import co.discord.media_engine.Transport;
import com.discord.rtcconnection.KrispOveruseDetector;
import com.discord.rtcconnection.mediaengine.MediaEngineConnection;
import com.discord.utilities.logging.Logger;
import d0.z.d.k;
import d0.z.d.m;
import f0.f0.c;
import java.util.Iterator;
import java.util.Map;
import java.util.Objects;
import kotlin.Pair;
import kotlin.Unit;
import kotlin.jvm.functions.Function1;
/* compiled from: RtcStatsCollector.kt */
public final /* synthetic */ class a extends k implements Function1<Stats, Unit> {
public a(d dVar) {
super(1, dVar, d.class, "onStatsReceived", "onStatsReceived(Lco/discord/media_engine/Stats;)V", 0);
}
/* Return type fixed from 'java.lang.Object' to match base method */
/* JADX DEBUG: Method arguments types fixed to match base method, original types: [java.lang.Object] */
@Override // kotlin.jvm.functions.Function1
public Unit invoke(Stats stats) {
long j;
OutboundRtpVideo outboundRtpVideo;
ReceiverReport[] receiverReports;
Stats stats2 = stats;
m.checkNotNullParameter(stats2, "p1");
d dVar = (d) this.receiver;
dVar.a.add(stats2);
if (dVar.a.size() > dVar.i) {
dVar.a.removeFirst();
}
dVar.f.update(stats2);
e eVar = dVar.g;
Objects.requireNonNull(eVar);
m.checkNotNullParameter(stats2, "stats");
long currentTimeMillis = eVar.p.currentTimeMillis();
Transport transport = stats2.getTransport();
Integer valueOf = Integer.valueOf((transport == null || (receiverReports = transport.getReceiverReports()) == null) ? 0 : receiverReports.length);
if (valueOf != null) {
eVar.i.b(valueOf.intValue() == 0, currentTimeMillis);
}
boolean z2 = eVar.h.a() || eVar.i.a();
if (z2 != eVar.j.a()) {
eVar.j.b(z2, currentTimeMillis);
eVar.k.a.clear();
}
if (!eVar.j.a() && (outboundRtpVideo = stats2.getOutboundRtpVideo()) != null) {
eVar.a(eVar.k, new e.g((long) outboundRtpVideo.getResolution().getHeight(), currentTimeMillis, new e.a(outboundRtpVideo.getFramesEncoded(), outboundRtpVideo.getFramesSent(), outboundRtpVideo.getPacketsSent(), (long) outboundRtpVideo.getPacketsLost(), 0, outboundRtpVideo.getBytesSent(), outboundRtpVideo.getNackCount(), outboundRtpVideo.getPliCount())));
if (eVar.k.b == null && outboundRtpVideo.getFramesEncoded() > 0) {
eVar.e.notify(g.i);
eVar.k.b = Long.valueOf(currentTimeMillis - eVar.g);
Logger logger = eVar.o;
StringBuilder L = c.d.b.a.a.L("VideoQuality: outboundStats.timeToFirstFrame: ");
L.append(eVar.k.b);
Logger.i$default(logger, L.toString(), null, 2, null);
}
eVar.n = outboundRtpVideo.getBitrateTarget();
}
if (!eVar.h.a()) {
for (Iterator<Map.Entry<String, InboundRtpVideo>> it = stats2.getInboundRtpVideo().entrySet().iterator(); it.hasNext(); it = it) {
Map.Entry<String, InboundRtpVideo> next = it.next();
String key = next.getKey();
InboundRtpVideo value = next.getValue();
Map<String, e.C0040e> map = eVar.l;
e.C0040e eVar2 = map.get(key);
if (eVar2 == null) {
eVar2 = new e.C0040e();
map.put(key, eVar2);
}
e.C0040e eVar3 = eVar2;
eVar.a(eVar3, new e.g((long) value.getResolution().getHeight(), currentTimeMillis, new e.a((long) value.getFramesDecoded(), (long) value.getFramesReceived(), (long) value.getPacketsReceived(), (long) value.getPacketsLost(), (long) value.getFramesDropped(), value.getBytesReceived(), value.getNackCount(), value.getPliCount())));
if (eVar3.b == null && value.getFramesDecoded() > 0) {
byte[] bArr = c.a;
m.checkParameterIsNotNull(key, "$this$toLongOrDefault");
try {
j = Long.parseLong(key);
} catch (NumberFormatException unused) {
j = 0;
}
Long l = eVar.m.get(Long.valueOf(value.getSsrc()));
if (l != null) {
eVar.e.notify(new h(value));
eVar3.b = Long.valueOf(currentTimeMillis - l.longValue());
Logger logger2 = eVar.o;
StringBuilder L2 = c.d.b.a.a.L("VideoQuality: inbound.timeToFirstFrame: ");
L2.append(eVar3.b);
L2.append(" (userId: ");
L2.append(j);
L2.append(", ssrc: ");
L2.append(value.getSsrc());
L2.append(')');
Logger.i$default(logger2, L2.toString(), null, 2, null);
} else {
Logger logger3 = eVar.o;
StringBuilder O = c.d.b.a.a.O("VideoQuality: inbound.timeToFirstFrame: Unable to locate start time. (userId: ", j, ", ssrc: ");
O.append(value.getSsrc());
O.append(')');
Logger.e$default(logger3, O.toString(), null, null, 6, null);
}
}
}
}
KrispOveruseDetector krispOveruseDetector = dVar.h;
Objects.requireNonNull(krispOveruseDetector);
m.checkNotNullParameter(stats2, "stats");
if (krispOveruseDetector.d.getType() == MediaEngineConnection.Type.DEFAULT && krispOveruseDetector.d.b()) {
OutboundRtpAudio outboundRtpAudio = stats2.getOutboundRtpAudio();
if (outboundRtpAudio != null && outboundRtpAudio.getNoiseCancellerIsEnabled()) {
OutboundRtpAudio outboundRtpAudio2 = krispOveruseDetector.b;
if (outboundRtpAudio2 != null) {
Pair<Boolean, Long> a = krispOveruseDetector.a(outboundRtpAudio2, stats2.getOutboundRtpAudio(), 8.0d);
boolean booleanValue = a.component1().booleanValue();
long longValue = a.component2().longValue();
if (booleanValue) {
krispOveruseDetector.d.f(KrispOveruseDetector.Status.CPU_OVERUSE);
} else if (longValue == 0) {
int i = krispOveruseDetector.f2089c + 1;
krispOveruseDetector.f2089c = i;
if (i > 2) {
krispOveruseDetector.d.f(KrispOveruseDetector.Status.FAILED);
}
} else {
krispOveruseDetector.f2089c = 0;
}
}
krispOveruseDetector.b = stats2.getOutboundRtpAudio();
}
OutboundRtpAudio outboundRtpAudio3 = stats2.getOutboundRtpAudio();
if (outboundRtpAudio3 != null && outboundRtpAudio3.getVoiceActivityDetectorIsEnabled()) {
OutboundRtpAudio outboundRtpAudio4 = krispOveruseDetector.a;
if (outboundRtpAudio4 != null && krispOveruseDetector.a(outboundRtpAudio4, stats2.getOutboundRtpAudio(), 4.0d).component1().booleanValue()) {
krispOveruseDetector.d.f(KrispOveruseDetector.Status.VAD_CPU_OVERUSE);
}
krispOveruseDetector.a = stats2.getOutboundRtpAudio();
}
}
return Unit.a;
}
}