package c.a.q.m0.c; import android.content.Context; import android.os.Build; import androidx.annotation.AnyThread; import c.a.q.e0; import co.discord.media_engine.RtcRegion; import co.discord.media_engine.VideoInputDeviceDescription; import com.airbnb.lottie.parser.AnimatableValueParser; import com.discord.rtcconnection.mediaengine.MediaEngine; import com.discord.rtcconnection.mediaengine.MediaEngineConnection; import com.discord.utilities.logging.Logger; import com.hammerandchisel.libdiscord.Discord; import d0.t.n0; import d0.t.u; import d0.z.d.m; import d0.z.d.o; import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.Set; import java.util.concurrent.Future; import kotlin.Unit; import kotlin.jvm.functions.Function0; import kotlin.jvm.functions.Function1; import org.webrtc.Logging; import org.webrtc.voiceengine.WebRtcAudioManager; import org.webrtc.voiceengine.WebRtcAudioUtils; import rx.Emitter; import rx.Observable; import rx.functions.Action1; /* compiled from: MediaEngineLegacy.kt */ public final class k implements MediaEngine { public static final Set a = n0.setOf((Object[]) new String[]{"Pixel", "Pixel XL", "Pixel 3a XL", "Pixel 4", "Pixel 4 XL", "Pixel 5"}); public static final Set b = n0.setOf((Object[]) new String[]{"Pixel 3a", "Redmi Note 8 Pro", "Redmi Note 8 pro"}); /* renamed from: c reason: collision with root package name */ public final u f224c; public final List d; public boolean e; public Discord f; public List g; public MediaEngine.OpenSLUsageMode h; public MediaEngine.EchoCancellationInfo i; public final Context j; public final MediaEngine.c k; public final c.a.q.c l; public final MediaEngine.OpenSLESConfig m; public final Logger n; public final c.a.q.k0.g o; public final MediaEngine.b p; public final Set q; public final Set r; /* compiled from: MediaEngineLegacy.kt */ public static final class a extends o implements Function0 { public final /* synthetic */ k this$0; /* JADX INFO: super call moved to the top of the method (can break code semantics) */ public a(k kVar) { super(0); this.this$0 = kVar; } /* Return type fixed from 'java.lang.Object' to match base method */ @Override // kotlin.jvm.functions.Function0 /* renamed from: invoke */ public Unit mo1invoke() { k kVar = this.this$0; j jVar = j.i; Set set = k.a; kVar.n(jVar); return Unit.a; } } /* compiled from: MediaEngineLegacy.kt */ public static final class b extends o implements Function1 { public final /* synthetic */ e $connection; /* JADX INFO: super call moved to the top of the method (can break code semantics) */ public b(e eVar) { super(1); this.$connection = eVar; } /* 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(MediaEngine.c cVar) { MediaEngine.c cVar2 = cVar; m.checkNotNullParameter(cVar2, "it"); cVar2.onNewConnection(this.$connection); return Unit.a; } } /* compiled from: MediaEngineLegacy.kt */ public static final class c extends MediaEngineConnection.a { public final /* synthetic */ k a; /* compiled from: MediaEngineLegacy.kt */ public static final class a extends o implements Function0 { public final /* synthetic */ c this$0; /* JADX INFO: super call moved to the top of the method (can break code semantics) */ public a(c cVar) { super(0); this.this$0 = cVar; } /* Return type fixed from 'java.lang.Object' to match base method */ @Override // kotlin.jvm.functions.Function0 /* renamed from: invoke */ public Unit mo1invoke() { k kVar = this.this$0.a; l lVar = l.i; Set set = k.a; kVar.n(lVar); return Unit.a; } } /* compiled from: MediaEngineLegacy.kt */ public static final class b extends o implements Function0 { public final /* synthetic */ MediaEngineConnection $connection; public final /* synthetic */ c this$0; /* JADX INFO: super call moved to the top of the method (can break code semantics) */ public b(c cVar, MediaEngineConnection mediaEngineConnection) { super(0); this.this$0 = cVar; this.$connection = mediaEngineConnection; } /* Return type fixed from 'java.lang.Object' to match base method */ @Override // kotlin.jvm.functions.Function0 /* renamed from: invoke */ public Unit mo1invoke() { k.m(this.this$0.a, this.$connection); return Unit.a; } } /* compiled from: MediaEngineLegacy.kt */ /* renamed from: c.a.q.m0.c.k$c$c reason: collision with other inner class name */ public static final class C0039c extends o implements Function0 { public final /* synthetic */ MediaEngineConnection $connection; public final /* synthetic */ c this$0; /* JADX INFO: super call moved to the top of the method (can break code semantics) */ public C0039c(c cVar, MediaEngineConnection mediaEngineConnection) { super(0); this.this$0 = cVar; this.$connection = mediaEngineConnection; } /* Return type fixed from 'java.lang.Object' to match base method */ @Override // kotlin.jvm.functions.Function0 /* renamed from: invoke */ public Unit mo1invoke() { k.m(this.this$0.a, this.$connection); return Unit.a; } } /* compiled from: MediaEngineLegacy.kt */ public static final class d extends o implements Function0 { public final /* synthetic */ MediaEngineConnection $connection; public final /* synthetic */ c this$0; /* JADX INFO: super call moved to the top of the method (can break code semantics) */ public d(c cVar, MediaEngineConnection mediaEngineConnection) { super(0); this.this$0 = cVar; this.$connection = mediaEngineConnection; } /* Return type fixed from 'java.lang.Object' to match base method */ @Override // kotlin.jvm.functions.Function0 /* renamed from: invoke */ public Unit mo1invoke() { k.m(this.this$0.a, this.$connection); return Unit.a; } } public c(k kVar) { this.a = kVar; } @Override // com.discord.rtcconnection.mediaengine.MediaEngineConnection.a, com.discord.rtcconnection.mediaengine.MediaEngineConnection.d public void onConnected(MediaEngineConnection mediaEngineConnection, MediaEngineConnection.TransportInfo transportInfo, List list) { m.checkNotNullParameter(mediaEngineConnection, "connection"); m.checkNotNullParameter(transportInfo, "transportInfo"); m.checkNotNullParameter(list, "supportedVideoCodecs"); this.a.o(new a(this)); } @Override // com.discord.rtcconnection.mediaengine.MediaEngineConnection.a, com.discord.rtcconnection.mediaengine.MediaEngineConnection.d public void onConnectionStateChange(MediaEngineConnection mediaEngineConnection, MediaEngineConnection.ConnectionState connectionState) { m.checkNotNullParameter(mediaEngineConnection, "connection"); m.checkNotNullParameter(connectionState, "connectionState"); if (connectionState == MediaEngineConnection.ConnectionState.DISCONNECTED) { this.a.o(new b(this, mediaEngineConnection)); } } @Override // com.discord.rtcconnection.mediaengine.MediaEngineConnection.a, com.discord.rtcconnection.mediaengine.MediaEngineConnection.d public void onDestroy(MediaEngineConnection mediaEngineConnection) { m.checkNotNullParameter(mediaEngineConnection, "connection"); this.a.o(new C0039c(this, mediaEngineConnection)); } @Override // com.discord.rtcconnection.mediaengine.MediaEngineConnection.a, com.discord.rtcconnection.mediaengine.MediaEngineConnection.d public void onError(MediaEngineConnection mediaEngineConnection, MediaEngineConnection.FailedConnectionException failedConnectionException) { m.checkNotNullParameter(mediaEngineConnection, "connection"); m.checkNotNullParameter(failedConnectionException, "exception"); this.a.o(new d(this, mediaEngineConnection)); } } /* compiled from: MediaEngineLegacy.kt */ public static final class d implements Action1> { public final /* synthetic */ k i; public d(k kVar) { this.i = kVar; } /* JADX DEBUG: Method arguments types fixed to match base method, original types: [java.lang.Object] */ @Override // rx.functions.Action1 public void call(Emitter emitter) { Emitter emitter2 = emitter; Discord discord = this.i.f; if (discord != null) { discord.getAudioSubsystem(new o(emitter2)); } } } /* compiled from: MediaEngineLegacy.kt */ public static final class e implements Action1> { public final /* synthetic */ k i; public e(k kVar) { this.i = kVar; } /* JADX DEBUG: Method arguments types fixed to match base method, original types: [java.lang.Object] */ /* JADX DEBUG: Multi-variable search result rejected for r3v0, resolved type: java.util.List */ /* JADX WARN: Multi-variable type inference failed */ @Override // rx.functions.Action1 public void call(List list) { List list2 = list; k kVar = this.i; m.checkNotNullExpressionValue(list2, "codecs"); kVar.g = list2; } } /* compiled from: MediaEngineLegacy.kt */ public static final class f implements j0.k.b, Unit> { public static final f i = new f(); /* 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 // j0.k.b public Unit call(List list) { return Unit.a; } } /* compiled from: MediaEngineLegacy.kt */ public static final class g implements Discord.LocalVoiceLevelChangedCallback { public final /* synthetic */ Function1 a; public g(Function1 function1) { this.a = function1; } @Override // com.hammerandchisel.libdiscord.Discord.LocalVoiceLevelChangedCallback public final void onLocalVoiceLevelChanged(float f, int i) { boolean z2 = true; if ((i & 1) == 0) { z2 = false; } this.a.invoke(new MediaEngine.LocalVoiceStatus(f, z2)); } } /* compiled from: MediaEngineLegacy.kt */ public static final class h implements Discord.BuiltinAECCallback { public final /* synthetic */ c.a.q.k0.g a; public final /* synthetic */ k b; /* compiled from: MediaEngineLegacy.kt */ public static final class a extends o implements Function0 { public final /* synthetic */ boolean $available; public final /* synthetic */ boolean $enabled; public final /* synthetic */ boolean $requestEnabled; public final /* synthetic */ h this$0; /* JADX INFO: super call moved to the top of the method (can break code semantics) */ public a(h hVar, boolean z2, boolean z3, boolean z4) { super(0); this.this$0 = hVar; this.$enabled = z2; this.$requestEnabled = z3; this.$available = z4; } /* Return type fixed from 'java.lang.Object' to match base method */ @Override // kotlin.jvm.functions.Function0 /* renamed from: invoke */ public Unit mo1invoke() { this.this$0.a.d = this.$enabled; k kVar = this.this$0.b; boolean z2 = this.$requestEnabled; boolean z3 = this.$available; Objects.requireNonNull(kVar.o); kVar.i = new MediaEngine.EchoCancellationInfo(z2, z3, WebRtcAudioUtils.isAcousticEchoCancelerSupported(), this.$enabled, false, false, false, false, false, 496); return Unit.a; } } public h(c.a.q.k0.g gVar, Discord discord, k kVar) { this.a = gVar; this.b = kVar; } @Override // com.hammerandchisel.libdiscord.Discord.BuiltinAECCallback public final void onConfigureBuiltinAEC(boolean z2, boolean z3, boolean z4) { this.b.o(new a(this, z4, z2, z3)); } } /* compiled from: MediaEngineLegacy.kt */ public static final class i implements Logging.ExternalReporter { public final /* synthetic */ k a; public i(k kVar) { this.a = kVar; } @Override // org.webrtc.Logging.ExternalReporter public final void e(String str, String str2, Throwable th) { Logger logger = this.a.n; m.checkNotNullExpressionValue(str, "tag"); m.checkNotNullExpressionValue(str2, "message"); Logger.e$default(logger, str, str2, th, null, 8, null); } } /* compiled from: MediaEngineLegacy.kt */ public static final /* synthetic */ class j extends d0.z.d.k implements Function1 { public static final j i = new j(); public j() { super(1, MediaEngine.c.class, "onNativeEngineInitialized", "onNativeEngineInitialized()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(MediaEngine.c cVar) { MediaEngine.c cVar2 = cVar; m.checkNotNullParameter(cVar2, "p1"); cVar2.onNativeEngineInitialized(); return Unit.a; } } /* compiled from: MediaEngineLegacy.kt */ /* renamed from: c.a.q.m0.c.k$k reason: collision with other inner class name */ public static final class C0040k extends o implements Function0 { public final /* synthetic */ MediaEngine.VoiceConfig $voiceConfig; public final /* synthetic */ k this$0; /* JADX INFO: super call moved to the top of the method (can break code semantics) */ public C0040k(k kVar, MediaEngine.VoiceConfig voiceConfig) { super(0); this.this$0 = kVar; this.$voiceConfig = voiceConfig; } /* Return type fixed from 'java.lang.Object' to match base method */ @Override // kotlin.jvm.functions.Function0 /* renamed from: invoke */ public Unit mo1invoke() { boolean z2; StringBuilder P = c.d.b.a.a.P("updateVoiceConfig: "); P.append(this.$voiceConfig); AnimatableValueParser.E1("MediaEngineLegacy", P.toString()); MediaEngine.VoiceConfig voiceConfig = this.$voiceConfig; k kVar = this.this$0; float f = voiceConfig.a; Discord discord = kVar.f; if (discord != null) { discord.setSpeakerVolume(Math.min(300.0f, Math.max(0.0f, f)) / 100.0f); } k kVar2 = this.this$0; boolean z3 = voiceConfig.b; kVar2.l.a(); c.a.q.k0.g gVar = kVar2.o; if (gVar.g && gVar.d) { z2 = false; } else { c.a.q.k0.g gVar2 = kVar2.o; z2 = gVar2.f && !gVar2.d ? true : z3; } if (z2 != z3) { AnimatableValueParser.E1("MediaEngineLegacy", "ignoring call to setEchoCancellation(" + z3 + "), config=" + kVar2.o); } Discord discord2 = kVar2.f; if (discord2 != null) { discord2.setEchoCancellation(z2, false, new m(kVar2)); } k kVar3 = this.this$0; boolean z4 = voiceConfig.f2175c; Discord discord3 = kVar3.f; if (discord3 != null) { discord3.setNoiseSuppression(z4); } k kVar4 = this.this$0; boolean z5 = voiceConfig.d; kVar4.f224c.a = z5; Discord discord4 = kVar4.f; if (discord4 != null) { discord4.setNoiseCancellation(z5); } k kVar5 = this.this$0; boolean z6 = voiceConfig.e; Discord discord5 = kVar5.f; if (discord5 != null) { discord5.setAutomaticGainControl(z6); } for (MediaEngineConnection mediaEngineConnection : this.this$0.getConnections()) { mediaEngineConnection.k(voiceConfig.f, voiceConfig.g); mediaEngineConnection.v(voiceConfig.h); mediaEngineConnection.c(voiceConfig.i || mediaEngineConnection.getType() == MediaEngineConnection.Type.STREAM); } return Unit.a; } } public k(Context context, MediaEngine.c cVar, c.a.q.c cVar2, MediaEngine.OpenSLESConfig openSLESConfig, Logger logger, c.a.q.k0.g gVar, MediaEngine.b bVar, Set set, Set set2, int i2) { Set set3 = null; Set set4 = (i2 & 128) != 0 ? a : null; set3 = (i2 & 256) != 0 ? b : set3; m.checkNotNullParameter(context, "context"); m.checkNotNullParameter(cVar, "listener"); m.checkNotNullParameter(cVar2, "mediaEngineThreadExecutor"); m.checkNotNullParameter(openSLESConfig, "openSLESConfig"); m.checkNotNullParameter(logger, "logger"); m.checkNotNullParameter(gVar, "echoCancellation"); m.checkNotNullParameter(bVar, "echoCancellationCallback"); m.checkNotNullParameter(set4, "defaultOpenSLAllowList"); m.checkNotNullParameter(set3, "defaultOpenSLExcludeList"); this.j = context; this.k = cVar; this.l = cVar2; this.m = openSLESConfig; this.n = logger; this.o = gVar; this.p = bVar; this.q = set4; this.r = set3; this.f224c = new u(); this.d = new ArrayList(); this.e = true; this.h = MediaEngine.OpenSLUsageMode.ALLOW_LIST; } public static final void m(k kVar, MediaEngineConnection mediaEngineConnection) { synchronized (kVar) { Discord discord = kVar.f; if (discord != null) { discord.setLocalVoiceLevelChangedCallback(null); } kVar.d.remove(mediaEngineConnection); } } @Override // com.discord.rtcconnection.mediaengine.MediaEngine public Observable a() { if (this.g != null) { j0.l.e.j jVar = new j0.l.e.j(Unit.a); m.checkNotNullExpressionValue(jVar, "Observable.just(Unit)"); return jVar; } p(); if (this.f == null) { Observable w = Observable.w(new IllegalStateException("Failed to initialize native media engine")); m.checkNotNullExpressionValue(w, "Observable.error(Illegal…ze native media engine\"))"); return w; } Observable n = Observable.n(new q(this), Emitter.BackpressureMode.NONE); m.checkNotNullExpressionValue(n, "Observable.create({ emit…er.BackpressureMode.NONE)"); Observable F = n.t(new e(this)).F(f.i); m.checkNotNullExpressionValue(F, "getSupportedVideoCodecs(…s }\n .map { Unit }"); return F; } @Override // com.discord.rtcconnection.mediaengine.MediaEngine public void b(RtcRegion[] rtcRegionArr, Function1 function1) { m.checkNotNullParameter(rtcRegionArr, "regionsWithIps"); m.checkNotNullParameter(function1, "callback"); p(); Discord discord = this.f; if (discord != null) { discord.getRankedRtcRegions(rtcRegionArr, new r(function1)); } } @Override // com.discord.rtcconnection.mediaengine.MediaEngine public c.a.q.c c() { return this.l; } @Override // com.discord.rtcconnection.mediaengine.MediaEngine @AnyThread public void d(MediaEngine.VoiceConfig voiceConfig) { m.checkNotNullParameter(voiceConfig, "voiceConfig"); o(new C0040k(this, voiceConfig)); } @Override // com.discord.rtcconnection.mediaengine.MediaEngine public Observable e() { Observable n = Observable.n(new d(this), Emitter.BackpressureMode.LATEST); m.checkNotNullExpressionValue(n, "Observable.create({ emit….BackpressureMode.LATEST)"); return n; } @Override // com.discord.rtcconnection.mediaengine.MediaEngine public void f(int i2) { Discord discord = this.f; if (discord != null) { discord.setVideoInputDevice(i2); } } @Override // com.discord.rtcconnection.mediaengine.MediaEngine public synchronized MediaEngineConnection g(long j2, MediaEngine.a aVar, MediaEngineConnection.Type type, Function1 function1) { m.checkNotNullParameter(aVar, "options"); m.checkNotNullParameter(type, "type"); m.checkNotNullParameter(function1, "onFailure"); if (!(this.g != null)) { ((e0) function1).invoke(new IllegalStateException("connect() called on unprepared media engine.")); return null; } Discord discord = this.f; if (discord == null) { Logger.e$default(this.n, "MediaEngineLegacy", "connect() called without voiceEngineLegacy.", null, null, 12, null); return null; } o(new a(this)); Logger logger = this.n; Logger.i$default(logger, "MediaEngineLegacy", "Connecting with options: " + aVar, null, 4, null); c cVar = new c(this); c.a.q.c cVar2 = this.l; Logger logger2 = this.n; u uVar = this.f224c; List list = this.g; if (list == null) { m.throwUninitializedPropertyAccessException("supportedVideoCodecs"); } e eVar = new e(cVar2, logger2, uVar, discord, list, type, j2, aVar, d0.t.m.listOf(cVar)); this.d.add(eVar); n(new b(eVar)); return eVar; } @Override // com.discord.rtcconnection.mediaengine.MediaEngine public synchronized List getConnections() { return u.toList(this.d); } @Override // com.discord.rtcconnection.mediaengine.MediaEngine public void h(MediaEngine.OpenSLUsageMode openSLUsageMode) { m.checkNotNullParameter(openSLUsageMode, "openSLUsageMode"); if (this.f != null) { Logger.e$default(this.n, "MediaEngineLegacy", "setting openSLUsageMode too late", null, null, 12, null); } this.h = openSLUsageMode; } @Override // com.discord.rtcconnection.mediaengine.MediaEngine public Discord i() { return this.f; } @Override // com.discord.rtcconnection.mediaengine.MediaEngine public void j(Function1 function1) { m.checkNotNullParameter(function1, "devicesCallback"); p(); Discord discord = this.f; if (discord != null) { discord.getVideoInputDevices(new s(function1)); } } @Override // com.discord.rtcconnection.mediaengine.MediaEngine public void k(boolean z2) { this.e = z2; Discord discord = this.f; if (discord != null) { discord.setAudioInputEnabled(z2); } } @Override // com.discord.rtcconnection.mediaengine.MediaEngine public void l(Function1 function1) { if (function1 != null) { p(); Discord discord = this.f; if (discord != null) { discord.setLocalVoiceLevelChangedCallback(new g(function1)); return; } return; } Discord discord2 = this.f; if (discord2 != null) { discord2.setLocalVoiceLevelChangedCallback(null); } } public final void n(Function1 function1) { try { function1.invoke(this.k); } catch (Exception e2) { Logger.e$default(this.n, "MediaEngineLegacy", "Error in listener", e2, null, 8, null); } } /* JADX WARN: Multi-variable type inference failed */ /* JADX WARNING: Unknown variable types count: 1 */ public final Future o(Function0 function0) { c.a.q.c cVar = this.l; if (function0 != null) { function0 = new t(function0); } return cVar.submit((Runnable) function0); } public final void p() { if (this.f == null) { Logger logger = this.n; StringBuilder P = c.d.b.a.a.P("initializing voice engine. OpenSL ES: "); P.append(this.m); P.append(", OpenSL usage mode: "); P.append(this.h); Logger.i$default(logger, "MediaEngineLegacy", P.toString(), null, 4, null); int ordinal = this.m.ordinal(); boolean z2 = false; if (ordinal == 0) { if (this.h == MediaEngine.OpenSLUsageMode.ALLOW_LIST) { z2 = this.q.contains(Build.MODEL); } else if (!this.r.contains(Build.MODEL)) { z2 = true; } Logger logger2 = this.n; StringBuilder P2 = c.d.b.a.a.P("OpenSL ES default. mode: "); P2.append(this.h); P2.append(", enableOpenSL: "); P2.append(z2); P2.append(", model: '"); Logger.i$default(logger2, "MediaEngineLegacy", c.d.b.a.a.G(P2, Build.MODEL, '\''), null, 4, null); WebRtcAudioManager.setBlacklistDeviceForOpenSLESUsage(!z2); } else if (ordinal == 1) { WebRtcAudioManager.setBlacklistDeviceForOpenSLESUsage(false); } else if (ordinal == 2) { WebRtcAudioManager.setBlacklistDeviceForOpenSLESUsage(true); } Logging.externalReporter = new i(this); try { Discord discord = new Discord(this.j, 2); c.a.q.k0.g gVar = this.o; if (gVar.e) { discord.enableBuiltInAEC(true, new h(gVar, discord, this)); } discord.setAudioInputEnabled(this.e); this.f = discord; } catch (ExceptionInInitializerError e2) { Logger.e$default(this.n, "MediaEngineLegacy", "Unable to initialize voice engine.", e2, null, 8, null); } catch (UnsatisfiedLinkError e3) { Logger.e$default(this.n, "MediaEngineLegacy", "Unable to initialize voice engine.", e3, null, 8, null); } catch (Throwable th) { Logger.e$default(this.n, "MediaEngineLegacy", "Unable to initialize voice engine, new error discovered", th, null, 8, null); } if (this.f != null) { n(j.i); } } } }