新浪彩票 v0.96.37版本的 MD5 值为:0c7ddce345383506e2959f5d75bdceab
以下内容为反编译后的 e.java 源代码,内容仅作参考
package com.netease.nrtc.engine.impl;
import ScQQfj7RBI9EASOsKPvc.Dk2cftRKk79bPCa4V9xt.C1672;
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Point;
import android.net.NetworkInfo;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Build;
import android.os.Handler;
import android.os.Looper;
import android.os.PowerManager;
import android.os.SystemClock;
import android.text.TextUtils;
import android.util.LongSparseArray;
import android.util.Pair;
import android.util.SparseArray;
import android.view.Display;
import android.view.WindowManager;
import com.alibaba.fastjson.parser.JSONLexer;
import com.meizu.cloud.pushsdk.constants.PushConstants;
import com.netease.nrtc.b.c;
import com.netease.nrtc.debug.INrtcDebugLocalEncodeDecodeVideo;
import com.netease.nrtc.engine.rawapi.IRtcEngine;
import com.netease.nrtc.engine.rawapi.IRtcEventHandler;
import com.netease.nrtc.engine.rawapi.IRtcRoomServerHandler;
import com.netease.nrtc.engine.rawapi.RtcAgcConfig;
import com.netease.nrtc.engine.rawapi.RtcCode;
import com.netease.nrtc.engine.rawapi.RtcConfig;
import com.netease.nrtc.engine.rawapi.RtcLiveCompositingLayout;
import com.netease.nrtc.engine.rawapi.RtcParameters;
import com.netease.nrtc.engine.rawapi.RtcServerAddresses;
import com.netease.nrtc.engine.rawapi.VoiceRxStatistics;
import com.netease.nrtc.internal.ClientSocks5Info;
import com.netease.nrtc.internal.ConnectInfo;
import com.netease.nrtc.internal.LoginExtraConfig;
import com.netease.nrtc.internal.LoginResInfo;
import com.netease.nrtc.internal.NEMediaEngine;
import com.netease.nrtc.internal.NEMediaEngineConfig;
import com.netease.nrtc.internal.NEMediaEngineSink;
import com.netease.nrtc.internal.PeopleJoinInfo;
import com.netease.nrtc.internal.PublishVideoProfile;
import com.netease.nrtc.internal.RemoteSubscribeLocalInfo;
import com.netease.nrtc.internal.SessionInfo;
import com.netease.nrtc.monitor.j;
import com.netease.nrtc.monitor.statistics.c;
import com.netease.nrtc.monitor.statistics.d;
import com.netease.nrtc.rec.a;
import com.netease.nrtc.sdk.audio.AudioFrame;
import com.netease.nrtc.sdk.audio.IPlayAudioCallBack;
import com.netease.nrtc.sdk.audio.IRemoteAudioCallBack;
import com.netease.nrtc.sdk.common.EglContextWrapper;
import com.netease.nrtc.sdk.common.VideoFilterParameter;
import com.netease.nrtc.sdk.common.statistics.NetStats;
import com.netease.nrtc.sdk.common.statistics.RtcStats;
import com.netease.nrtc.sdk.common.statistics.SessionStats;
import com.netease.nrtc.sdk.video.IVideoCapturer;
import com.netease.nrtc.sdk.video.VideoFrame;
import com.netease.nrtc.stats.AVSyncStat;
import com.netease.nrtc.stats.AudioConfigStats;
import com.netease.nrtc.stats.AudioRxInfo;
import com.netease.nrtc.stats.AudioStats;
import com.netease.nrtc.stats.DecodeStatInfo;
import com.netease.nrtc.stats.EncodeStatInfo;
import com.netease.nrtc.stats.NetStatInfo;
import com.netease.nrtc.stats.RemoteClientStats;
import com.netease.nrtc.stats.VideoJitterStats;
import com.netease.nrtc.utility.a.c;
import com.netease.nrtc.utility.c.b;
import com.netease.nrtc.utility.l;
import com.netease.nrtc.utility.n;
import com.netease.nrtc.utility.video.VideoUtils;
import com.netease.nrtc.video.a;
import com.netease.nrtc.video.codec.b;
import com.netease.nrtc.video.render.IVideoRender;
import com.netease.nrtc.voice.AudioMixing;
import com.netease.nrtc.voice.device.AudioDeviceParameters;
import com.netease.nrtc.voice.device.b.e;
import com.netease.nrtc.voice.effect.AudioEffectLoader;
import com.netease.nrtc.voice.frame.WrappedNativeAudioFrame;
import com.netease.yunxin.base.annotation.Privilege;
import com.netease.yunxin.base.crypto.MD5;
import com.netease.yunxin.base.thread.ThreadUtils;
import com.netease.yunxin.base.trace.Trace;
import com.netease.yunxin.base.utils.Checker;
import com.netease.yunxin.base.utils.Compatibility;
import com.netease.yunxin.base.utils.FileUtils;
import com.netease.yunxin.base.utils.Size;
import com.netease.yunxin.base.utils.StringUtils;
import com.netease.yunxin.base.utils.SystemPermissionUtils;
import com.netease.yunxin.base.utils.jni.LibraryUtils;
import ewUlBWKNoApzb1Mnhgn4.RyxNgHab7wg9M2LHo626.O6AgNJgW1GmSRcLCckPu.PmpzgmtwkmMb39lNWcsm.v4rqru3PdyhrqRZkuHAG.C3865;
import ewUlBWKNoApzb1Mnhgn4.RyxNgHab7wg9M2LHo626.O6AgNJgW1GmSRcLCckPu.PmpzgmtwkmMb39lNWcsm.v4rqru3PdyhrqRZkuHAG.C3866;
import ewUlBWKNoApzb1Mnhgn4.RyxNgHab7wg9M2LHo626.O6AgNJgW1GmSRcLCckPu.yDr5rnM22EGc6cSogojL.C3890;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
import javax.microedition.khronos.egl.EGLContext;
import org.json.JSONObject;
import uN6ZT9mbO48DshpK4Gta.tuTnrQl15gwcjciRsKuT.tuTnrQl15gwcjciRsKuT.C5923;
public class e extends IRtcEngine implements k, NEMediaEngineSink, a.InterfaceC3320a, a.b, c.a, b.c, com.netease.nrtc.video.a.c, com.netease.nrtc.voice.a, e.a {
private static volatile int a;
private n F;
private int J;
private final com.netease.nrtc.monitor.j M;
private final com.netease.nrtc.monitor.f N;
private com.netease.nrtc.utility.b.a O;
private int aA;
private int aB;
private int aC;
private boolean aD;
private boolean aE;
private int aF;
private boolean aG;
private int aH;
private boolean aI;
private String aJ;
private int aK;
private RtcLiveCompositingLayout aL;
private boolean aM;
private boolean aN;
private boolean aO;
private boolean aP;
private int aQ;
private int aR;
private int aS;
private int aT;
private int aU;
private int aV;
private String aW;
private boolean aX;
private boolean aY;
private boolean aZ;
private AudioEffectLoader ac;
private volatile boolean af;
private volatile boolean ag;
private EglContextWrapper ah;
private INrtcDebugLocalEncodeDecodeVideo an;
private com.netease.nrtc.video.a aq;
private boolean au;
private boolean av;
private boolean aw;
private int ax;
private boolean ay;
private boolean az;
private IRtcEventHandler b;
private final j.a ba;
private String c;
private RtcConfig d;
private Map<Long, j> e;
private Map<Long, j> f;
private NEMediaEngine g;
private com.netease.nrtc.rec.a h;
private boolean i;
private com.netease.nrtc.voice.b j;
private long[] k;
private int[] l;
private com.netease.nrtc.voice.device.b.e m;
private com.netease.nrtc.video.a.d n;
private int p;
private int q;
private int r;
private int s;
private boolean t;
private int u;
private Handler v;
private WifiManager.WifiLock w;
private PowerManager.WakeLock x;
private g o = new g();
private AtomicInteger y = new AtomicInteger(1);
private AtomicInteger z = new AtomicInteger(0);
private AtomicBoolean A = new AtomicBoolean(false);
private AtomicBoolean B = new AtomicBoolean(false);
private AtomicBoolean C = new AtomicBoolean(false);
private AtomicInteger D = new AtomicInteger(0);
private AtomicBoolean E = new AtomicBoolean(false);
private int G = -1;
private boolean H = false;
private boolean I = false;
private String K = "";
private String L = "";
private volatile int P = 0;
private AtomicInteger Q = new AtomicInteger(-1);
private int R = 2;
private int S = -1;
private volatile SparseArray<com.netease.nrtc.monitor.statistics.e> T = new SparseArray<>(3);
private int U = 2;
private int V = 3;
private int W = 3;
private int X = 2;
private int Y = 1;
private boolean Z = false;
private int aa = 1;
private LongSparseArray<PeopleJoinInfo> ab = new LongSparseArray<>();
private Map<Long, b> ad = new ConcurrentHashMap(6);
private final List<RemoteSubscribeLocalInfo> ae = new ArrayList(3);
private com.netease.nrtc.internal.b ai = new com.netease.nrtc.internal.b();
private boolean aj = true;
private boolean ak = true;
private int al = 1;
private int am = 0;
private int ao = 1;
private int ap = 1;
private int ar = 2;
private boolean as = false;
private int at = 1;
public static abstract class a implements Runnable {
private IRtcEventHandler a;
public a(IRtcEventHandler iRtcEventHandler) {
this.a = iRtcEventHandler;
}
public abstract void a(IRtcEventHandler iRtcEventHandler);
@Override
public void run() {
IRtcEventHandler iRtcEventHandler = this.a;
if (iRtcEventHandler != null) {
a(iRtcEventHandler);
}
}
}
public e(Context context, String str, String str2, boolean z, int i, RtcServerAddresses rtcServerAddresses, IRtcEventHandler iRtcEventHandler) throws Exception {
String str3;
j.a aVar = new j.a() {
private HashSet<Long> b = new HashSet<>();
@Override
public boolean a() {
return e.this.A.get();
}
@Override
public HashSet<Long> b() {
this.b.clear();
for (b bVar : e.this.ad.values()) {
if (bVar.c()) {
this.b.add(Long.valueOf(bVar.a()));
}
}
return this.b;
}
@Override
public com.netease.nrtc.video.a.g c(long j) {
com.netease.nrtc.video.a.g j2 = e.this.n.j(j);
return j2 == null ? new com.netease.nrtc.video.a.g() : j2;
}
@Override
public void a(final SessionStats sessionStats) {
final int i2 = sessionStats.sessionState;
if (i2 == 0) {
Iterator<SessionStats.SimulcastVideo> it = sessionStats.simulcastVideos.iterator();
while (it.hasNext()) {
SessionStats.SimulcastVideo next = it.next();
e.this.g.b(next.txVideoEncodedBitrate, next.videoType, next.txVideoEncodedFrameRate, next.txVideoSkipFrameRate);
}
}
e eVar = e.this;
eVar.a(eVar.v, new a(e.this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler2) {
int i3 = i2;
if (i3 != 0) {
if (i3 == 1) {
iRtcEventHandler2.onLeaveChannel(sessionStats);
return;
} else if (i3 != 2) {
return;
}
}
iRtcEventHandler2.onSessionStats(sessionStats);
}
});
}
@Override
public boolean c() {
return e.this.af;
}
@Override
public void a(c.a aVar2) {
aVar2.a(e.this.R);
}
@Override
public AVSyncStat b(long j) {
if (e.this.g != null) {
return e.this.g.d(j);
}
return AVSyncStat.obtain();
}
@Override
public void a(d.a aVar2) {
AudioConfigStats obtain;
AudioStats obtain2;
SessionInfo obtain3;
long j;
NetStatInfo obtain4;
com.netease.nrtc.video.a.g gVar;
DecodeStatInfo decodeStatInfo;
VideoJitterStats videoJitterStats;
AnonymousClass29 anonymousClass29 = this;
d.a aVar3 = aVar2;
if (e.this.j != null) {
obtain = e.this.j.m();
obtain2 = e.this.j.n();
} else {
obtain = AudioConfigStats.obtain();
obtain2 = AudioStats.obtain();
}
AudioConfigStats audioConfigStats = obtain;
AudioStats audioStats = obtain2;
long j2 = 0;
if (e.this.g != null) {
SessionInfo g = e.this.g.g();
NetStatInfo h = e.this.g.h();
long f = e.this.g.f();
j = e.this.g.e();
obtain3 = g;
obtain4 = h;
j2 = f;
} else {
obtain3 = SessionInfo.obtain();
j = 0;
obtain4 = NetStatInfo.obtain();
}
com.netease.nrtc.video.a.a e = e.this.n.e(0);
String n = e.this.n.n();
com.netease.nrtc.profile.a.b().d(n);
aVar3.a(obtain4.e()).d(obtain4.e(), (int) obtain4.f()).c(e.c).a(audioStats.c(), obtain4.h(), audioStats.d()).b(audioStats.e()).d(obtain4.g()).a(audioStats.a(), audioStats.b()).b(obtain4.i(), obtain4.j(), obtain4.k()).b(obtain4.l(), obtain4.m()).e(obtain4.n()).f(obtain4.p()).g(obtain4.q()).b(j2).c(j).h(obtain4.a()).i(obtain4.d()).j(obtain4.b()).k(obtain4.c());
aVar2.a().setTurnIp(obtain3.a()).setProxyIp(obtain3.b()).setChannelId(e.this.d.channel).setAudioJBStrategy(e.this.U).setQosGrayScaleType1(e.this.Y).setQosGrayScaleType2(e.this.X).setQosGrayScaleType3(e.this.aa).setQosGrayScaleType4(e.this.V).setUid(e.this.d.userId).setConnectState(e.this.J).setPushUrl((e.this.aI && e.this.aD) ? e.this.aJ : "").setPeerToPeer(e.this.I).setApmAecDelay(audioConfigStats.a()).setApmAecNonlinear(audioConfigStats.b()).setApmAecType(audioConfigStats.c()).setApmAecCompressLevel(audioConfigStats.d()).setApmNsType(audioConfigStats.e()).setApmNsLevel(audioConfigStats.f()).setLocalSimulcastModel(obtain4.o()).setVideoCaptureName(n);
synchronized (e.this.ae) {
try {
for (RemoteSubscribeLocalInfo remoteSubscribeLocalInfo : e.this.ae) {
int a2 = remoteSubscribeLocalInfo.a();
com.netease.nrtc.video.a.a e2 = e.this.n.e(a2);
try {
NetStatInfo netStatInfo = obtain4;
aVar2.a(a2, obtain4.a(a2), obtain4.d(a2), obtain4.e(a2), obtain4.f(a2), obtain4.b(a2), obtain4.c(a2), e.this.s(a2).b, e.this.s(a2).a, obtain4.g(a2), obtain4.h(a2), obtain4.i(a2), e2.a, e2.b, obtain4.j(a2), obtain4.k(a2), obtain4.l(a2), obtain4.m(a2));
anonymousClass29 = this;
EncodeStatInfo g2 = e.this.n.g(a2);
if (g2 == null) {
g2 = EncodeStatInfo.obtain();
}
aVar2.a(a2, netStatInfo.a(a2));
aVar2.a(a2, g2.a(), g2.b(), g2.f(), g2.d(), g2.e(), g2.g(), g2.c());
com.netease.nrtc.c.a.a().a(a2, g2.c());
g2.recycle();
obtain4 = netStatInfo;
aVar3 = aVar2;
} catch (Throwable th) {
th = th;
throw th;
}
}
NetStatInfo netStatInfo2 = obtain4;
audioConfigStats.recycle();
audioStats.recycle();
netStatInfo2.recycle();
obtain3.recycle();
for (Long l : e.this.e.keySet()) {
long longValue = l.longValue();
if (longValue != e.this.d.userId) {
RemoteClientStats remoteClientStats = null;
if (e.this.n == null || e.this.g == null) {
gVar = null;
decodeStatInfo = null;
videoJitterStats = null;
} else {
com.netease.nrtc.video.a.g j3 = e.this.n.j(longValue);
DecodeStatInfo k = e.this.n.k(longValue);
RemoteClientStats a3 = e.this.g.a(longValue);
videoJitterStats = e.this.g.b(longValue);
decodeStatInfo = k;
gVar = j3;
remoteClientStats = a3;
}
if (remoteClientStats == null) {
remoteClientStats = RemoteClientStats.obtain();
}
RemoteClientStats remoteClientStats2 = remoteClientStats;
if (videoJitterStats == null) {
videoJitterStats = VideoJitterStats.obtain();
}
VideoJitterStats videoJitterStats2 = videoJitterStats;
if (gVar == null) {
gVar = new com.netease.nrtc.video.a.g();
}
com.netease.nrtc.video.a.g gVar2 = gVar;
if (decodeStatInfo == null) {
decodeStatInfo = DecodeStatInfo.obtain();
}
DecodeStatInfo decodeStatInfo2 = decodeStatInfo;
if (!e.this.p(longValue)) {
gVar2.f = -1;
videoJitterStats2.setVideoStuckTimes(-1L);
}
aVar2.a(longValue, remoteClientStats2.a(), remoteClientStats2.b()).a(longValue, (int) videoJitterStats2.a()).a(longValue, remoteClientStats2.k(), remoteClientStats2.l()).a(longValue, gVar2.d, gVar2.e, gVar2.c).b(longValue, decodeStatInfo2.c(), decodeStatInfo2.a(), decodeStatInfo2.b()).b(longValue, videoJitterStats2.c(), videoJitterStats2.b()).b(longValue, remoteClientStats2.c(), (int) remoteClientStats2.d()).c(longValue, remoteClientStats2.g(), remoteClientStats2.h()).d(longValue, remoteClientStats2.f(), remoteClientStats2.e()).c(longValue, (int) videoJitterStats2.d()).b(longValue, gVar2.f).e(longValue, remoteClientStats2.i(), remoteClientStats2.j());
com.netease.nrtc.c.a.a().d(longValue, decodeStatInfo2.a());
remoteClientStats2.recycle();
videoJitterStats2.recycle();
decodeStatInfo2.recycle();
}
}
} catch (Throwable th2) {
th = th2;
}
}
}
@Override
public int a(long[] jArr) {
if (e.this.j != null) {
return e.this.j.a(jArr);
}
return 0;
}
@Override
public AudioRxInfo a(long j) {
if (e.this.g != null) {
AudioRxInfo c = e.this.g.c(j);
if (!e.this.ag) {
c.setStuckTimeInterval(-1L);
}
return c;
}
return AudioRxInfo.obtain();
}
@Override
public void a(com.netease.nrtc.utility.d dVar, boolean z2) {
for (Long l : e.this.e.keySet()) {
long longValue = l.longValue();
if (!z2 || longValue != e.this.d.userId) {
dVar.accept(longValue);
}
}
}
};
this.ba = aVar;
if (Compatibility.runningOnJellyBeanOrHigher()) {
Checker.checkArgument(context != null, "Context is null!");
Checker.checkArgument(iRtcEventHandler != null, "Handler is null!");
Checker.checkArgument(StringUtils.isNotEmpty(str2), "Log dir is empty!");
Checker.checkArgument(StringUtils.isNotEmpty(str), "App key is empty!");
b();
a(context, str, z, i);
this.v = new Handler(Looper.getMainLooper());
this.b = iRtcEventHandler;
this.c = str2;
d();
l.f(com.netease.nrtc.engine.impl.a.b);
l.e(com.netease.nrtc.engine.impl.a.b);
com.netease.nrtc.utility.a.a();
j();
this.A.set(false);
this.e = new ConcurrentHashMap();
this.f = new ConcurrentHashMap();
str3 = "https://statistic.live.126.net/statistic/realtime/sdkinfo";
String str4 = "https://lbs.netease.im/cc/nrtc/v2";
if (rtcServerAddresses != null) {
Trace.i("RtcEngineImpl", rtcServerAddresses.toString());
if (com.netease.nrtc.utility.a.a(rtcServerAddresses.roomServer)) {
h.a(rtcServerAddresses.roomServer);
}
str3 = com.netease.nrtc.utility.a.a(rtcServerAddresses.statisticsServer) ? rtcServerAddresses.statisticsServer : "https://statistic.live.126.net/statistic/realtime/sdkinfo";
if (com.netease.nrtc.utility.a.a(rtcServerAddresses.functionServer)) {
com.netease.nrtc.monitor.d.a(rtcServerAddresses.functionServer);
}
if (com.netease.nrtc.utility.a.a(rtcServerAddresses.compatServer)) {
str4 = rtcServerAddresses.compatServer;
}
}
com.netease.nrtc.b.a.a(com.netease.nrtc.engine.impl.a.b, str4);
com.netease.nrtc.b.a.a(false, com.netease.nrtc.engine.impl.a.j);
com.netease.nrtc.video.a.e.a();
f();
com.netease.nrtc.utility.c.b.a().a(this);
b(true);
this.m = com.netease.nrtc.voice.device.b.e.a(com.netease.nrtc.engine.impl.a.b);
this.F = new n(context, this.v) {
@Override
public void a(int i2) {
e.this.g(i2);
}
};
if (!com.netease.nrtc.engine.impl.a.h) {
this.M = new com.netease.nrtc.monitor.j(str, str3, aVar);
} else {
this.M = null;
this.aq = new com.netease.nrtc.video.a(new a.InterfaceC3324a() {
@Override
public final void onTick(Set set) {
com.netease.nrtc.engine.impl.e.this.a(set);
}
});
}
this.O = com.netease.nrtc.utility.b.a.a(this.c);
g();
h();
this.an = C3890.m17588();
this.N = new com.netease.nrtc.monitor.f();
com.netease.nrtc.c.a(context, str, rtcServerAddresses, str2);
com.netease.nrtc.c.a(new com.netease.nrtc.c.c.a());
Trace.d("Connect-Status-Test-Log", "status : " + this.z.get());
return;
}
throw new RuntimeException("Require sdk level 16 or higher!");
}
private int A() {
WindowManager windowManager = (WindowManager) com.netease.nrtc.engine.impl.a.b.getSystemService("window");
if (windowManager != null) {
Display defaultDisplay = windowManager.getDefaultDisplay();
Point point = new Point();
if (Compatibility.runningOnJellyBeanMR1OrHigher()) {
defaultDisplay.getRealSize(point);
} else {
defaultDisplay.getSize(point);
}
int i = point.x;
int i2 = point.y;
Trace.i("RtcEngineImpl", "Display id " + defaultDisplay.getDisplayId() + ":" + i + "x" + i2);
return com.netease.nrtc.video.a.b.a(i, i2);
}
return -1;
}
private void B() {
Trace.i("RtcEngineImpl", "stopAllVoicePlayout");
com.netease.nrtc.voice.b bVar = this.j;
if (bVar != null) {
bVar.h();
}
}
private boolean C() {
Trace.i("RtcEngineImpl", "startVoiceSend");
com.netease.nrtc.utility.a.c.a().a(this.aM, D());
int i = 0;
if (y() && com.netease.nrtc.b.a.a(com.netease.nrtc.b.c.Z, false)) {
i = 60;
}
com.netease.nrtc.voice.b.e a2 = com.netease.nrtc.voice.a.a.a(this.s, a == 44 ? 80 : i, com.netease.nrtc.utility.a.c.a().c().c, this.aM, D(), true, true);
this.j.a(a2);
this.j.c(this.aO);
this.g.c((int) a2.a);
this.g.e(a2.d);
this.g.d(a2.b);
this.Q.set(D() ? 2 : 1);
return Checker.traceFuncState(this.j.a(this.Q.get(), a2), "RtcEngineImpl", "voe#startSend");
}
private boolean D() {
return this.aM && this.P == 1;
}
private void E() {
Checker.traceFuncState(this.j.f(), "RtcEngineImpl", "voe#stopSend");
}
private void F() {
Trace.i("RtcEngineImpl", "startVideoSend");
if (!this.H) {
Trace.e("RtcEngineImpl", "video unsupported!");
return;
}
j jVar = this.e.get(Long.valueOf(this.d.userId));
if (jVar != null) {
int n = n(jVar.b);
Trace.i("RtcEngineImpl", "local video protocol ver -> " + n);
this.n.b(this.d.userId, n);
this.n.a(this.aR);
this.n.a(this.d.userId, this.r, this.t, G());
Z();
if (this.aN) {
this.n.d();
} else {
this.n.c();
}
}
}
private boolean G() {
int i = this.R;
return i == 2 || i == 1;
}
private boolean H() {
Trace.i("RtcEngineImpl", "stopVideoSend");
this.n.d();
Trace.i("RtcEngineImpl", "stopVideoSend done");
return true;
}
private int I() {
if (this.y.get() != 3) {
return -1;
}
int i = -1001;
StringBuilder sb = new StringBuilder();
if (!k() && this.H) {
if (this.aj && !this.af) {
i = Y();
}
if (this.ak) {
Collection<b> values = this.ad.values();
sb.append(" sub: [");
for (b bVar : values) {
int a2 = a(bVar.d());
if (a2 != -1) {
int e = e(bVar.a(), a2);
sb.append(bVar.a());
sb.append(":");
sb.append(e);
sb.append(" ");
}
}
sb.append("]");
}
} else {
if (this.aj || this.af) {
i = ad();
}
if (!this.H) {
sb.append(" unsub: [");
for (b bVar2 : this.ad.values()) {
if (bVar2.c()) {
int o = o(bVar2.a());
sb.append(bVar2.a());
sb.append(":");
sb.append(o);
sb.append(" ");
}
}
sb.append("]");
}
}
Trace.i("RtcEngineImpl", -300000L, "update auto publish status , video = " + this.H + " , audience = " + k() + " , set pub video = " + this.af + " , auto pub = " + this.aj + " , pubUnPubResult = " + i + ((Object) sb));
return i;
}
private boolean J() {
Trace.i("RtcEngineImpl", "switchToVideoMode");
this.m.a(0);
this.m.a(false);
if (!k()) {
F();
}
k(-1L);
this.g.b(this.H);
L();
return true;
}
private boolean K() {
Trace.i("RtcEngineImpl", "switchToAudioMode");
this.m.a(this.ay);
H();
stopVideoPreview();
n(-1L);
this.g.b(this.H);
L();
return true;
}
private void L() {
if (z()) {
return;
}
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.g);
}
private boolean M() {
if (this.i) {
return true;
}
String format = new SimpleDateFormat("yyyyMMddHHmmss", Locale.getDefault()).format(new Date());
File file = null;
if (SystemPermissionUtils.checkWriteExternalStoragePermission(com.netease.nrtc.engine.impl.a.b)) {
file = com.netease.nrtc.engine.impl.a.b.getExternalFilesDir("record");
} else {
Trace.w("RtcEngineImpl", "init local record warning: no write external storage permission!");
}
if (file == null) {
Trace.w("RtcEngineImpl", "init local record warning: try internal dir");
file = com.netease.nrtc.engine.impl.a.b.getDir("record", 0);
}
if (file == null) {
Trace.e("RtcEngineImpl", "init local record error: file is null");
return false;
}
File file2 = new File(file, format);
file2.deleteOnExit();
if (file2.mkdirs()) {
this.h.a(this.aU);
boolean a2 = this.h.a(this, this, file2.getAbsolutePath());
this.i = a2;
return a2;
}
Trace.e("RtcEngineImpl", "init local record error: mk dir failed");
return false;
}
private void N() {
if (y()) {
com.netease.nrtc.video.a.a k = this.n.k();
com.netease.nrtc.video.a.a l = this.n.l();
if (this.e.size() > 1) {
if (k.c > 15) {
this.n.b(k.a, k.b, l.a, l.b, 15);
return;
}
return;
}
this.n.b(k.a, k.b, l.a, l.b, this.aK);
}
}
private void O() {
com.netease.nrtc.c.o.a.a(com.netease.nrtc.engine.impl.a.b, this.d, this.c, w());
}
private void P() {
Q();
R();
}
private void Q() {
NEMediaEngine nEMediaEngine = this.g;
if (nEMediaEngine != null) {
int i = this.R;
int i2 = this.S;
if (i2 == -1) {
i2 = 1;
}
nEMediaEngine.a(i, i2, com.netease.nrtc.utility.c.c.a(com.netease.nrtc.engine.impl.a.b), this.P, this.aM, this.Y, this.V, this.W, this.Z, this.X, this.aK);
}
}
private void R() {
int i = this.aS;
this.g.a(i > 0 ? i / 1000 : -1, -1);
}
private void S() {
if (this.y.get() != 3) {
Trace.e("RtcEngineImpl", "after login try publish , but status is :" + this.y.get());
return;
}
e(false);
int i = -1001;
int Y = (!k() && this.H && (this.aj || this.af)) ? Y() : -1001;
if (this.ak || this.ag) {
i = ae();
}
Trace.i("RtcEngineImpl", -300000L, "after login , pub result = " + Y + ", sub audio = " + i + ", auto pub = " + this.aj + ", auto sub = " + this.ak + ", pre pub = " + this.af + ", pre sub = " + this.ag);
}
private void T() {
if (this.d == null) {
return;
}
com.netease.nrtc.c.a(new com.netease.nrtc.c.j.a(this.d.channel, com.netease.nrtc.c.a.a().c(), com.netease.nrtc.c.a.a().b()));
}
private void U() {
ConnectInfo connectInfo = new ConnectInfo();
connectInfo.c(com.netease.nrtc.voice.a.a.h(this.aD));
connectInfo.b(com.netease.nrtc.video.a.e.a(this.aD));
connectInfo.a(com.netease.nrtc.video.a.e.f(this.aD));
connectInfo.d(NEMediaEngine.a());
connectInfo.e(NEMediaEngine.a());
connectInfo.b(0);
connectInfo.a(com.netease.nrtc.internal.a.a(10));
onConnected(connectInfo);
}
public void V() {
Trace.i("RtcEngineImpl", "onLogoutFinished");
NEMediaEngine.a = true;
NEMediaEngine.c = SystemClock.elapsedRealtime();
NEMediaEngine nEMediaEngine = this.g;
if (nEMediaEngine != null) {
nEMediaEngine.a(false);
}
com.netease.nrtc.monitor.j jVar = this.M;
if (jVar != null) {
jVar.d();
} else {
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onLeaveChannel(new SessionStats());
}
});
}
this.z.set(0);
Trace.d("Connect-Status-Test-Log", "status : " + this.z.get());
}
private long W() {
for (Long l : this.e.keySet()) {
long longValue = l.longValue();
if (longValue != this.d.userId) {
return longValue;
}
}
return 0L;
}
private void X() {
if (this.y.get() == 3 && !k() && this.H) {
if (!this.aj && !this.af) {
Z();
Trace.i("RtcEngineImpl", -300000L, "try re publish video , but not publish before");
return;
}
int Y = Y();
Trace.i("RtcEngineImpl", -300000L, "try re publish video , result = " + Y);
}
}
private int Y() {
if (this.y.get() != 3) {
Trace.w("RtcEngineImpl", -300000L, "publish video inner err , status = " + this.y.get());
return -1;
} else if (this.at != 1) {
Trace.w("RtcEngineImpl", -300000L, "publish video inner err , communicateMode = " + this.at);
return -1;
} else {
com.netease.nrtc.video.a.a ab = ab();
com.netease.nrtc.utility.k.a(this.g.b(com.netease.nrtc.video.a.f.a(ab.a, ab.b)));
ArrayList<PublishVideoProfile> arrayList = new ArrayList<>();
arrayList.add(new PublishVideoProfile(0, ab.a, ab.b, this.aK));
if (this.al == 1) {
com.netease.nrtc.video.a.a a2 = com.netease.nrtc.utility.k.a(ab);
arrayList.add(new PublishVideoProfile(2, a2.a, a2.b, this.aK));
}
int a3 = this.g.a(arrayList);
if (a3 == 0) {
if (this.n == null) {
Trace.w("RtcEngineImpl", -300000L, "publish video inner err , vie2 is null");
return -1;
}
Z();
this.af = true;
}
return a3;
}
}
private void Z() {
com.netease.nrtc.video.a.a ab = ab();
com.netease.nrtc.video.a.a ac = ac();
this.n.b(ab.a, ab.b, ac.a, ac.b, this.aK);
}
private void aa() {
if (this.aB == 0) {
return;
}
int a2 = com.netease.nrtc.video.a.e.a(com.netease.nrtc.engine.impl.a.b, this.aD);
if (com.netease.nrtc.video.a.e.b(this.aA, a2) > com.netease.nrtc.video.a.e.b(this.aB, a2)) {
this.aB = this.aA;
}
}
private com.netease.nrtc.video.a.a ab() {
int b = this.o.b(com.netease.nrtc.video.a.e.b(this.aA, com.netease.nrtc.video.a.e.a(com.netease.nrtc.engine.impl.a.b, this.aD)));
int i = this.u;
if (i == 0) {
i = b;
}
return com.netease.nrtc.video.a.f.a(p(Math.min(i, b)));
}
private com.netease.nrtc.video.a.a ac() {
if (this.A.get()) {
if (this.aB == 0) {
return ab();
}
return com.netease.nrtc.video.a.f.a(p(com.netease.nrtc.video.a.e.b(this.aB, com.netease.nrtc.video.a.e.a(com.netease.nrtc.engine.impl.a.b, this.aD))));
}
int i = this.aB;
if (i == 0) {
i = this.aA;
}
if (!com.netease.nrtc.engine.impl.a.h) {
i = com.netease.nrtc.video.a.e.c(i, 4);
}
return com.netease.nrtc.video.a.f.a(com.netease.nrtc.video.a.e.b(i, com.netease.nrtc.video.a.e.a(com.netease.nrtc.engine.impl.a.b, this.aD)));
}
private int ad() {
int i = this.g.i();
if (i == 0) {
this.af = false;
com.netease.nrtc.monitor.j jVar = this.M;
if (jVar != null) {
jVar.a(-1);
}
this.n.e();
}
return i;
}
private int ae() {
return this.g.j();
}
private int af() {
return this.g.k();
}
private int ag() {
if (this.aD) {
if (k()) {
return -200;
}
if (this.aN) {
return -100;
}
return !this.H ? RtcCode.Subscribe.IS_AUDIO_MODE_ERR : this.aj ? -500 : 0;
}
return -600;
}
private int ah() {
if (this.aD) {
if (this.ak) {
return -500;
}
return this.am == 70 ? -1 : 0;
}
return -600;
}
public static int k(int i) {
if (i != 1) {
if (i != 2) {
if (i != 3) {
if (i != 4) {
return i != 5 ? 0 : 3005;
}
return 3004;
}
return 3003;
}
return 3002;
}
return 3001;
}
public static int l(int i) {
if (i != 1) {
if (i != 2) {
return i != 4 ? 0 : 3104;
}
return 3102;
}
return 3101;
}
public static int m(int i) {
if (i != 1) {
if (i != 2) {
if (i != 3) {
if (i != 4) {
if (i != 5) {
if (i != 10) {
return i != 11 ? 0 : 1111;
}
return 1110;
}
return 1005;
}
return 1004;
}
return 1003;
}
return 1002;
}
return 1001;
}
private static int n(int i) {
if (i == 12) {
return 1;
}
return i >= 13 ? 2 : 0;
}
private static int o(int i) {
if (i != 5) {
if (i != 6) {
return i;
}
return 5;
}
return 6;
}
private boolean q(int i) {
return (i == 0 || i == 1) ? false : true;
}
private boolean z() {
return this.aD;
}
@Override
public synchronized int disableVideo() {
Trace.i("RtcEngineImpl", "disable video");
if (this.H) {
this.H = false;
if (this.y.get() == 3) {
K();
}
I();
} else {
Trace.i("RtcEngineImpl", "video is already disabled");
}
if (!this.H) {
this.F.b();
}
return this.H ? -1 : 0;
}
@Override
public synchronized int dispose() throws IllegalStateException {
Trace.i("RtcEngineImpl", "dispose");
if (this.y.get() == 3) {
Trace.w("RtcEngineImpl", "dispose warning: need leave channel!");
leaveChannel();
}
EglContextWrapper eglContextWrapper = this.ah;
if (eglContextWrapper != null) {
eglContextWrapper.release();
}
this.ac.a();
com.netease.nrtc.monitor.e.a().c();
this.g.c();
this.j.b();
this.n.a();
com.netease.nrtc.monitor.j jVar = this.M;
if (jVar != null) {
jVar.b();
}
com.netease.nrtc.video.a aVar = this.aq;
if (aVar != null) {
aVar.b();
}
this.m.a();
com.netease.nrtc.utility.c.b.a().b(this);
com.netease.nrtc.c.a.a().d();
b(false);
com.netease.nrtc.profile.a.a().b();
this.j = null;
this.n = null;
this.m = null;
this.h = null;
this.F.b();
this.F = null;
this.b = null;
com.netease.nrtc.utility.j.d();
com.netease.nrtc.b.a.b();
this.O.a();
com.netease.nrtc.monitor.d.a();
String c = c(this.c);
if (FileUtils.isNotEmpty(c)) {
RtcConfig rtcConfig = this.d;
com.netease.nrtc.c.a(new com.netease.nrtc.c.e.a(rtcConfig != null ? rtcConfig.channel : 0L, c));
}
this.z.set(0);
Trace.d("Connect-Status-Test-Log", "status : " + this.z.get());
com.netease.nrtc.c.a();
Trace.i("RtcEngineImpl", "dispose done");
Trace.ReturnTrace();
return 0;
}
@Override
public synchronized int enableVideo() {
if (!this.H) {
this.H = true;
if (this.y.get() == 3) {
J();
}
I();
} else {
Trace.i("RtcEngineImpl", "video is already enabled");
}
if (this.H && !this.aG) {
this.F.a();
}
Trace.i("RtcEngineImpl", "enable video : " + this.H);
return this.H ? 0 : -2;
}
@Override
public int getConnectStatus() {
return this.z.get();
}
@Override
public synchronized RtcParameters getParameters(RtcParameters rtcParameters) {
RtcParameters rtcParameters2;
rtcParameters2 = new RtcParameters();
ArrayList<String> arrayList = new ArrayList();
Privilege privilege = l.c(com.netease.nrtc.engine.impl.a.b) ? Privilege.PROTECTED : Privilege.PUBLIC;
if (rtcParameters == null) {
arrayList.addAll(RtcParameters.getReadableKeys(privilege));
} else {
arrayList.addAll(RtcParameters.getReadableKeys(rtcParameters.keys(), privilege));
}
for (String str : arrayList) {
Object d = d(str);
if (d != null) {
try {
rtcParameters2.setObject(str, d);
} catch (Exception e) {
e.printStackTrace();
}
} else {
rtcParameters2.removeParameters(str);
}
}
return rtcParameters2;
}
@Override
public synchronized int getRole() {
return this.aC;
}
@Override
public synchronized boolean isAutoPublishVideo() {
return this.aj;
}
@Override
public synchronized boolean isAutoSubscribeAudio() {
return this.ak;
}
@Override
public synchronized boolean isAutoSubscribeVideo() {
return this.ak;
}
@Override
public synchronized boolean isMicrophoneMute() {
return this.j.v();
}
@Override
public synchronized boolean isSpeakerphoneOn() {
return this.m.b() == 0;
}
@Override
public synchronized int joinChannel(RtcConfig rtcConfig, long j) throws RuntimeException {
Trace.i("RtcEngineImpl", "joinChannel");
Checker.checkNotNull(rtcConfig, "join channel error [config is null]");
if (!this.y.compareAndSet(1, 2)) {
Trace.e("RtcEngineImpl", "joinChannel error (status not stop)");
return -1;
}
this.z.set(1);
Trace.d("Connect-Status-Test-Log", "status : " + this.z.get());
com.netease.nrtc.c.a(MD5.md5(rtcConfig.channel + ":" + rtcConfig.userId + System.currentTimeMillis()));
com.netease.nrtc.b.a.a(rtcConfig.grayReleased, com.netease.nrtc.engine.impl.a.j);
f fVar = rtcConfig.logTrace;
if (fVar != null && fVar.a()) {
this.O.a(fVar);
}
this.j.i(com.netease.nrtc.b.a.a(com.netease.nrtc.b.c.an, 0));
this.j.j(com.netease.nrtc.b.a.a(com.netease.nrtc.b.c.ap, 0));
if (!this.j.a(this.aM)) {
Trace.e("RtcEngineImpl", "joinChannel error (voe init error)");
this.z.set(0);
Trace.d("Connect-Status-Test-Log", "status : " + this.z.get());
return -2;
}
i();
a(rtcConfig);
com.netease.nrtc.monitor.j jVar = this.M;
if (jVar != null) {
jVar.c();
}
this.N.a();
boolean t = t();
if (t) {
this.y.set(3);
com.netease.nrtc.monitor.j jVar2 = this.M;
if (jVar2 != null) {
jVar2.a();
}
com.netease.nrtc.utility.a.c.a().a(com.netease.nrtc.engine.impl.a.b);
com.netease.nrtc.utility.a.c.a().a((c.a) this, true);
com.netease.nrtc.utility.c.b.a().a(com.netease.nrtc.engine.impl.a.b);
if (!com.netease.nrtc.profile.a.a().c()) {
com.netease.nrtc.profile.a.a().a(this.aZ);
com.netease.nrtc.profile.a.b().a(String.valueOf(rtcConfig.channel));
com.netease.nrtc.profile.a.b().a(this.aX);
com.netease.nrtc.profile.a.b().b(com.netease.nrtc.engine.impl.a.s);
com.netease.nrtc.b.b a2 = com.netease.nrtc.b.a.a();
com.netease.nrtc.profile.a.b().e(a2 != null ? a2.h() : "");
com.netease.nrtc.profile.a.a().a();
}
if (y()) {
int i = com.netease.nrtc.monitor.d.c;
RtcLiveCompositingLayout rtcLiveCompositingLayout = this.aL;
com.netease.nrtc.monitor.d.a(i, rtcLiveCompositingLayout == null ? 0 : rtcLiveCompositingLayout.mode + 1);
} else if (z()) {
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.b);
} else {
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.a);
}
} else {
this.y.set(1);
this.z.set(0);
Trace.d("Connect-Status-Test-Log", "status : " + this.z.get());
}
this.N.a(j);
boolean a3 = com.netease.nrtc.b.a.a(com.netease.nrtc.b.c.ai, false);
com.netease.nrtc.utility.i.a(com.netease.nrtc.engine.impl.a.b, a3);
Trace.i("RtcEngineImpl", "enableCrashCatch from config: " + a3);
StringBuilder sb = new StringBuilder();
sb.append("joinChannel (");
sb.append(t ? "ok" : "failed");
sb.append(C5923.C5925.f19790);
Trace.i("RtcEngineImpl", sb.toString());
return t ? 0 : -5;
}
@Override
public synchronized int leaveChannel() {
Trace.i("RtcEngineImpl", "leaveChannel");
this.B.set(false);
this.C.set(false);
this.E.set(false);
this.D.set(0);
if (!this.y.compareAndSet(3, 4)) {
Trace.e("RtcEngineImpl", "leaveChannel error (status not running)");
return -1;
}
if (this.A.getAndSet(false)) {
this.j.d();
NEMediaEngine nEMediaEngine = this.g;
RtcConfig rtcConfig = this.d;
nEMediaEngine.a(rtcConfig.channel, rtcConfig.userId);
T();
}
ThreadUtils.removeRunnableOnThreadWithToken(this.v, e.a.class);
com.netease.nrtc.monitor.j jVar = this.M;
if (jVar != null) {
jVar.b();
}
com.netease.nrtc.utility.a.c.a().a((c.a) this, false);
com.netease.nrtc.utility.a.c.a().b();
com.netease.nrtc.utility.c.b.a().b();
H();
s();
n(-1L);
l(-1L);
E();
B();
h(-1L);
i(-1L);
this.h.a();
this.m.a();
com.netease.nrtc.monitor.j jVar2 = this.M;
if (jVar2 != null) {
VoiceRxStatistics f = jVar2.f();
a(f.freezeSessionRate, f.gapPacketCount, f.outOfDatePacketCount);
} else {
a(0, 0, 0);
}
this.y.set(1);
e(true);
this.an.release();
Trace.i("RtcEngineImpl", "leaveChannel done");
return 0;
}
@Override
public synchronized boolean localAudioStreamMuted() {
return this.j.i();
}
@Override
public synchronized boolean localVideoStreamMuted() {
return this.aN;
}
@Override
public synchronized int muteLocalAudioStream(boolean z) {
if (k()) {
Trace.i("RtcEngineImpl", "audience unsupported muteLocalAudioStream");
return -1;
}
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.e);
com.netease.nrtc.c.a(new com.netease.nrtc.c.g.a(com.netease.nrtc.c.g.b.b, z));
this.j.c(z);
this.aO = z;
return 0;
}
@Override
public synchronized int muteLocalVideoStream(boolean z) {
Trace.i("RtcEngineImpl", "muteLocalVideoStream: " + z);
if (k()) {
Trace.i("RtcEngineImpl", "audience, unsupported muteLocalVideoStream");
return -1;
}
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.aj);
this.aN = z;
if (this.A.get()) {
if (z) {
this.n.d();
} else {
this.n.c();
}
}
return 0;
}
@Override
public synchronized int muteRemoteAudioStream(long j, boolean z) {
if (!this.A.get()) {
Trace.i("RtcEngineImpl", "muteRemoteAudioStream before call established. channel:" + j + ", mute:" + z);
return -700;
}
if (j == -1) {
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.X);
com.netease.nrtc.c.a(new com.netease.nrtc.c.g.a(com.netease.nrtc.c.g.b.g, z));
} else {
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.ak);
}
if (this.A.get()) {
if (z) {
if (!remoteAudioStreamMuted(j)) {
j(j);
}
} else if (j == -1 || remoteAudioStreamMuted(j)) {
g(j);
}
return 0;
}
Trace.i("RtcEngineImpl", "muteRemoteAudioStream before call established. channel:" + j + ", mute:" + z);
return -700;
}
@Override
public synchronized int muteRemoteVideoStream(long j, boolean z) {
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.al);
Trace.i("RtcEngineImpl", "muteRemoteVideoStream: " + j + "#" + z);
if (z) {
if (!remoteVideoStreamMuted(j)) {
n(j);
}
} else if (remoteVideoStreamMuted(j)) {
k(j);
}
return 0;
}
@Override
public void onConnected(final ConnectInfo connectInfo) {
ThreadUtils.runOnUiThread(new Runnable() {
@Override
public final void run() {
com.netease.nrtc.engine.impl.e.this.b(connectInfo);
}
});
}
@Override
public void onForceIdrFrame(long j, int i) {
if (this.A.get()) {
this.n.b(i);
}
}
@Override
public void onLiveEvent(final int i) {
ThreadUtils.runOnUiThread(new Runnable() {
@Override
public final void run() {
com.netease.nrtc.engine.impl.e.this.w(i);
}
});
}
@Override
public void onLogin(final LoginResInfo loginResInfo) {
ThreadUtils.runOnUiThread(new Runnable() {
@Override
public final void run() {
com.netease.nrtc.engine.impl.e.this.e(loginResInfo);
}
});
}
@Override
public void onLogoutFinished() {
ThreadUtils.runOnUiThread(new Runnable() {
@Override
public final void run() {
com.netease.nrtc.engine.impl.e.this.V();
}
});
}
@Override
public void onNetQualityChange(final long j, final int i, final NetStatInfo netStatInfo) {
ThreadUtils.runOnUiThread(new Runnable() {
@Override
public final void run() {
com.netease.nrtc.engine.impl.e.this.b(j, i, netStatInfo);
}
});
}
@Override
public void onP2PState(int i) {
Trace.i("RtcEngineImpl", "onP2PState->" + i);
}
@Override
public void onPeerDisconnected() {
Trace.i("RtcEngineImpl", "onPeerDisconnected");
}
@Override
public void onPeerNetTypeChange(int i) {
Trace.i("RtcEngineImpl", "onPeerNetTypeChange->" + com.netease.nrtc.internal.a.b(i));
}
@Override
public void onPeopleJoined(final long j, final PeopleJoinInfo peopleJoinInfo) {
ThreadUtils.runOnUiThread(new Runnable() {
@Override
public final void run() {
com.netease.nrtc.engine.impl.e.this.b(j, peopleJoinInfo);
}
});
}
@Override
public void onPeopleLeft(final long j, final int i) {
ThreadUtils.runOnUiThread(new Runnable() {
@Override
public final void run() {
com.netease.nrtc.engine.impl.e.this.f(j, i);
}
});
}
@Override
public void onProtocolIncompatible(final int i) {
ThreadUtils.runOnUiThread(new Runnable() {
@Override
public final void run() {
com.netease.nrtc.engine.impl.e.this.x(i);
}
});
}
@Override
public void onPublicIpChange(final String str, final boolean z) {
ThreadUtils.runOnUiThread(new Runnable() {
@Override
public final void run() {
com.netease.nrtc.engine.impl.e.this.b(str, z);
}
});
}
@Override
public void onPublishVideoResult(Map<Integer, PublishVideoProfile> map, final int i) {
synchronized (this.ae) {
for (RemoteSubscribeLocalInfo remoteSubscribeLocalInfo : this.ae) {
if (map.get(Integer.valueOf(remoteSubscribeLocalInfo.a())) != null) {
this.n.a(true, remoteSubscribeLocalInfo.a());
}
}
}
if (this.aD) {
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onPublishVideoResult(i);
}
});
}
}
@Override
public void onReLogin(final LoginResInfo loginResInfo) {
ThreadUtils.runOnUiThread(new Runnable() {
@Override
public final void run() {
com.netease.nrtc.engine.impl.e.this.d(loginResInfo);
}
});
}
@Override
public void onReceiveVideo(byte[] bArr, long j, int i, int i2, int i3, boolean z) {
if (this.A.get()) {
this.n.a(j, i, bArr, i2, z);
com.netease.nrtc.monitor.j jVar = this.M;
if (jVar != null) {
jVar.h().b(j, i2);
}
}
}
@Override
public void onReceivedAudioSignal(long j, long j2, long j3, long j4, long j5, long j6, long j7) {
if (this.A.get()) {
com.netease.nrtc.monitor.j jVar = this.M;
if (jVar != null) {
jVar.h().a(j, j3);
}
if (!com.netease.nrtc.c.a.a().b(j, 0) || this.d == null) {
return;
}
com.netease.nrtc.c.a(new com.netease.nrtc.c.l.c(String.valueOf(this.d.channel), String.valueOf(j), 0));
}
}
@Override
public void onReloginCallback(final int i) {
ThreadUtils.runOnUiThread(new Runnable() {
@Override
public final void run() {
com.netease.nrtc.engine.impl.e.this.u(i);
}
});
}
@Override
public void onRemotePublishVideo(final long j, ArrayList<Integer> arrayList) {
int i;
if (com.netease.nrtc.utility.a.a(arrayList)) {
Trace.i("RtcEngineImpl", -300000L, "remote publish video , but type list is empty ");
return;
}
final int[] iArr = new int[arrayList.size()];
int[] iArr2 = new int[arrayList.size()];
for (int i2 = 0; i2 < arrayList.size(); i2++) {
int intValue = arrayList.get(i2).intValue();
iArr[i2] = intValue;
iArr2[i2] = intValue;
}
a(true, j, true, iArr2, false, -1);
if (this.H) {
if (this.ak) {
i = a(iArr2);
} else {
b bVar = this.ad.get(Long.valueOf(j));
if (bVar != null) {
i = bVar.b();
}
}
if (i != -1) {
int e = e(j, i);
Trace.i("RtcEngineImpl", -300000L, "remote publish video , so subscribe , result : " + e + " , uid : " + j + " ,auto :" + this.ak + " ,type : " + i);
}
if (this.aD) {
return;
}
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onRemotePublishVideo(j, iArr);
}
});
return;
}
i = -1;
if (i != -1) {
}
if (this.aD) {
}
}
@Override
public void onRemoteSubscribeCallback(ArrayList<RemoteSubscribeLocalInfo> arrayList) {
ArrayList arrayList2 = new ArrayList(arrayList);
ArrayList arrayList3 = new ArrayList();
synchronized (this.ae) {
for (RemoteSubscribeLocalInfo remoteSubscribeLocalInfo : this.ae) {
if (arrayList.contains(remoteSubscribeLocalInfo)) {
arrayList2.remove(remoteSubscribeLocalInfo);
} else {
arrayList3.add(remoteSubscribeLocalInfo);
}
}
this.ae.clear();
this.ae.addAll(arrayList);
}
Iterator it = arrayList2.iterator();
while (it.hasNext()) {
RemoteSubscribeLocalInfo remoteSubscribeLocalInfo2 = (RemoteSubscribeLocalInfo) it.next();
if (com.netease.nrtc.utility.a.a(remoteSubscribeLocalInfo2.a())) {
Trace.e("RtcEngineImpl", -300000L, "onRemoteSubscribeCallback ,newSubTypeList ,type is invalid , " + remoteSubscribeLocalInfo2);
} else {
this.n.a(true, remoteSubscribeLocalInfo2.a());
}
}
Iterator it2 = arrayList3.iterator();
while (it2.hasNext()) {
RemoteSubscribeLocalInfo remoteSubscribeLocalInfo3 = (RemoteSubscribeLocalInfo) it2.next();
if (com.netease.nrtc.utility.a.a(remoteSubscribeLocalInfo3.a())) {
Trace.e("RtcEngineImpl", -300000L, "onRemoteSubscribeCallback ,unSubTypeList ,type is invalid , " + remoteSubscribeLocalInfo3);
} else {
this.n.a(false, remoteSubscribeLocalInfo3.a());
com.netease.nrtc.monitor.j jVar = this.M;
if (jVar != null) {
jVar.a(remoteSubscribeLocalInfo3.a());
}
}
}
}
@Override
public void onRemoteUnpublishVideo(final long j) {
a(false, j, true, (int[]) null, false, -1);
int o = o(j);
Trace.i("RtcEngineImpl", -300000L, "remote un publish video , so un subscribe , result = " + o + " , uid = " + j);
if (this.aD) {
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onRemoteUnpublishVideo(j);
}
});
}
}
@Override
public void onRemoteUnsubscribeCallback() {
synchronized (this.ae) {
for (RemoteSubscribeLocalInfo remoteSubscribeLocalInfo : this.ae) {
this.n.a(false, remoteSubscribeLocalInfo.a());
}
this.ae.clear();
}
com.netease.nrtc.monitor.j jVar = this.M;
if (jVar != null) {
jVar.a(-1);
}
}
@Override
public void onRequestChangeVideoBitrate(final int i, final int i2, final float f, final int i3) {
ThreadUtils.runOnUiThread(new Runnable() {
@Override
public final void run() {
com.netease.nrtc.engine.impl.e.this.b(i, i2, f, i3);
}
});
}
@Override
public void onSendAudioSignal(int i, int i2) {
com.netease.nrtc.monitor.j jVar;
if (!this.A.get() || (jVar = this.M) == null) {
return;
}
jVar.h().a(i2);
}
@Override
public void onServerDisconnected(final int i) {
ThreadUtils.runOnUiThread(new Runnable() {
@Override
public final void run() {
com.netease.nrtc.engine.impl.e.this.y(i);
}
});
}
@Override
public void onSubscribeAudioResult(final int i) {
if (i == 0) {
this.ag = true;
}
if (this.aD) {
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onSubscribeAudioResult(i);
}
});
}
}
@Override
public void onSubscribeVideoResult(final long j, final int i, final int i2) {
com.netease.nrtc.c.a(new com.netease.nrtc.c.g.a(com.netease.nrtc.c.g.b.j, "1", i + "", j + ""));
if (i2 == 0 && !com.netease.nrtc.utility.a.a(i)) {
com.netease.nrtc.c.a.a().a(j, System.currentTimeMillis());
a(true, j, false, (int[]) null, true, i);
this.n.c(j, i);
}
if (this.aD) {
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onSubscribeVideoResult(j, i, i2);
}
});
}
}
@Override
public void onUnpublishVideoResult(final int i) {
if (this.aD) {
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onUnpublishVideoResult(i);
}
});
}
}
@Override
public void onUnsubscribeAudioResult(final int i) {
if (i == 0) {
this.ag = false;
}
if (this.aD) {
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onUnsubscribeAudioResult(i);
}
});
}
}
@Override
public void onUnsubscribeVideoResult(final long j, final int i, final int i2) {
com.netease.nrtc.c.a(new com.netease.nrtc.c.g.a(com.netease.nrtc.c.g.b.j, PushConstants.PUSH_TYPE_NOTIFY, i + "", j + ""));
if (i2 == 0 && !com.netease.nrtc.utility.a.a(i)) {
com.netease.nrtc.c.a.a().a(j);
a(false, j, false, (int[]) null, true, -1);
}
if (this.aD) {
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onUnsubscribeVideoResult(j, i, i2);
}
});
}
}
@Override
public void onVideoDropFrame(final int i, final int i2, final int i3) {
ThreadUtils.runOnUiThread(new Runnable() {
@Override
public final void run() {
com.netease.nrtc.engine.impl.e.this.c(i, i2, i3);
}
});
}
@Override
public synchronized int pauseAudioMixing() {
if (this.j == null) {
Trace.e("RtcEngineImpl", "pause audio mixing error, voe is null!");
return -1;
}
Trace.i("RtcEngineImpl", "pause audio mixing");
this.j.l();
return 0;
}
@Override
public synchronized int playAudioEffect(int i, int i2, boolean z, float f) {
if (k()) {
Trace.i("RtcEngineImpl", "audience unsupported playAudioEffect");
return RtcCode.ERR_UNINITIALIZED;
}
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.an);
if (f < 0.0f) {
f = 0.0f;
}
if (f > 1.0f) {
f = 1.0f;
}
Trace.i("RtcEngineImpl", "play audio effect , id = " + i + " , loopback = " + i2 + " , send = " + z + " , volume = " + f);
return this.j.a(i, i2, z, f);
}
@Override
public void preloadAudioEffect(int i, String str) {
if (k()) {
Trace.i("RtcEngineImpl", "audience unsupported preloadAudioEffect");
} else {
this.ac.a(i, str);
}
}
@Override
public synchronized int publishVideo() {
if (this.y.get() != 3) {
Trace.e("RtcEngineImpl", -300000L, "publish video but not running , status = " + this.y.get());
return -1;
}
int ag = ag();
if (ag == 0) {
ag = Y();
}
Trace.i("RtcEngineImpl", -300000L, "publish video , result = " + ag);
return ag;
}
@Override
public int pushExternalAudioData(byte[] bArr, int i, int i2, int i3, int i4, boolean z) throws NullPointerException, IllegalArgumentException {
Checker.checkNotNull(bArr, "audio data is null");
Checker.checkArgument(i * 2 <= bArr.length, "audio data samples illegality");
if (this.A.get()) {
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.p);
com.netease.nrtc.voice.b bVar = this.j;
if (bVar == null) {
return -2;
}
return bVar.a(bArr, i, i2, i3, i4, z);
}
return -1;
}
@Override
public synchronized int pushExternalAudioMixingStream(byte[] bArr, int i, int i2, int i3) {
com.netease.nrtc.voice.b bVar = this.j;
if (bVar == null) {
Trace.e("RtcEngineImpl", "push external audio mixing stream error, voe is null!");
return -1;
}
return bVar.a(bArr, i, i2, i3);
}
@Override
public synchronized void rate(int i, String str) {
if (this.d == null) {
return;
}
com.netease.nrtc.c.a(new com.netease.nrtc.c.f.a(this.c, this.d.channel, i, str));
}
@Override
public synchronized boolean registerPlayAudioCallBack(IPlayAudioCallBack iPlayAudioCallBack) {
if (this.j == null) {
Trace.w("RtcEngineImpl", "register play audio call back , but voe is null , callback :" + iPlayAudioCallBack);
return iPlayAudioCallBack == null;
}
Trace.i("RtcEngineImpl", "register play audio call back , callback : " + iPlayAudioCallBack);
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.af);
return this.j.a(iPlayAudioCallBack);
}
@Override
public synchronized boolean registerRemoteAudioCallBack(long j, IRemoteAudioCallBack iRemoteAudioCallBack) {
if (this.j == null) {
Trace.w("RtcEngineImpl", "register remote audio call back , but voe is null , uid : " + j + ", callback :" + iRemoteAudioCallBack);
return iRemoteAudioCallBack == null;
} else if (!this.e.containsKey(Long.valueOf(j))) {
Trace.w("RtcEngineImpl", "register remote audio call back , but not find user , uid : " + j + ", callback :" + iRemoteAudioCallBack);
return iRemoteAudioCallBack == null;
} else {
Trace.i("RtcEngineImpl", "register remote audio call back , uid : " + j + ", callback :" + iRemoteAudioCallBack);
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.ae);
return this.j.a(j, iRemoteAudioCallBack);
}
}
@Override
public synchronized boolean remoteAudioStreamMuted(long j) {
if (j == -1) {
for (Long l : this.e.keySet()) {
long longValue = l.longValue();
if (longValue != this.d.userId && this.j.c(longValue)) {
return false;
}
}
return true;
}
return !this.j.c(j);
}
@Override
public synchronized boolean remoteVideoStreamMuted(long j) {
return !this.n.f(j);
}
@Override
public synchronized int resumeAudioMixing() {
if (this.j == null) {
Trace.e("RtcEngineImpl", "resume audio mixing error, voe is null!");
return RtcCode.ERR_UNINITIALIZED;
}
Trace.i("RtcEngineImpl", "resume audio mixing");
this.j.k();
return 0;
}
@Override
public int seekAudioMixing(long j) {
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.W);
return this.j.h(j);
}
@Override
public synchronized void selectAudioDevice(int i) {
com.netease.nrtc.voice.device.b.e eVar = this.m;
if (eVar != null) {
eVar.b(i);
}
}
@Override
public void setAsMainArea(long j, IRtcRoomServerHandler iRtcRoomServerHandler) {
if (!this.aI) {
if (iRtcRoomServerHandler != null) {
iRtcRoomServerHandler.onResult(300, "not in live mode");
}
Trace.e("RtcEngineImpl", "setAsMainArea not live mode ");
} else if (TextUtils.isEmpty(this.aJ)) {
if (iRtcRoomServerHandler != null) {
iRtcRoomServerHandler.onResult(301, "not anchor");
}
Trace.e("RtcEngineImpl", "setAsMainArea not anchor");
} else {
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.am);
try {
RtcConfig rtcConfig = this.d;
h.a(j, rtcConfig.channel, rtcConfig.roomServerToken, rtcConfig.userId, iRtcRoomServerHandler);
} catch (Exception e) {
if (iRtcRoomServerHandler != null) {
iRtcRoomServerHandler.onResult(400, e.getMessage());
}
Trace.e("RtcEngineImpl", e.getMessage());
}
}
}
@Override
public int setAudioMixingPlaybackVolume(float f) {
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.V);
if (f < 0.0f) {
f = 0.0f;
}
if (f > 1.0f) {
f = 1.0f;
}
return this.j.a(Math.round(f * 10.0f) / 10.0f);
}
@Override
public int setAudioMixingSendVolume(float f) {
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.U);
if (f < 0.0f) {
f = 0.0f;
}
if (f > 1.0f) {
f = 1.0f;
}
return this.j.b(Math.round(f * 10.0f) / 10.0f);
}
@Override
public synchronized int setAutoPublish(boolean z, boolean z2) {
int i = 1;
if (this.y.get() != 1) {
Trace.e("RtcEngineImpl", -300000L, "setAutoPublish err , must before joinChannel");
return -1;
}
if (!z && z2) {
i = 2;
} else if (z && !z2) {
i = 3;
} else if (!z) {
i = 4;
}
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.ap, i);
this.ai.a(z);
this.ai.b(z2);
Trace.i("RtcEngineImpl", -300000L, "setAutoPublish , autoPub = " + z + ", autoSub = " + z2);
return 0;
}
@Override
public int setChannelProfile(int i) {
Trace.i("RtcEngineImpl", "setChannelProfile " + i);
if (i != 0 && i != 1) {
Trace.e("RtcEngineImpl", "setVideoQualityStrategy error: profile is illegality");
return -400;
}
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.D, i + 1);
if (this.y.get() == 3) {
Trace.i("RtcEngineImpl", "set channel profile error, rtc is running.");
return -500;
}
this.P = i;
com.netease.nrtc.engine.impl.a.j = this.P;
return 0;
}
@Override
public synchronized int setExternalAudioMixingStream(boolean z, boolean z2, boolean z3) {
if (this.j == null) {
Trace.e("RtcEngineImpl", "set external audio mixing steam error, voe is null!");
return -1;
}
Trace.i("RtcEngineImpl", "set external audio mixing stream, enable:" + z + ", as source:" + z2 + ", as sink:" + z3);
com.netease.nrtc.voice.b bVar = this.j;
boolean z4 = true;
boolean z5 = z && z2;
if (!z || !z3) {
z4 = false;
}
return bVar.a(z5, z4);
}
@Override
public int setExternalAudioSource(boolean z) {
com.netease.nrtc.c.a(new com.netease.nrtc.c.g.a(com.netease.nrtc.c.g.b.a, z));
if (this.A.get()) {
return -1;
}
com.netease.nrtc.voice.b bVar = this.j;
if (bVar == null) {
return -2;
}
return bVar.b(z) ? 0 : -3;
}
@Override
public synchronized int setLocalVideoSimulcastModel(int i) {
int i2 = 1;
if (this.y.get() != 1) {
Trace.e("RtcEngineImpl", -300000L, "setLocalVideoSimulcastModel err , must before joinChannel");
return -1;
} else if (q(i)) {
Trace.e("RtcEngineImpl", -300000L, "setLocalVideoSimulcastModel param illegal , see NRtcConstants.Subscribe , mode = " + i);
return -1;
} else {
int i3 = com.netease.nrtc.monitor.d.ao;
if (i != 0) {
i2 = 2;
}
com.netease.nrtc.monitor.d.a(i3, i2);
this.ai.a(i);
Trace.i("RtcEngineImpl", -300000L, "setLocalVideoSimulcastModel , mode = " + i);
return 0;
}
}
@Override
public synchronized int setMicrophoneMute(boolean z) {
com.netease.nrtc.c.a(new com.netease.nrtc.c.g.a(com.netease.nrtc.c.g.b.c, z));
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.f);
return this.j.h(z);
}
@Override
public synchronized void setNewLoginConfig(RtcConfig rtcConfig) {
RtcConfig rtcConfig2 = this.d;
if (rtcConfig2 != null && rtcConfig != null && rtcConfig2.channel == rtcConfig.channel) {
this.d = rtcConfig;
this.z.set(3);
Trace.d("Connect-Status-Test-Log", "status : " + this.z.get());
this.g.a(w());
return;
}
Trace.e("RtcEngineImpl", "relogin but info err , pre : " + this.d + ", new : " + rtcConfig);
}
@Override
public synchronized void setParameters(RtcParameters rtcParameters) throws IllegalArgumentException {
Checker.checkArgument(rtcParameters != null, "parameters is null");
Set<String> keys = rtcParameters.keys();
if (keys.size() == 0) {
return;
}
int size = keys.size();
String[] strArr = new String[size];
Object[] objArr = new Object[keys.size()];
Privilege privilege = l.c(com.netease.nrtc.engine.impl.a.b) ? Privilege.PROTECTED : Privilege.PUBLIC;
int i = 0;
for (String str : keys) {
if (RtcParameters.checkPrivilege(str, privilege)) {
if (RtcParameters.writeSupported(str)) {
if (this.y.get() == 3 && !RtcParameters.runtimeSupported(str)) {
throw new IllegalArgumentException("parameter [" + str.toUpperCase() + "] unsupported runtime!");
}
strArr[i] = str;
objArr[i] = rtcParameters.getObject(str);
i++;
} else {
throw new IllegalArgumentException("check parameter [" + str.toUpperCase() + "] access mode failed!");
}
} else {
throw new IllegalArgumentException("check parameter [" + str.toUpperCase() + "] privilege failed!");
}
}
for (int i2 = 0; i2 < size; i2++) {
a(strArr[i2], objArr[i2]);
}
}
@Override
public synchronized int setPlayCapturedAudioVolume(float f) {
Trace.i("RtcEngineImpl", "set play capture audio volume:" + f);
if (this.j == null) {
Trace.e("RtcEngineImpl", "set play capture audio volume error, voe is null!");
return RtcCode.ERR_UNINITIALIZED;
}
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.T);
return this.j.c(Math.max(Math.min(f, 1.0f), 0.0f));
}
@Override
public synchronized int setPublishFallbackOption(int i) {
if (this.y.get() == 3) {
Trace.e("RtcEngineImpl", -300000L, "set publish fallback option but is running , status = " + this.y.get());
return -1;
}
Trace.i("RtcEngineImpl", -300000L, "set publish fallback option , option = " + i);
this.ar = i;
return 0;
}
@Override
public synchronized int setRole(int i) {
Trace.i("RtcEngineImpl", "setRole: " + i);
if (!this.aD) {
Trace.i("RtcEngineImpl", "role only supported multi mode");
return -2;
}
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.Y);
if (i == this.aC) {
return 0;
}
this.aC = i;
if (this.A.get()) {
NEMediaEngine nEMediaEngine = this.g;
if (nEMediaEngine != null) {
nEMediaEngine.c(i == 1);
}
if (this.aC == 1) {
stopAVRecording(0L);
stopAudioRecording();
stopAudioMixing();
H();
stopVideoPreview();
E();
} else {
if (!C()) {
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onDeviceEvent(3002, "start voice send error");
}
});
}
startVideoPreview();
F();
}
}
I();
return 0;
}
@Override
public synchronized int setSpeakerphoneOn(boolean z) {
this.m.a(z ? 0 : 2);
selectAudioDevice(z ? 0 : -1);
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.h);
com.netease.nrtc.c.a(new com.netease.nrtc.c.g.a(com.netease.nrtc.c.g.b.d, z));
return 0;
}
@Override
public int setVideoQualityStrategy(int i) {
if (this.y.get() == 3 && this.al != 0) {
Trace.w("RtcEngineImpl", "can not change strategy , rtc is running and not single stream");
return -500;
}
Trace.i("RtcEngineImpl", "setVideoQualityStrategy :" + i);
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.E, i);
if (this.R == i) {
return 0;
}
this.R = i;
Q();
return 0;
}
@Override
public synchronized int setupLocalVideoRenderer(IVideoRender iVideoRender, int i, boolean z) {
StringBuilder sb = new StringBuilder();
sb.append("setupLocalVideoRenderer:");
sb.append(iVideoRender == null ? "null" : Integer.toHexString(iVideoRender.hashCode()));
sb.append(",render mode:");
sb.append(i);
sb.append(", mirror:");
sb.append(z);
Trace.i("RtcEngineImpl", sb.toString());
if (!this.H) {
Trace.i("RtcEngineImpl", "setup local video renderer error: video is not enabled!");
return -1;
}
if (iVideoRender != null && iVideoRender.isAttachedToSession() && this.d != null && iVideoRender.getAttachedSession() != this.d.userId) {
throw new RuntimeException("the canvas already attached a user, reused need detach.");
}
return this.n.a(iVideoRender, i, z) ? 0 : -1;
}
@Override
public synchronized int setupRemoteVideoRenderer(IVideoRender iVideoRender, long j, int i, boolean z) {
Checker.checkArgument(j != 0, "uid can not be 0.");
StringBuilder sb = new StringBuilder();
sb.append("setupRemoteVideoRenderer:");
sb.append(iVideoRender == null ? "null" : Integer.toHexString(iVideoRender.hashCode()));
sb.append(", uid:");
sb.append(j);
sb.append(",render mode:");
sb.append(i);
sb.append(", mirror:");
sb.append(z);
Trace.i("RtcEngineImpl", sb.toString());
if (!this.H) {
Trace.i("RtcEngineImpl", "setup remote video renderer error: video is not enabled!");
return -1;
}
if (iVideoRender != null && iVideoRender.isAttachedToSession() && iVideoRender.getAttachedSession() != j) {
throw new RuntimeException("the canvas already attached a user, reused need detach.");
}
return this.n.a(iVideoRender, j, i, z) ? 0 : -1;
}
@Override
public synchronized int setupVideoCapturer(IVideoCapturer iVideoCapturer) {
Trace.i("RtcEngineImpl", "setupVideoCapturer");
return this.n.a(iVideoCapturer);
}
@Override
public synchronized int startAVRecording(long j) {
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.t);
int i = -1;
long j2 = j == this.d.userId ? 0L : j;
b bVar = null;
if (j2 != 0 && (((bVar = this.ad.get(Long.valueOf(j2))) == null || !bVar.c()) && !this.ag)) {
Trace.e("RtcEngineImpl", "try record remote video, but not subscribe video and audio , uid : " + j2);
return -1;
}
if (this.h != null && M() && this.h.a(j2)) {
if (j2 == 0) {
this.n.a(true);
} else if (bVar != null) {
b(j2, bVar.b());
}
if (com.netease.nrtc.engine.impl.a.l && (j == 0 || j == this.d.userId)) {
com.netease.nrtc.engine.impl.a.m = true;
}
if (com.netease.nrtc.engine.impl.a.o && j != 0 && j != this.d.userId) {
com.netease.nrtc.engine.impl.a.p = true;
}
i = 0;
}
return i;
}
@Override
public synchronized int startAudioMixing(String str, boolean z, boolean z2, int i, float f) {
if (k()) {
Trace.i("RtcEngineImpl", "audience unsupported startAudioMixing");
return -700;
} else if (this.j == null) {
Trace.e("RtcEngineImpl", "start audio mixing error, voe is null!");
return RtcCode.ERR_UNINITIALIZED;
} else if (StringUtils.isEmpty(str)) {
Trace.e("RtcEngineImpl", "start audio mixing error, file path is empty!");
return -400;
} else {
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.r);
if (f < 0.0f) {
f = 0.0f;
}
if (f > 1.0f) {
f = 1.0f;
}
float round = Math.round(f * 10.0f) / 10.0f;
Trace.i("RtcEngineImpl", "start audio mixing (path:" + str + ",loop:" + z + ",replace:" + z2 + ",cycle:" + i + ",volume:" + round + C5923.C5925.f19790);
return this.j.a(str, z, z2, i, round);
}
}
@Override
public synchronized int startAudioRecording() {
boolean z;
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.u);
if (this.h != null && M()) {
if (this.h.b()) {
z = true;
}
}
z = false;
return z ? 0 : -1;
}
@Override
public synchronized int startPlayCapturedAudio() {
Trace.i("RtcEngineImpl", "start play capture audio");
if (this.j == null) {
Trace.e("RtcEngineImpl", "start play capture audio error, voe is null!");
return RtcCode.ERR_UNINITIALIZED;
}
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.S);
com.netease.nrtc.c.a(new com.netease.nrtc.c.g.a(com.netease.nrtc.c.g.b.f, true));
return this.j.o();
}
@Override
public synchronized int startVideoPreview() {
Trace.i("RtcEngineImpl", "start video preview");
if (!this.H) {
Trace.e("RtcEngineImpl", "start video preview error: video is not enable!!");
return -500;
}
if (!this.n.g()) {
if (!SystemPermissionUtils.checkCameraPermission(com.netease.nrtc.engine.impl.a.b)) {
Trace.e("RtcEngineImpl", "no camera permission!");
return -700;
} else if (this.n.i() <= 0) {
Trace.e("RtcEngineImpl", "no video capture device");
return -700;
}
}
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.v);
com.netease.nrtc.video.a.a ab = ab();
com.netease.nrtc.video.a.a ac = ac();
this.n.a(ab.a, ab.b, ac.a, ac.b, this.aK);
this.n.c(0L);
return 0;
}
@Override
public synchronized int stopAVRecording(long j) {
boolean z;
com.netease.nrtc.rec.a aVar = this.h;
if (aVar != null) {
if (aVar.b(j == this.d.userId ? 0L : j)) {
z = true;
if (com.netease.nrtc.engine.impl.a.l && (j == 0 || j == this.d.userId)) {
com.netease.nrtc.engine.impl.a.m = false;
}
if (com.netease.nrtc.engine.impl.a.o && j != 0 && j != this.d.userId) {
com.netease.nrtc.engine.impl.a.p = false;
}
if (j != 0 || j == this.d.userId) {
this.n.a(false);
}
}
}
z = false;
if (com.netease.nrtc.engine.impl.a.l) {
com.netease.nrtc.engine.impl.a.m = false;
}
if (com.netease.nrtc.engine.impl.a.o) {
com.netease.nrtc.engine.impl.a.p = false;
}
if (j != 0) {
}
this.n.a(false);
return z ? 0 : -1;
}
@Override
public synchronized int stopAudioMixing() {
if (k()) {
Trace.i("RtcEngineImpl", "audience unsupported stopAudioMixing");
return -700;
} else if (this.j == null) {
Trace.e("RtcEngineImpl", "stop audio mixing error, voe is null!");
return RtcCode.ERR_UNINITIALIZED;
} else {
Trace.i("RtcEngineImpl", "stop audio mixing");
return this.j.q();
}
}
@Override
public synchronized int stopAudioRecording() {
boolean z;
com.netease.nrtc.rec.a aVar = this.h;
if (aVar != null) {
if (aVar.c()) {
z = true;
}
}
z = false;
return z ? 0 : -1;
}
@Override
public synchronized int stopPlayAudioEffect(int i) {
if (k()) {
Trace.i("RtcEngineImpl", "audience unsupported stopPlayAudioEffect");
return -700;
}
Trace.i("RtcEngineImpl", "stop audio effect , id = " + i);
return this.j.a(i);
}
@Override
public synchronized int stopPlayCapturedAudio() {
Trace.i("RtcEngineImpl", "stop play capture audio");
if (this.j == null) {
Trace.e("RtcEngineImpl", "stop play capture audio error, voe is null!");
return RtcCode.ERR_UNINITIALIZED;
}
com.netease.nrtc.c.a(new com.netease.nrtc.c.g.a(com.netease.nrtc.c.g.b.f, false));
return this.j.p();
}
@Override
public synchronized int stopVideoPreview() {
Trace.i("RtcEngineImpl", "stop video preview");
this.n.d(0L);
this.n.h();
return 0;
}
@Override
public synchronized int subscribeActiveAudio() {
if (this.y.get() != 3) {
Trace.e("RtcEngineImpl", -300000L, "subscribe active audio but not running , status = " + this.y.get());
return -1;
}
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.aq);
int ah = ah();
if (ah == 0) {
ah = ae();
}
Trace.i("RtcEngineImpl", -300000L, "subscribe active audio , result = " + ah);
return ah;
}
@Override
public synchronized int subscribeVideo(long j, int i) {
if (this.y.get() != 3) {
Trace.e("RtcEngineImpl", -300000L, "subscribe video but not running , status = " + this.y.get() + " , uid = " + j);
return -1;
} else if (com.netease.nrtc.utility.a.a(i)) {
Trace.e("RtcEngineImpl", -300000L, "subscribe video type err , uid = " + j + ", type = " + i);
return -1;
} else {
int ah = ah();
if (ah == 0) {
b bVar = this.ad.get(Long.valueOf(j));
int b = bVar != null ? bVar.b() : -1;
if (b != -1 && b != i) {
Trace.e("RtcEngineImpl", -300000L, "subscribe video type err , must un subscribe first, uid = " + j + ", type = " + i + " , pre = " + b);
return -700;
}
ah = e(j, i);
}
Trace.i("RtcEngineImpl", -300000L, "subscribe video , uid = " + j + ", type = " + i + ", result = " + ah);
return ah;
}
}
@Override
public int switchCommunicateMode(int i) {
if (this.y.get() != 3) {
Trace.e("RtcEngineImpl", "switchCommunicateMode ,but not in running , status : " + this.y.get());
return -1;
} else if (i != 1 && i != 2) {
Trace.e("RtcEngineImpl", "switchCommunicateMode , err param , mode : " + i);
return -1;
} else if (k()) {
Trace.e("RtcEngineImpl", "switchCommunicateMode , but is audience");
return -1;
} else if (i == 1 && !this.H) {
Trace.e("RtcEngineImpl", "switchCommunicateMode to video , but video not enable");
return -1;
} else {
Trace.i("RtcEngineImpl", "switchCommunicateMode , mode : " + i);
if (this.at == i) {
return 0;
}
this.at = i;
this.g.b(i == 1);
if (i == 1) {
startVideoPreview();
F();
X();
} else {
H();
stopVideoPreview();
ad();
}
return 0;
}
}
@Override
public synchronized int takeSnapshot(long j) {
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.s);
Trace.i("RtcEngineImpl", "takeSnapshot: " + j);
return this.n.h(j) ? 0 : -1;
}
@Override
public synchronized int unpublishVideo() {
if (this.y.get() != 3) {
Trace.e("RtcEngineImpl", -300000L, "un publish video but not running , status = " + this.y.get());
return -1;
}
int ag = ag();
if (ag == 0) {
ag = ad();
}
Trace.i("RtcEngineImpl", -300000L, "un publish video , result = " + ag);
return ag;
}
@Override
public synchronized int unsubscribeActiveAudio() {
if (this.y.get() != 3) {
Trace.e("RtcEngineImpl", -300000L, "un subscribe active audio but not running , status = " + this.y.get());
return -1;
}
int ah = ah();
if (ah == 0) {
ah = af();
}
Trace.i("RtcEngineImpl", -300000L, "un subscribe active audio , result = " + ah);
return ah;
}
@Override
public synchronized int unsubscribeVideo(long j) {
if (this.y.get() != 3) {
Trace.e("RtcEngineImpl", -300000L, "un subscribe video but not running , status = " + this.y.get() + " , uid = " + j);
return -1;
}
int ah = ah();
if (ah == 0) {
ah = o(j);
}
Trace.i("RtcEngineImpl", -300000L, "un subscribe video , uid = " + j + " result = " + ah);
return ah;
}
@Override
public synchronized int updateSharedEGLContext(EGLContext eGLContext) {
if (this.n == null) {
Trace.e("RtcEngineImpl", "updateSharedEGL10Context error, vie is null");
return -1;
}
EglContextWrapper eglContextWrapper = this.ah;
if (eglContextWrapper != null && eGLContext != eglContextWrapper.getEglContext()) {
Trace.i("RtcEngineImpl", "updateSharedEGL10Context:" + eGLContext + " default EglContext: " + this.ah.getEglContext());
this.ah.release();
this.ah = null;
}
return this.n.a(eGLContext) ? 0 : -2;
}
private void c() throws Error {
if (IRtcEngine.versionCode() != NativeVersion.nativeBuildVersionCode()) {
throw new Error("native lib version wrong!!!");
}
}
private void g() {
EglContextWrapper createEglContext = EglContextWrapper.createEglContext();
this.ah = createEglContext;
if (createEglContext.isEGL14Supported() && Build.VERSION.SDK_INT >= 17) {
updateSharedEGLContext((android.opengl.EGLContext) this.ah.getEglContext());
} else {
updateSharedEGLContext((EGLContext) this.ah.getEglContext());
}
}
private void h() {
AudioEffectLoader a2 = AudioEffectLoader.a(this);
this.ac = a2;
this.j.a(a2);
}
private void i() {
this.ab.clear();
this.e.clear();
this.f.clear();
this.Q.set(-1);
this.ad.clear();
synchronized (this.ae) {
this.ae.clear();
}
this.af = false;
this.ag = false;
}
private void j() {
this.au = false;
this.av = false;
this.aw = false;
this.ax = 0;
this.ay = true;
this.az = true;
this.aA = 0;
this.aB = 0;
this.aC = 1;
this.aD = false;
this.aE = false;
this.aF = 0;
this.aG = false;
this.aH = 0;
this.aI = false;
this.aJ = null;
this.aK = 15;
this.aL = null;
this.aM = true;
this.aN = false;
this.aO = false;
this.aP = false;
this.aQ = 0;
this.aR = 0;
this.aS = -1;
this.aT = -1;
this.aU = 4;
this.aV = 0;
this.aW = null;
this.as = false;
this.aZ = false;
this.at = 1;
}
private boolean k() {
return this.aD && this.aC == 1;
}
private String l() {
return !com.netease.nrtc.video.a.e.d() ? "media_codec_software" : com.netease.nrtc.video.a.e.b() ? "media_codec_hardware" : com.netease.nrtc.video.a.e.f() ? "media_codec_auto" : "media_codec_software";
}
private String m() {
return !com.netease.nrtc.video.a.e.e() ? "media_codec_software" : com.netease.nrtc.video.a.e.c() ? "media_codec_hardware" : com.netease.nrtc.video.a.e.g() ? "media_codec_auto" : "media_codec_software";
}
private String n() {
return com.netease.nrtc.voice.a.a.d() ? !com.netease.nrtc.voice.a.a.a() ? "audio_effect_mode_platform_builtin_priority" : "audio_effect_mode_sdk_builtin_priority" : "audio_effect_mode_disable";
}
private String o() {
return com.netease.nrtc.voice.a.a.e() ? !com.netease.nrtc.voice.a.a.b() ? "audio_effect_mode_platform_builtin_priority" : "audio_effect_mode_sdk_builtin_priority" : "audio_effect_mode_disable";
}
private String p() {
return com.netease.nrtc.voice.a.a.f() ? !com.netease.nrtc.voice.a.a.c() ? "audio_effect_mode_platform_builtin_priority" : "audio_effect_mode_sdk_builtin_priority" : "audio_effect_mode_disable";
}
private void q() {
this.p = com.netease.nrtc.voice.a.a.i(this.aD);
this.q = com.netease.nrtc.video.a.e.a(this.aD);
Trace.i("RtcEngineImpl", "default audio codec=" + this.p + ", video codec=" + this.q);
this.t = false;
}
private int r() {
int a2 = com.netease.nrtc.video.a.e.a(com.netease.nrtc.engine.impl.a.b, this.aD);
int f = com.netease.nrtc.video.a.e.f(this.aD);
Trace.i("RtcEngineImpl", "default video encode res=" + a2 + ", video decode res=" + f);
int b = com.netease.nrtc.video.a.e.b(this.aA, a2);
int max = Math.max(f, b);
Trace.i("RtcEngineImpl", "user setting video encode res=" + b + ", video decode res=" + max);
int b2 = this.o.b(max);
StringBuilder sb = new StringBuilder();
sb.append("privilege video decode res=");
sb.append(b2);
Trace.i("RtcEngineImpl", sb.toString());
return b2;
}
private void s() {
if (this.d == null) {
m(-1L);
return;
}
for (j jVar : this.e.values()) {
long j = jVar.a;
if (j != this.d.userId) {
this.n.d(j);
}
}
}
private boolean t() {
if (u()) {
this.B.set(this.g.a(w(), x()));
}
P();
if (this.g != null) {
int i = 20;
int i2 = 8;
if (D()) {
i = 64;
} else {
i = this.aM ? 48 : 48;
this.g.a(i, i2, 500, 300);
}
i2 = 32;
this.g.a(i, i2, 500, 300);
}
return this.B.get();
}
private boolean u() {
return (this.B.get() && this.C.get()) ? false : true;
}
private boolean v() {
if (this.y.get() == 3) {
if (u()) {
int incrementAndGet = this.D.incrementAndGet();
this.E.set(false);
this.C.set(this.g.d());
if (this.C.get()) {
this.z.set(3);
Trace.d("Connect-Status-Test-Log", "status : " + this.z.get());
}
Trace.i("RtcEngineImpl", "try relogin, count=" + incrementAndGet);
} else {
this.E.set(true);
}
}
return this.C.get();
}
private NEMediaEngineConfig w() {
String sb;
int i;
RtcLiveCompositingLayout rtcLiveCompositingLayout;
c.a aVar = com.netease.nrtc.b.c.e;
if (com.netease.nrtc.b.a.a(aVar)) {
sb = (String) com.netease.nrtc.b.a.b(aVar);
} else {
StringBuilder sb2 = new StringBuilder();
List<String> list = this.d.proxy;
if (list != null) {
for (String str : list) {
if (!StringUtils.isEmpty(str)) {
if (sb2.length() > 0) {
sb2.append(",");
}
sb2.append(str);
}
}
}
sb = sb2.toString();
}
c.a aVar2 = com.netease.nrtc.b.c.d;
if (com.netease.nrtc.b.a.a(aVar2)) {
ArrayList arrayList = new ArrayList();
ArrayList arrayList2 = new ArrayList();
arrayList2.add(com.netease.nrtc.b.a.b(aVar2));
arrayList.add(arrayList2);
this.d.turn = arrayList;
}
StringBuilder sb3 = new StringBuilder();
for (List<String> list2 : this.d.turn) {
if (sb3.length() > 0) {
sb3.append("#");
}
StringBuilder sb4 = new StringBuilder();
for (String str2 : list2) {
if (!StringUtils.isEmpty(str2)) {
if (sb4.length() > 0) {
sb4.append(",");
}
sb4.append(str2);
}
}
sb3.append(sb4.toString());
}
String b = com.netease.nrtc.utility.c.c.b(com.netease.nrtc.engine.impl.a.b);
if (StringUtils.isNotEmpty(b) && b.startsWith("460")) {
String substring = b.substring(3);
if (StringUtils.isDigitsOnly(substring)) {
i = Integer.parseInt(substring);
NEMediaEngineConfig nEMediaEngineConfig = new NEMediaEngineConfig();
nEMediaEngineConfig.b((int) this.d.userType);
nEMediaEngineConfig.m(this.d.appKeyChannel);
nEMediaEngineConfig.d(!StringUtils.isEmpty(sb) ? null : sb);
nEMediaEngineConfig.e(sb3.toString());
nEMediaEngineConfig.a(!StringUtils.isEmpty(sb));
nEMediaEngineConfig.a(this.d.userId);
nEMediaEngineConfig.b(this.d.channel);
nEMediaEngineConfig.b(this.d.p2p);
nEMediaEngineConfig.i(this.d.dTunnel);
if (this.d.networkProxy != null) {
ClientSocks5Info clientSocks5Info = new ClientSocks5Info();
clientSocks5Info.a(this.d.networkProxy.scheme);
clientSocks5Info.c(this.d.networkProxy.userName);
clientSocks5Info.d(this.d.networkProxy.userPassword);
clientSocks5Info.b(this.d.networkProxy.host + ":" + this.d.networkProxy.port);
nEMediaEngineConfig.j(true);
nEMediaEngineConfig.a(clientSocks5Info);
}
nEMediaEngineConfig.b(!StringUtils.isEmpty(this.c) ? "" : this.c);
nEMediaEngineConfig.a("nrtc_engine");
nEMediaEngineConfig.c(e());
nEMediaEngineConfig.f(this.q);
nEMediaEngineConfig.e(r());
nEMediaEngineConfig.d(this.p);
nEMediaEngineConfig.c(this.H);
nEMediaEngineConfig.d(k());
nEMediaEngineConfig.c(new String(this.d.encryptToken));
nEMediaEngineConfig.a(this.d.encrypt_type);
nEMediaEngineConfig.g(com.netease.nrtc.utility.c.c.a(com.netease.nrtc.engine.impl.a.b));
nEMediaEngineConfig.h(i);
nEMediaEngineConfig.i(com.netease.nrtc.engine.impl.a.k);
if (IRtcEngine.versionCode() >= 1011) {
nEMediaEngineConfig.j(A());
}
nEMediaEngineConfig.e(this.au);
nEMediaEngineConfig.f(this.av);
nEMediaEngineConfig.k(this.ax);
nEMediaEngineConfig.g(this.aw);
nEMediaEngineConfig.h(this.aD);
nEMediaEngineConfig.m(!StringUtils.isEmpty(this.aJ));
nEMediaEngineConfig.k(!this.aD && this.aI);
nEMediaEngineConfig.f(this.aJ);
rtcLiveCompositingLayout = this.aL;
if (rtcLiveCompositingLayout != null) {
nEMediaEngineConfig.l(rtcLiveCompositingLayout.mode);
nEMediaEngineConfig.g(this.aL.extraInfo);
}
nEMediaEngineConfig.l(this.aP);
nEMediaEngineConfig.o(this.aM);
nEMediaEngineConfig.n(this.U);
nEMediaEngineConfig.n(false);
nEMediaEngineConfig.e(sb3.toString());
nEMediaEngineConfig.d(sb);
nEMediaEngineConfig.p(this.aa == 1);
nEMediaEngineConfig.r(com.netease.nrtc.engine.impl.a.h);
nEMediaEngineConfig.q(com.netease.nrtc.engine.impl.a.h);
nEMediaEngineConfig.o(((Integer) com.netease.nrtc.b.a.a(com.netease.nrtc.b.c.ae, 80)).intValue());
nEMediaEngineConfig.p(((Integer) com.netease.nrtc.b.a.a(com.netease.nrtc.b.c.af, 120)).intValue());
nEMediaEngineConfig.q(((Integer) com.netease.nrtc.b.a.a(com.netease.nrtc.b.c.ag, 400)).intValue());
nEMediaEngineConfig.r(((Integer) com.netease.nrtc.b.a.a(com.netease.nrtc.b.c.ah, 1)).intValue());
nEMediaEngineConfig.s(this.aX);
nEMediaEngineConfig.t(this.aY);
nEMediaEngineConfig.s(this.ar);
nEMediaEngineConfig.a(this.d.reproxy);
return nEMediaEngineConfig;
}
}
i = 0;
NEMediaEngineConfig nEMediaEngineConfig2 = new NEMediaEngineConfig();
nEMediaEngineConfig2.b((int) this.d.userType);
nEMediaEngineConfig2.m(this.d.appKeyChannel);
nEMediaEngineConfig2.d(!StringUtils.isEmpty(sb) ? null : sb);
nEMediaEngineConfig2.e(sb3.toString());
nEMediaEngineConfig2.a(!StringUtils.isEmpty(sb));
nEMediaEngineConfig2.a(this.d.userId);
nEMediaEngineConfig2.b(this.d.channel);
nEMediaEngineConfig2.b(this.d.p2p);
nEMediaEngineConfig2.i(this.d.dTunnel);
if (this.d.networkProxy != null) {
}
nEMediaEngineConfig2.b(!StringUtils.isEmpty(this.c) ? "" : this.c);
nEMediaEngineConfig2.a("nrtc_engine");
nEMediaEngineConfig2.c(e());
nEMediaEngineConfig2.f(this.q);
nEMediaEngineConfig2.e(r());
nEMediaEngineConfig2.d(this.p);
nEMediaEngineConfig2.c(this.H);
nEMediaEngineConfig2.d(k());
nEMediaEngineConfig2.c(new String(this.d.encryptToken));
nEMediaEngineConfig2.a(this.d.encrypt_type);
nEMediaEngineConfig2.g(com.netease.nrtc.utility.c.c.a(com.netease.nrtc.engine.impl.a.b));
nEMediaEngineConfig2.h(i);
nEMediaEngineConfig2.i(com.netease.nrtc.engine.impl.a.k);
if (IRtcEngine.versionCode() >= 1011) {
}
nEMediaEngineConfig2.e(this.au);
nEMediaEngineConfig2.f(this.av);
nEMediaEngineConfig2.k(this.ax);
nEMediaEngineConfig2.g(this.aw);
nEMediaEngineConfig2.h(this.aD);
nEMediaEngineConfig2.m(!StringUtils.isEmpty(this.aJ));
nEMediaEngineConfig2.k(!this.aD && this.aI);
nEMediaEngineConfig2.f(this.aJ);
rtcLiveCompositingLayout = this.aL;
if (rtcLiveCompositingLayout != null) {
}
nEMediaEngineConfig2.l(this.aP);
nEMediaEngineConfig2.o(this.aM);
nEMediaEngineConfig2.n(this.U);
nEMediaEngineConfig2.n(false);
nEMediaEngineConfig2.e(sb3.toString());
nEMediaEngineConfig2.d(sb);
nEMediaEngineConfig2.p(this.aa == 1);
nEMediaEngineConfig2.r(com.netease.nrtc.engine.impl.a.h);
nEMediaEngineConfig2.q(com.netease.nrtc.engine.impl.a.h);
nEMediaEngineConfig2.o(((Integer) com.netease.nrtc.b.a.a(com.netease.nrtc.b.c.ae, 80)).intValue());
nEMediaEngineConfig2.p(((Integer) com.netease.nrtc.b.a.a(com.netease.nrtc.b.c.af, 120)).intValue());
nEMediaEngineConfig2.q(((Integer) com.netease.nrtc.b.a.a(com.netease.nrtc.b.c.ag, 400)).intValue());
nEMediaEngineConfig2.r(((Integer) com.netease.nrtc.b.a.a(com.netease.nrtc.b.c.ah, 1)).intValue());
nEMediaEngineConfig2.s(this.aX);
nEMediaEngineConfig2.t(this.aY);
nEMediaEngineConfig2.s(this.ar);
nEMediaEngineConfig2.a(this.d.reproxy);
return nEMediaEngineConfig2;
}
private LoginExtraConfig x() {
LoginExtraConfig loginExtraConfig = new LoginExtraConfig();
loginExtraConfig.a(this.aV);
loginExtraConfig.a(this.aW);
Trace.d("RtcEngineImpl", "encrypt , type : " + loginExtraConfig.getEncryptType() + " , key : " + loginExtraConfig.getEncryptKey());
return loginExtraConfig;
}
private boolean y() {
return z() && this.aI;
}
private void b() throws Error {
LibraryUtils.loadLibrary("nrtc_sdk");
c();
}
private void d(boolean z) {
WifiInfo connectionInfo;
StringBuilder sb = new StringBuilder();
sb.append(z ? "acquire" : "release");
sb.append(" high performance wifi lock");
Trace.i("RtcEngineImpl", sb.toString());
if (z) {
WifiManager wifiManager = (WifiManager) com.netease.nrtc.engine.impl.a.b.getSystemService("wifi");
if (wifiManager != null) {
WifiManager.WifiLock createWifiLock = wifiManager.createWifiLock(3, "com.netease.nrtc::wifiLock");
this.w = createWifiLock;
createWifiLock.setReferenceCounted(false);
if (this.w.isHeld() || (connectionInfo = wifiManager.getConnectionInfo()) == null) {
return;
}
NetworkInfo.DetailedState detailedStateOf = WifiInfo.getDetailedStateOf(connectionInfo.getSupplicantState());
if (detailedStateOf == NetworkInfo.DetailedState.OBTAINING_IPADDR || detailedStateOf == NetworkInfo.DetailedState.CONNECTED) {
this.w.acquire();
return;
}
return;
}
return;
}
WifiManager.WifiLock wifiLock = this.w;
if (wifiLock == null || !wifiLock.isHeld()) {
return;
}
this.w.release();
this.w = null;
}
private int e() {
boolean z = (l.a(com.netease.nrtc.engine.impl.a.b) || l.a()) && l.c(com.netease.nrtc.engine.impl.a.b);
if (this.as && z) {
return 1;
}
return z ? 2 : 5;
}
private void f() throws RuntimeException {
this.g = new NEMediaEngine(this);
this.j = new com.netease.nrtc.voice.b(com.netease.nrtc.engine.impl.a.b, this, this, c(this.c));
this.n = new com.netease.nrtc.video.a.d(com.netease.nrtc.engine.impl.a.b, this, this);
this.h = d.a();
if (Checker.traceFuncState(this.g.b(), "RtcEngineImpl", "net#init")) {
com.netease.nrtc.monitor.e.a().b();
if (Checker.traceFuncState(this.j.a(), "RtcEngineImpl", "voe#create")) {
com.netease.nrtc.video.a.d dVar = this.n;
if (dVar != null) {
Checker.traceFuncState(dVar.b(), "RtcEngineImpl", "vie#create");
return;
}
return;
}
throw new RuntimeException("voe create error");
}
throw new RuntimeException("net engine init error");
}
private boolean k(long j) {
Trace.i("RtcEngineImpl", "startVideoReceive ->" + j);
boolean z = true;
if (this.d.userId == j) {
z = false;
} else if (j == -1) {
for (j jVar : this.e.values()) {
this.n.a(jVar.a, n(Math.min(NEMediaEngine.a(), jVar.b)));
this.n.a(jVar.a, this.r, this.t, G());
this.n.b(jVar.a, n(Math.min(NEMediaEngine.a(), jVar.b)));
this.n.e(jVar.a);
this.n.c(jVar.a);
this.g.g(jVar.a);
}
} else {
j jVar2 = this.e.get(Long.valueOf(j));
if (jVar2 != null) {
this.n.a(jVar2.a, n(Math.min(NEMediaEngine.a(), jVar2.b)));
this.n.a(jVar2.a, this.r, this.t, G());
this.n.b(jVar2.a, n(Math.min(NEMediaEngine.a(), jVar2.b)));
this.n.e(jVar2.a);
this.n.c(jVar2.a);
this.g.g(jVar2.a);
}
}
Trace.i("RtcEngineImpl", "startVideoReceive done");
return z;
}
@SuppressLint({"WakelockTimeout"})
private void c(boolean z) {
StringBuilder sb = new StringBuilder();
sb.append(z ? "acquire" : "release");
sb.append(" partial wake lock");
Trace.i("RtcEngineImpl", sb.toString());
if (z) {
PowerManager powerManager = (PowerManager) com.netease.nrtc.engine.impl.a.b.getSystemService("power");
if (this.x == null && powerManager != null) {
PowerManager.WakeLock newWakeLock = powerManager.newWakeLock(1, "com.netease.nrtc::wakeLock");
this.x = newWakeLock;
newWakeLock.setReferenceCounted(false);
}
PowerManager.WakeLock wakeLock = this.x;
if (wakeLock == null || wakeLock.isHeld()) {
return;
}
this.x.acquire();
return;
}
PowerManager.WakeLock wakeLock2 = this.x;
if (wakeLock2 == null || !wakeLock2.isHeld()) {
return;
}
this.x.release();
this.x = null;
}
private void h(long j) {
Trace.i("RtcEngineImpl", "stopVoiceReceiving ->" + j);
if (this.d.userId != j) {
if (j == -1) {
for (Long l : this.e.keySet()) {
long longValue = l.longValue();
if (longValue != this.d.userId) {
try {
this.j.b(longValue);
} catch (Exception e) {
e.printStackTrace();
}
}
}
} else {
this.j.b(j);
}
}
Trace.i("RtcEngineImpl", "stopVoiceReceiving done");
}
private void n(long j) {
Trace.i("RtcEngineImpl", "stopVideoReceive(" + j + ") start");
if (j == -1) {
for (j jVar : this.e.values()) {
this.g.f(jVar.a);
this.n.g(jVar.a);
}
return;
}
this.g.f(j);
this.n.g(j);
}
private int o(long j) {
return this.g.h(j);
}
private int p(int i) {
if (this.al != 0 && i < 4) {
Trace.w("RtcEngineImpl", -300000L, "resolution is too low , resolutionIndex : " + i);
return 4;
}
return i;
}
@Override
public int startAudioRecording(int i) {
this.aU = i;
com.netease.nrtc.rec.a aVar = this.h;
if (aVar != null) {
aVar.a(i);
}
return startAudioRecording();
}
public void a(Set<Integer> set) {
for (Integer num : set) {
int intValue = num.intValue();
EncodeStatInfo g = this.n.g(intValue);
if (g == null) {
g = EncodeStatInfo.obtain();
}
this.g.b(this.aq.a(intValue), intValue, g.a(), g.b());
g.recycle();
}
}
private void b(final int i, int i2, final Set<Integer> set, final boolean z) {
com.netease.nrtc.b.a.a(i);
com.netease.nrtc.voice.b bVar = this.j;
if (bVar != null) {
bVar.a(i, i2);
}
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onAudioDeviceChanged(i, set, z);
}
});
}
private void l(long j) {
Trace.i("RtcEngineImpl", "deleteVideoChannel ->" + j);
if (j == -1) {
for (j jVar : this.e.values()) {
this.n.b(jVar.a);
}
} else {
this.n.b(j);
}
Trace.i("RtcEngineImpl", "deleteVideoChannel done");
}
private void m(long j) {
Trace.i("RtcEngineImpl", "stopVideoRending(" + j + ") start");
if (j == -1) {
for (j jVar : this.e.values()) {
this.n.d(jVar.a);
}
} else {
this.n.d(j);
}
Trace.i("RtcEngineImpl", "stopVideoRending(" + j + ") done");
}
private void e(boolean z) {
com.netease.nrtc.internal.b bVar = this.ai;
if (z) {
bVar.d();
}
if (this.aD) {
this.aj = bVar.a();
this.ak = bVar.b();
this.al = bVar.c();
} else {
this.aj = true;
this.ak = true;
this.al = 0;
}
if (this.al == 0 || this.R != 3) {
return;
}
this.al = 0;
Trace.w("RtcEngineImpl", -300000L, " video qos strategy is screen sharing , only support PUBLISH_MODEL_SINGLE_STREAM");
}
public boolean p(long j) {
b bVar = this.ad.get(Long.valueOf(j));
return bVar != null && bVar.c();
}
public void q(long j) {
NEMediaEngine nEMediaEngine;
if (this.y.get() != 3 || (nEMediaEngine = this.g) == null) {
return;
}
nEMediaEngine.e(j);
}
public void g(int i) {
int i2 = 0;
if (i != 0) {
if (i == 1) {
i2 = 270;
} else if (i == 2) {
i2 = 180;
} else if (i == 3) {
i2 = 90;
}
}
int surfaceRotationToRealWorldRotation = (i2 + VideoUtils.surfaceRotationToRealWorldRotation(this.aH)) % 360;
if (surfaceRotationToRealWorldRotation != this.G) {
this.G = surfaceRotationToRealWorldRotation;
Trace.i("RtcEngineImpl", "orientationChanged -> " + this.G);
com.netease.nrtc.video.a.d dVar = this.n;
if (dVar != null) {
dVar.c(this.G);
}
}
VideoUtils.restDisplayRotationTime();
}
public com.netease.nrtc.monitor.statistics.e s(int i) {
com.netease.nrtc.monitor.statistics.e eVar = this.T.get(i);
if (eVar == null) {
com.netease.nrtc.monitor.statistics.e eVar2 = new com.netease.nrtc.monitor.statistics.e();
this.T.put(i, eVar2);
return eVar2;
}
return eVar;
}
private void b(boolean z) {
if (SystemPermissionUtils.checkWakeLockPermission(com.netease.nrtc.engine.impl.a.b)) {
d(z);
c(z);
}
}
@Override
public synchronized int updateSharedEGLContext(android.opengl.EGLContext eGLContext) {
if (this.n == null) {
Trace.e("RtcEngineImpl", "updateSharedEGL14Context error, vie is null");
return -1;
}
EglContextWrapper eglContextWrapper = this.ah;
if (eglContextWrapper != null && eGLContext != eglContextWrapper.getEglContext()) {
Trace.i("RtcEngineImpl", "updateSharedEGL14Context:" + eGLContext + " default EglContext: " + this.ah.getEglContext());
this.ah.release();
this.ah = null;
}
return this.n.a(eGLContext) ? 0 : -2;
}
public void u(final int i) {
Trace.i("RtcEngineImpl", "re login callback , reason : " + i);
ThreadUtils.runOnThread(this.v, new Runnable() {
@Override
public final void run() {
com.netease.nrtc.engine.impl.e.this.t(i);
}
});
}
public void t(int i) {
this.b.onReloginCallback(i, this.d);
}
@Override
public void b(long j, final String str) {
final long j2 = j == 0 ? this.d.userId : j;
Trace.i("RtcEngineImpl", "onAVRecordingCompletion ->" + j);
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onAVRecordingCompletion(j2, str);
}
});
}
private void a(Context context, String str, boolean z, int i) {
com.netease.nrtc.engine.impl.a.b = context.getApplicationContext();
com.netease.nrtc.engine.impl.a.d = str;
com.netease.nrtc.engine.impl.a.g = false;
com.netease.nrtc.engine.impl.a.c = SystemClock.elapsedRealtime();
com.netease.nrtc.engine.impl.a.j = this.P;
com.netease.nrtc.engine.impl.a.h = z;
com.netease.nrtc.engine.impl.a.k = i;
}
public void y(final int i) {
Trace.i("RtcEngineImpl", "onDisconnectServer:" + i);
if (this.y.get() != 3) {
Trace.i("RtcEngineImpl", "status not running");
return;
}
this.z.set(4);
Trace.d("Connect-Status-Test-Log", "status : " + this.z.get());
if (z() && i == 1 && u() && this.D.getAndIncrement() < 2) {
Trace.i("RtcEngineImpl", "disconnect server, login again!");
v();
}
if (i == 3 || i == 2) {
leaveChannel();
}
if (this.C.get()) {
return;
}
if (this.d != null) {
com.netease.nrtc.c.a(new com.netease.nrtc.c.d.a(this.d.userId, String.valueOf(i)));
}
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onDisconnectServer(i);
}
});
}
private void i(long j) {
Trace.i("RtcEngineImpl", "deleteVoiceChannel ->" + j);
if (this.d.userId != j) {
if (j == -1) {
for (Long l : this.e.keySet()) {
long longValue = l.longValue();
if (longValue != this.d.userId) {
try {
com.netease.nrtc.monitor.j jVar = this.M;
if (jVar != null) {
jVar.c(longValue);
}
this.j.e(longValue);
} catch (Exception e) {
e.printStackTrace();
}
}
}
} else {
com.netease.nrtc.monitor.j jVar2 = this.M;
if (jVar2 != null) {
jVar2.c(j);
}
this.j.e(j);
}
}
Trace.i("RtcEngineImpl", "deleteVoiceChannel done");
}
public void v(int i) {
if (this.y.get() != 3 || this.g == null || this.S == i) {
return;
}
this.S = i;
Q();
boolean c = new b.a(i).c();
float f = c ? 0.75f : 0.5f;
int a2 = c ? com.netease.nrtc.b.a.a(com.netease.nrtc.b.c.u, 200) : 85;
int i2 = (int) (a2 * 1.0f * f);
this.g.b(i2, a2);
Trace.i("RtcEngineImpl", "overuse setEncodeUsageThresholdPercent->" + i2 + "," + a2);
}
private String c(String str) {
if (TextUtils.isEmpty(str)) {
return null;
}
File file = new File(str, "audio_dump");
if (!file.exists()) {
file.mkdirs();
}
return file.getAbsolutePath();
}
private void d() {
Trace.CreateTrace();
Trace.nativeSetTraceFilter(e());
if (StringUtils.isEmpty(this.c)) {
return;
}
File file = new File(this.c);
if (!file.exists()) {
file.mkdirs();
}
Trace.nativeSetTraceFile(new File(this.c, "nrtc_sdk.log").getAbsolutePath(), false, (l.a(com.netease.nrtc.engine.impl.a.b) || l.a()) && l.c(com.netease.nrtc.engine.impl.a.b));
}
private void g(long j) {
Trace.i("RtcEngineImpl", "startVoicePlayout ->" + j);
RtcConfig rtcConfig = this.d;
if (rtcConfig != null && rtcConfig.userId != j) {
if (j == -1) {
for (Long l : this.e.keySet()) {
long longValue = l.longValue();
if (longValue != this.d.userId) {
try {
this.j.d(longValue);
this.j.a(longValue);
} catch (Exception e) {
e.printStackTrace();
}
}
}
this.j.g();
} else {
this.j.d(j);
this.j.a(j);
this.j.f(j);
}
}
Trace.i("RtcEngineImpl", "startVoicePlayout done");
}
@Override
public void b(final String str) {
Trace.i("RtcEngineImpl", "onAudioRecordingCompletion");
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onAudioRecordingCompletion(str);
}
});
}
@Override
public void f(final long j) {
Trace.i("RtcEngineImpl", "onFirstFrameRendered->" + j);
RtcConfig rtcConfig = this.d;
if (rtcConfig != null && rtcConfig.userId != j && com.netease.nrtc.c.a.a().a(j, 1)) {
com.netease.nrtc.c.a(new com.netease.nrtc.c.l.a(this.d.channel, j, 1));
}
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onFirstVideoFrameRendered(j);
}
});
}
@Override
public boolean b(long j) {
boolean z = true;
return this.j.a(j, (this.aD && this.aC == 1) ? false : false);
}
public void d(LoginResInfo loginResInfo) {
StringBuilder sb = new StringBuilder();
sb.append("re login call back , result = ");
sb.append(loginResInfo == null ? "null" : Long.valueOf(loginResInfo.a()));
Trace.i("RtcEngineImpl", sb.toString());
if (loginResInfo == null || loginResInfo.a() != 200) {
return;
}
S();
}
private void e(String str) {
if (!TextUtils.isEmpty(this.aJ) && this.aJ != str) {
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.ar);
}
this.aJ = str;
if (this.y.get() == 3) {
this.g.a(this.aJ);
}
}
private void a(String str, Object obj) {
char c;
char c2;
char c3;
char c4;
char c5;
char c6;
char c7;
boolean z;
str.hashCode();
switch (str.hashCode()) {
case 311174625:
if (str.equals(RtcParameters.KEY_VIDEO_ENCRYPT_KEY)) {
c = 0;
break;
}
c = 65535;
break;
case 955184389:
if (str.equals(RtcParameters.KEY_SESSION_LIVE_URL)) {
c = 1;
break;
}
c = 65535;
break;
case 1056765944:
if (str.equals(RtcParameters.KEY_VIDEO_ENCRYPT_TYPE)) {
c = 2;
break;
}
c = 65535;
break;
default:
c = 65535;
break;
}
switch (c) {
case 0:
case 2:
break;
case 1:
StringBuilder sb = new StringBuilder();
sb.append("set parameter: [");
sb.append(str.toUpperCase());
sb.append(", ");
sb.append(StringUtils.isEmpty((String) obj) ? "null" : "url");
sb.append("]");
Trace.i("RtcEngineImpl", sb.toString());
break;
default:
Trace.i("RtcEngineImpl", "set parameter: [" + str.toUpperCase() + ", " + obj + "]");
break;
}
if (obj == null) {
Trace.i("RtcEngineImpl", "ignore parameter: [" + str.toUpperCase() + "]");
return;
}
str.hashCode();
switch (str.hashCode()) {
case -2071249850:
if (str.equals(RtcParameters.KEY_NETLIB_VIDEO_LOOPBACK)) {
c2 = 0;
break;
}
c2 = 65535;
break;
case -2071183187:
if (str.equals(RtcParameters.KEY_SERVER_RECORD_SPEAKER)) {
c2 = 1;
break;
}
c2 = 65535;
break;
case -1999908078:
if (str.equals(RtcParameters.KEY_DEVICE_FIXED_ROTATION)) {
c2 = 2;
break;
}
c2 = 65535;
break;
case -1979116379:
if (str.equals(RtcParameters.KEY_DEVICE_DEFAULT_ROTATION)) {
c2 = 3;
break;
}
c2 = 65535;
break;
case -1862587763:
if (str.equals(RtcParameters.KEY_VIDEO_FPS_REPORTED)) {
c2 = 4;
break;
}
c2 = 65535;
break;
case -1791226945:
if (str.equals(RtcParameters.KEY_VIDEO_ROTATE_IN_RENDING)) {
c2 = 5;
break;
}
c2 = 65535;
break;
case -1683085645:
if (str.equals(RtcParameters.KEY_VIDEO_CAPTURE_ORIENTATION)) {
c2 = 6;
break;
}
c2 = 65535;
break;
case -1679500112:
if (str.equals(RtcParameters.KEY_PROFILE_TRACE_FLAG_DEBUG)) {
c2 = 7;
break;
}
c2 = 65535;
break;
case -1639007703:
if (str.equals(RtcParameters.KEY_AUDIO_EFFECT_AGC_CONFIG)) {
c2 = '\b';
break;
}
c2 = 65535;
break;
case -1624428709:
if (str.equals(RtcParameters.KEY_VIDEO_QUALITY)) {
c2 = '\t';
break;
}
c2 = 65535;
break;
case -1574984238:
if (str.equals(RtcParameters.KEY_AUDIO_PROCESS_DUMP_FLAG_DEBUG)) {
c2 = '\n';
break;
}
c2 = 65535;
break;
case -1527914602:
if (str.equals(RtcParameters.KEY_DEVICE_ROTATION_FIXED_OFFSET)) {
c2 = 11;
break;
}
c2 = 65535;
break;
case -1460447772:
if (str.equals(RtcParameters.KEY_VIDEO_PREVIEW_QUALITY)) {
c2 = '\f';
break;
}
c2 = 65535;
break;
case -1443392620:
if (str.equals(RtcParameters.KEY_AUDIO_ADJUST_PLAYBACK_SIGNAL_VOLUME)) {
c2 = '\r';
break;
}
c2 = 65535;
break;
case -1285199350:
if (str.equals(RtcParameters.KEY_VIDEO_ENCODER_MODE)) {
c2 = 14;
break;
}
c2 = 65535;
break;
case -1156683758:
if (str.equals(RtcParameters.KEY_SESSION_MULTI_MODE)) {
c2 = 15;
break;
}
c2 = 65535;
break;
case -1144049993:
if (str.equals(RtcParameters.KEY_PROFILES_ENABLE_ON_TEST_SERVER)) {
c2 = 16;
break;
}
c2 = 65535;
break;
case -830116030:
if (str.equals(RtcParameters.KEY_AUDIO_EFFECT_NOISE_SUPPRESSOR)) {
c2 = 17;
break;
}
c2 = 65535;
break;
case -773145927:
if (str.equals(RtcParameters.KEY_VIDEO_TRANSPORT_MIRROR)) {
c2 = 18;
break;
}
c2 = 65535;
break;
case -705087381:
if (str.equals(RtcParameters.KEY_VIDEO_FIXED_CROP_RATIO)) {
c2 = 19;
break;
}
c2 = 65535;
break;
case -574756739:
if (str.equals(RtcParameters.KEY_SESSION_MULTI_MODE_USER_ROLE)) {
c2 = 20;
break;
}
c2 = 65535;
break;
case -454296371:
if (str.equals(RtcParameters.KEY_SESSION_LIVE_MODE)) {
c2 = 21;
break;
}
c2 = 65535;
break;
case -334213656:
if (str.equals(RtcParameters.KEY_SERVER_LIVE_RECORD)) {
c2 = 22;
break;
}
c2 = 65535;
break;
case -161968216:
if (str.equals(RtcParameters.KEY_VIDEO_FRAME_FILTER_FORMAT)) {
c2 = 23;
break;
}
c2 = 65535;
break;
case -157773497:
if (str.equals(RtcParameters.KEY_AUDIO_CALL_PROXIMITY)) {
c2 = 24;
break;
}
c2 = 65535;
break;
case -146319937:
if (str.equals(RtcParameters.KEY_LOCAL_ENCODE_DECODE_VIDEO)) {
c2 = 25;
break;
}
c2 = 65535;
break;
case -137287658:
if (str.equals(RtcParameters.KEY_AUDIO_EFFECT_AUTOMATIC_GAIN_CONTROL)) {
c2 = JSONLexer.EOI;
break;
}
c2 = 65535;
break;
case -112917522:
if (str.equals(RtcParameters.KEY_VIDEO_MAX_BITRATE)) {
c2 = 27;
break;
}
c2 = 65535;
break;
case -70718756:
if (str.equals(RtcParameters.KEY_AUDIO_PLAYBACK_DEFAULT_SAMPLE_RATE)) {
c2 = 28;
break;
}
c2 = 65535;
break;
case 129341046:
if (str.equals(RtcParameters.KEY_SERVER_AUDIO_RECORD)) {
c2 = 29;
break;
}
c2 = 65535;
break;
case 237668859:
if (str.equals(RtcParameters.KEY_AUDIO_EXTERNAL_CAPTURE)) {
c2 = 30;
break;
}
c2 = 65535;
break;
case 311174625:
if (str.equals(RtcParameters.KEY_VIDEO_ENCRYPT_KEY)) {
c2 = 31;
break;
}
c2 = 65535;
break;
case 337397166:
if (str.equals(RtcParameters.KEY_VIDEO_FRAME_FILTER)) {
c2 = ' ';
break;
}
c2 = 65535;
break;
case 372528241:
if (str.equals(RtcParameters.KEY_COMPATIBILITY_CONFIG_SERVER)) {
c2 = '!';
break;
}
c2 = 65535;
break;
case 412571665:
if (str.equals(RtcParameters.KEY_SDK_FEATURE_STATISTICS)) {
c2 = C1672.f6711;
break;
}
c2 = 65535;
break;
case 419532311:
if (str.equals(RtcParameters.KEY_AUDIO_ADJUST_CAPTURED_SIGNAL_VOLUME)) {
c2 = '#';
break;
}
c2 = 65535;
break;
case 596167219:
if (str.equals(RtcParameters.KEY_AUDIO_FRAME_FILTER)) {
c2 = '$';
break;
}
c2 = 65535;
break;
case 698571901:
if (str.equals(RtcParameters.KEY_COMPATIBILITY_CONFIG_LOCAL)) {
c2 = '%';
break;
}
c2 = 65535;
break;
case 760558347:
if (str.equals(RtcParameters.KEY_AUDIO_HIGH_QUALITY)) {
c2 = C1672.f6726;
break;
}
c2 = 65535;
break;
case 955184389:
if (str.equals(RtcParameters.KEY_SESSION_LIVE_URL)) {
c2 = '\'';
break;
}
c2 = 65535;
break;
case 1056765944:
if (str.equals(RtcParameters.KEY_VIDEO_ENCRYPT_TYPE)) {
c2 = '(';
break;
}
c2 = 65535;
break;
case 1103225839:
if (str.equals(RtcParameters.KEY_SESSION_LIVE_COMPOSITING_LAYOUT)) {
c2 = ')';
break;
}
c2 = 65535;
break;
case 1285247325:
if (str.equals(RtcParameters.KEY_AUDIO_REPORT_SPEAKER)) {
c2 = '*';
break;
}
c2 = 65535;
break;
case 1464760610:
if (str.equals(RtcParameters.KEY_AUDIO_EFFECT_FAR_END_AUTOMATIC_GAIN_CONTROL)) {
c2 = '+';
break;
}
c2 = 65535;
break;
case 1568541233:
if (str.equals(RtcParameters.KEY_SERVER_VIDEO_RECORD)) {
c2 = ',';
break;
}
c2 = 65535;
break;
case 1658076469:
if (str.equals(RtcParameters.KEY_AUDIO_EFFECT_FAR_END_AGC_CONFIG)) {
c2 = '-';
break;
}
c2 = 65535;
break;
case 1823452394:
if (str.equals(RtcParameters.KEY_AUDIO_EFFECT_ACOUSTIC_ECHO_CANCELER)) {
c2 = '.';
break;
}
c2 = 65535;
break;
case 1873378274:
if (str.equals(RtcParameters.KEY_VIDEO_DECODER_MODE)) {
c2 = '/';
break;
}
c2 = 65535;
break;
case 1882245767:
if (str.equals(RtcParameters.KEY_AUDIO_SPECIAL_CODEC)) {
c2 = '0';
break;
}
c2 = 65535;
break;
case 2022851605:
if (str.equals(RtcParameters.KEY_AUDIO_CAPTURE_DEFAULT_SAMPLE_RATE)) {
c2 = '1';
break;
}
c2 = 65535;
break;
case 2061813685:
if (str.equals(RtcParameters.KEY_SERVER_RECORD_MODE)) {
c2 = '2';
break;
}
c2 = 65535;
break;
case 2083380374:
if (str.equals(RtcParameters.KEY_VIDEO_FRAME_RATE)) {
c2 = '3';
break;
}
c2 = 65535;
break;
case 2083690383:
if (str.equals(RtcParameters.KEY_VIDEO_FRAME_FILTER_NEW)) {
c2 = '4';
break;
}
c2 = 65535;
break;
case 2099798764:
if (str.equals(RtcParameters.KEY_SDK_ENABLE_GPL)) {
c2 = '5';
break;
}
c2 = 65535;
break;
case 2131807051:
if (str.equals(RtcParameters.KEY_NETLIB_AUDIO_LOOPBACK)) {
c2 = '6';
break;
}
c2 = 65535;
break;
case 2138662542:
if (str.equals(RtcParameters.KEY_VIDEO_LOCAL_PREVIEW_MIRROR)) {
c2 = '7';
break;
}
c2 = 65535;
break;
default:
c2 = 65535;
break;
}
switch (c2) {
case 0:
this.aX = ((Boolean) obj).booleanValue();
return;
case 1:
this.aw = ((Boolean) obj).booleanValue();
return;
case 2:
int intValue = ((Integer) obj).intValue();
this.aF = intValue;
this.n.c(VideoUtils.surfaceRotationToRealWorldRotation(intValue));
this.aG = true;
return;
case 3:
int intValue2 = ((Integer) obj).intValue();
this.aF = intValue2;
this.n.c(VideoUtils.surfaceRotationToRealWorldRotation(intValue2));
return;
case 4:
this.aE = ((Boolean) obj).booleanValue();
return;
case 5:
boolean booleanValue = ((Boolean) obj).booleanValue();
this.az = booleanValue;
this.n.b(booleanValue);
if (this.az) {
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.L);
return;
}
return;
case 6:
int intValue3 = ((Integer) obj).intValue();
this.aQ = intValue3;
this.n.d(VideoUtils.surfaceRotationToRealWorldRotation(intValue3));
int i = this.aQ;
if (i == 0 || i == 2) {
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.P, 2);
return;
} else if (i == 3 || i == 1) {
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.P, 1);
return;
} else {
return;
}
case 7:
this.as = ((Boolean) obj).booleanValue();
int e = e();
Trace.nativeSetTraceFilter(e);
NEMediaEngine nEMediaEngine = this.g;
if (nEMediaEngine != null) {
nEMediaEngine.f(e);
return;
}
return;
case '\b':
RtcAgcConfig rtcAgcConfig = (RtcAgcConfig) obj;
Integer num = rtcAgcConfig.mode;
if (num != null && C3865.m17582(num.intValue())) {
com.netease.nrtc.voice.a.a.a(rtcAgcConfig.mode.intValue());
}
Boolean bool = rtcAgcConfig.limiterEnabled;
if (bool != null) {
this.j.e(bool.booleanValue());
}
Integer num2 = rtcAgcConfig.compressionGainDb;
if (num2 != null) {
this.j.e(num2.intValue());
}
Integer num3 = rtcAgcConfig.targetLevelDbfs;
if (num3 != null) {
this.j.d(num3.intValue());
return;
}
return;
case '\t':
if (this.al != 0 && this.y.get() == 3 && 1 == ((Integer) obj).intValue()) {
Trace.w("RtcEngineImpl", "QUALITY_LOW not allowed at multi stream");
return;
}
int i2 = this.aA;
int intValue4 = ((Integer) obj).intValue();
this.aA = intValue4;
if (i2 != intValue4) {
aa();
X();
}
if (this.d != null) {
int i3 = com.netease.nrtc.c.g.b.i;
com.netease.nrtc.c.a(new com.netease.nrtc.c.g.a(i3, "1", o(this.aA) + ""));
}
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.y, o(this.aA));
return;
case '\n':
this.j.h(((Integer) obj).intValue());
return;
case 11:
this.aH = ((Integer) obj).intValue();
return;
case '\f':
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.ag);
int intValue5 = ((Integer) obj).intValue();
if (this.aB == intValue5) {
return;
}
this.aB = intValue5;
aa();
Z();
return;
case '\r':
this.j.b(((Integer) obj).intValue());
return;
case 14:
String str2 = (String) obj;
str2.hashCode();
switch (str2.hashCode()) {
case -1687096461:
if (str2.equals("media_codec_auto")) {
c3 = 0;
break;
}
c3 = 65535;
break;
case -1021446805:
if (str2.equals("media_codec_software")) {
c3 = 1;
break;
}
c3 = 65535;
break;
case 2071099820:
if (str2.equals("media_codec_hardware")) {
c3 = 2;
break;
}
c3 = 65535;
break;
default:
c3 = 65535;
break;
}
switch (c3) {
case 0:
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.A, 0);
com.netease.nrtc.video.a.e.b(false);
com.netease.nrtc.video.a.e.d(true);
break;
case 1:
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.A, 1);
com.netease.nrtc.video.a.e.b(false);
com.netease.nrtc.video.a.e.d(false);
break;
case 2:
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.A, 2);
com.netease.nrtc.video.a.e.b(true);
com.netease.nrtc.video.a.e.d(true);
break;
}
if (this.y.get() == 3) {
this.n.c(true);
return;
}
return;
case 15:
this.aD = ((Boolean) obj).booleanValue();
return;
case 16:
this.aZ = ((Boolean) obj).booleanValue();
return;
case 17:
String str3 = (String) obj;
str3.hashCode();
switch (str3.hashCode()) {
case -1143663023:
if (str3.equals("audio_effect_mode_disable")) {
c4 = 0;
break;
}
c4 = 65535;
break;
case -900892964:
if (str3.equals("audio_effect_mode_sdk_builtin_priority")) {
c4 = 1;
break;
}
c4 = 65535;
break;
case -489074763:
if (str3.equals("audio_effect_mode_platform_builtin_priority")) {
c4 = 2;
break;
}
c4 = 65535;
break;
default:
c4 = 65535;
break;
}
switch (c4) {
case 0:
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.F, 0);
com.netease.nrtc.voice.a.a.d(false);
return;
case 1:
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.F, 1);
com.netease.nrtc.voice.a.a.d(true);
com.netease.nrtc.voice.a.a.c(true);
return;
case 2:
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.F, 2);
com.netease.nrtc.voice.a.a.d(true);
com.netease.nrtc.voice.a.a.c(false);
return;
default:
return;
}
case 18:
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.o);
this.n.g(((Boolean) obj).booleanValue());
return;
case 19:
int intValue6 = ((Integer) obj).intValue();
this.aR = intValue6;
this.n.a(intValue6);
com.netease.nrtc.c.a(new com.netease.nrtc.c.g.a(com.netease.nrtc.c.g.b.m, "1", String.valueOf(this.aR)));
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.M, this.aR);
return;
case 20:
int intValue7 = ((Integer) obj).intValue();
if (this.y.get() != 3) {
this.aC = intValue7;
return;
} else {
setRole(intValue7);
return;
}
case 21:
this.aI = ((Boolean) obj).booleanValue();
return;
case 22:
this.aP = ((Boolean) obj).booleanValue();
return;
case 23:
this.n.f(((Integer) obj).intValue());
return;
case 24:
this.ay = ((Boolean) obj).booleanValue();
return;
case 25:
try {
JSONObject jSONObject = new JSONObject((String) obj);
com.netease.nrtc.engine.impl.a.s = jSONObject.optBoolean("local_encode_encode_video", false);
this.ao = jSONObject.optInt("high_res_count", 1);
this.ap = jSONObject.optInt("low_res_count", 1);
this.an = C3890.m17588();
return;
} catch (Exception e2) {
e2.printStackTrace();
return;
}
case 26:
String str4 = (String) obj;
str4.hashCode();
switch (str4.hashCode()) {
case -1143663023:
if (str4.equals("audio_effect_mode_disable")) {
c5 = 0;
break;
}
c5 = 65535;
break;
case -900892964:
if (str4.equals("audio_effect_mode_sdk_builtin_priority")) {
c5 = 1;
break;
}
c5 = 65535;
break;
case -489074763:
if (str4.equals("audio_effect_mode_platform_builtin_priority")) {
c5 = 2;
break;
}
c5 = 65535;
break;
default:
c5 = 65535;
break;
}
switch (c5) {
case 0:
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.G, 0);
com.netease.nrtc.voice.a.a.f(false);
return;
case 1:
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.G, 1);
com.netease.nrtc.voice.a.a.f(true);
com.netease.nrtc.voice.a.a.b(true);
return;
case 2:
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.G, 2);
com.netease.nrtc.voice.a.a.f(true);
com.netease.nrtc.voice.a.a.b(false);
return;
default:
return;
}
case 27:
this.aS = ((Integer) obj).intValue();
if (this.y.get() == 3) {
R();
}
com.netease.nrtc.c.a(new com.netease.nrtc.c.g.a(com.netease.nrtc.c.g.b.l, "1", String.valueOf(this.aS)));
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.C, this.aS);
return;
case 28:
AudioDeviceParameters.b(((Integer) obj).intValue());
return;
case 29:
boolean booleanValue2 = ((Boolean) obj).booleanValue();
this.au = booleanValue2;
if (booleanValue2) {
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.aa);
return;
}
return;
case 30:
this.j.b(((Boolean) obj).booleanValue());
return;
case 31:
this.aW = (String) obj;
return;
case ' ':
this.n.d(((Boolean) obj).booleanValue());
return;
case '!':
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.w);
com.netease.nrtc.b.a.b(com.netease.nrtc.engine.impl.a.b, (String) obj);
return;
case '\"':
a((Pair) obj);
return;
case '#':
this.j.c(((Integer) obj).intValue());
return;
case '$':
this.j.g(((Boolean) obj).booleanValue());
return;
case '%':
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.w);
com.netease.nrtc.b.a.a((String) obj);
return;
case '&':
this.aM = ((Boolean) obj).booleanValue();
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.x);
return;
case '\'':
e((String) obj);
return;
case '(':
this.aV = ((Integer) obj).intValue();
return;
case ')':
this.aL = (RtcLiveCompositingLayout) obj;
return;
case '*':
this.j.d(((Boolean) obj).booleanValue());
return;
case '+':
com.netease.nrtc.voice.a.a.g("audio_effect_mode_sdk_builtin_priority".equals((String) obj));
return;
case ',':
boolean booleanValue3 = ((Boolean) obj).booleanValue();
this.av = booleanValue3;
if (booleanValue3) {
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.ab);
return;
}
return;
case '-':
RtcAgcConfig rtcAgcConfig2 = (RtcAgcConfig) obj;
Integer num4 = rtcAgcConfig2.mode;
if (num4 != null && C3865.m17582(num4.intValue())) {
com.netease.nrtc.voice.a.a.b(rtcAgcConfig2.mode.intValue());
}
Boolean bool2 = rtcAgcConfig2.limiterEnabled;
if (bool2 != null) {
this.j.f(bool2.booleanValue());
}
Integer num5 = rtcAgcConfig2.compressionGainDb;
if (num5 != null) {
this.j.g(num5.intValue());
}
Integer num6 = rtcAgcConfig2.targetLevelDbfs;
if (num6 != null) {
this.j.f(num6.intValue());
return;
}
return;
case '.':
String str5 = (String) obj;
str5.hashCode();
switch (str5.hashCode()) {
case -1143663023:
if (str5.equals("audio_effect_mode_disable")) {
c6 = 0;
break;
}
c6 = 65535;
break;
case -900892964:
if (str5.equals("audio_effect_mode_sdk_builtin_priority")) {
c6 = 1;
break;
}
c6 = 65535;
break;
case -489074763:
if (str5.equals("audio_effect_mode_platform_builtin_priority")) {
c6 = 2;
break;
}
c6 = 65535;
break;
default:
c6 = 65535;
break;
}
switch (c6) {
case 0:
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.I, 0);
com.netease.nrtc.voice.a.a.e(false);
return;
case 1:
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.I, 1);
com.netease.nrtc.voice.a.a.e(true);
com.netease.nrtc.voice.a.a.a(true);
return;
case 2:
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.I, 2);
com.netease.nrtc.voice.a.a.e(true);
com.netease.nrtc.voice.a.a.a(false);
return;
default:
return;
}
case '/':
String str6 = (String) obj;
str6.hashCode();
switch (str6.hashCode()) {
case -1687096461:
if (str6.equals("media_codec_auto")) {
c7 = 0;
break;
}
c7 = 65535;
break;
case -1021446805:
if (str6.equals("media_codec_software")) {
c7 = 1;
break;
}
c7 = 65535;
break;
case 2071099820:
if (str6.equals("media_codec_hardware")) {
c7 = 2;
break;
}
c7 = 65535;
break;
default:
c7 = 65535;
break;
}
switch (c7) {
case 0:
z = false;
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.B, 0);
com.netease.nrtc.video.a.e.c(false);
com.netease.nrtc.video.a.e.e(true);
break;
case 1:
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.B, 1);
z = false;
com.netease.nrtc.video.a.e.c(false);
com.netease.nrtc.video.a.e.e(false);
break;
case 2:
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.B, 2);
com.netease.nrtc.video.a.e.c(true);
com.netease.nrtc.video.a.e.e(true);
default:
z = false;
break;
}
if (this.y.get() == 3) {
this.n.c(z);
return;
}
return;
case '0':
this.aT = ((Integer) obj).intValue();
return;
case '1':
AudioDeviceParameters.a(((Integer) obj).intValue());
return;
case '2':
int intValue8 = ((Integer) obj).intValue();
this.ax = intValue8;
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.ac, intValue8);
return;
case '3':
if (this.y.get() != 3) {
int intValue9 = ((Integer) obj).intValue();
if (this.aK != intValue9) {
this.aK = intValue9;
Z();
}
} else {
Trace.e("RtcEngineImpl", "status is running , cannot change video rate");
}
com.netease.nrtc.c.a(new com.netease.nrtc.c.g.a(com.netease.nrtc.c.g.b.k, "1", String.valueOf(this.aK)));
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.z, (this.aK / 5) + 1);
return;
case '4':
this.n.e(((Boolean) obj).booleanValue());
return;
case '5':
com.netease.nrtc.engine.impl.a.g = ((Boolean) obj).booleanValue();
return;
case '6':
this.aY = ((Boolean) obj).booleanValue();
return;
case '7':
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.n);
this.n.f(((Boolean) obj).booleanValue());
return;
default:
Trace.e("RtcEngineImpl", "set parameter [" + str.toUpperCase() + "] unsupported!");
return;
}
}
private void c(LoginResInfo loginResInfo) {
SessionInfo obtain;
com.netease.nrtc.c.i.a aVar = new com.netease.nrtc.c.i.a();
if (this.d != null) {
aVar.a(this.d.userId + "");
aVar.b(this.d.channel + "");
}
aVar.a(this.aD);
aVar.b(this.au);
aVar.c(this.av);
aVar.a(this.ax);
aVar.d(this.aw);
aVar.d(this.N.c());
aVar.e(this.N.d());
aVar.e(this.aI && this.aD);
NEMediaEngine nEMediaEngine = this.g;
if (nEMediaEngine != null) {
obtain = nEMediaEngine.g();
} else {
obtain = SessionInfo.obtain();
}
aVar.c(obtain.a());
aVar.b(this.aa);
aVar.c((int) loginResInfo.a());
aVar.a(com.netease.nrtc.video.a.e.i());
aVar.b(com.netease.nrtc.video.a.e.j());
com.netease.nrtc.c.a(aVar);
}
public void c(int i, int i2, int i3) {
if (this.y.get() != 3) {
Trace.i("RtcEngineImpl", "status not running");
return;
}
this.n.a(i, i2, i3);
Trace.i("RtcEngineImpl", "onVideoDropFrame->(flag=" + i + ", long time drop=" + i2 + " type = " + i3 + C5923.C5925.f19790);
}
@Override
public void e(long j) {
Trace.i("RtcEngineImpl", "onFirstFramePkgReceived->" + j);
if (this.d != null) {
com.netease.nrtc.c.a(new com.netease.nrtc.c.l.c(String.valueOf(this.d.channel), String.valueOf(j), 1));
}
}
private Object d(String str) {
str.hashCode();
char c = 65535;
switch (str.hashCode()) {
case -2071183187:
if (str.equals(RtcParameters.KEY_SERVER_RECORD_SPEAKER)) {
c = 0;
break;
}
break;
case -1999908078:
if (str.equals(RtcParameters.KEY_DEVICE_FIXED_ROTATION)) {
c = 1;
break;
}
break;
case -1979116379:
if (str.equals(RtcParameters.KEY_DEVICE_DEFAULT_ROTATION)) {
c = 2;
break;
}
break;
case -1862587763:
if (str.equals(RtcParameters.KEY_VIDEO_FPS_REPORTED)) {
c = 3;
break;
}
break;
case -1791226945:
if (str.equals(RtcParameters.KEY_VIDEO_ROTATE_IN_RENDING)) {
c = 4;
break;
}
break;
case -1683085645:
if (str.equals(RtcParameters.KEY_VIDEO_CAPTURE_ORIENTATION)) {
c = 5;
break;
}
break;
case -1624428709:
if (str.equals(RtcParameters.KEY_VIDEO_QUALITY)) {
c = 6;
break;
}
break;
case -1527914602:
if (str.equals(RtcParameters.KEY_DEVICE_ROTATION_FIXED_OFFSET)) {
c = 7;
break;
}
break;
case -1460447772:
if (str.equals(RtcParameters.KEY_VIDEO_PREVIEW_QUALITY)) {
c = '\b';
break;
}
break;
case -1459623615:
if (str.equals(RtcParameters.KEY_VIDEO_SUPPORTED_HW_ENCODER)) {
c = '\t';
break;
}
break;
case -1285199350:
if (str.equals(RtcParameters.KEY_VIDEO_ENCODER_MODE)) {
c = '\n';
break;
}
break;
case -1156683758:
if (str.equals(RtcParameters.KEY_SESSION_MULTI_MODE)) {
c = 11;
break;
}
break;
case -1144049993:
if (str.equals(RtcParameters.KEY_PROFILES_ENABLE_ON_TEST_SERVER)) {
c = '\f';
break;
}
break;
case -830116030:
if (str.equals(RtcParameters.KEY_AUDIO_EFFECT_NOISE_SUPPRESSOR)) {
c = '\r';
break;
}
break;
case -773145927:
if (str.equals(RtcParameters.KEY_VIDEO_TRANSPORT_MIRROR)) {
c = 14;
break;
}
break;
case -705087381:
if (str.equals(RtcParameters.KEY_VIDEO_FIXED_CROP_RATIO)) {
c = 15;
break;
}
break;
case -574756739:
if (str.equals(RtcParameters.KEY_SESSION_MULTI_MODE_USER_ROLE)) {
c = 16;
break;
}
break;
case -454296371:
if (str.equals(RtcParameters.KEY_SESSION_LIVE_MODE)) {
c = 17;
break;
}
break;
case -334213656:
if (str.equals(RtcParameters.KEY_SERVER_LIVE_RECORD)) {
c = 18;
break;
}
break;
case -161968216:
if (str.equals(RtcParameters.KEY_VIDEO_FRAME_FILTER_FORMAT)) {
c = 19;
break;
}
break;
case -157773497:
if (str.equals(RtcParameters.KEY_AUDIO_CALL_PROXIMITY)) {
c = 20;
break;
}
break;
case -137287658:
if (str.equals(RtcParameters.KEY_AUDIO_EFFECT_AUTOMATIC_GAIN_CONTROL)) {
c = 21;
break;
}
break;
case -112917522:
if (str.equals(RtcParameters.KEY_VIDEO_MAX_BITRATE)) {
c = 22;
break;
}
break;
case -70718756:
if (str.equals(RtcParameters.KEY_AUDIO_PLAYBACK_DEFAULT_SAMPLE_RATE)) {
c = 23;
break;
}
break;
case 129341046:
if (str.equals(RtcParameters.KEY_SERVER_AUDIO_RECORD)) {
c = 24;
break;
}
break;
case 237668859:
if (str.equals(RtcParameters.KEY_AUDIO_EXTERNAL_CAPTURE)) {
c = 25;
break;
}
break;
case 337397166:
if (str.equals(RtcParameters.KEY_VIDEO_FRAME_FILTER)) {
c = JSONLexer.EOI;
break;
}
break;
case 596167219:
if (str.equals(RtcParameters.KEY_AUDIO_FRAME_FILTER)) {
c = 27;
break;
}
break;
case 760558347:
if (str.equals(RtcParameters.KEY_AUDIO_HIGH_QUALITY)) {
c = 28;
break;
}
break;
case 955184389:
if (str.equals(RtcParameters.KEY_SESSION_LIVE_URL)) {
c = 29;
break;
}
break;
case 1103225839:
if (str.equals(RtcParameters.KEY_SESSION_LIVE_COMPOSITING_LAYOUT)) {
c = 30;
break;
}
break;
case 1285247325:
if (str.equals(RtcParameters.KEY_AUDIO_REPORT_SPEAKER)) {
c = 31;
break;
}
break;
case 1568541233:
if (str.equals(RtcParameters.KEY_SERVER_VIDEO_RECORD)) {
c = ' ';
break;
}
break;
case 1690177641:
if (str.equals(RtcParameters.KEY_VIDEO_SUPPORTED_HW_DECODER)) {
c = '!';
break;
}
break;
case 1823452394:
if (str.equals(RtcParameters.KEY_AUDIO_EFFECT_ACOUSTIC_ECHO_CANCELER)) {
c = C1672.f6711;
break;
}
break;
case 1873378274:
if (str.equals(RtcParameters.KEY_VIDEO_DECODER_MODE)) {
c = '#';
break;
}
break;
case 1882245767:
if (str.equals(RtcParameters.KEY_AUDIO_SPECIAL_CODEC)) {
c = '$';
break;
}
break;
case 2022851605:
if (str.equals(RtcParameters.KEY_AUDIO_CAPTURE_DEFAULT_SAMPLE_RATE)) {
c = '%';
break;
}
break;
case 2061813685:
if (str.equals(RtcParameters.KEY_SERVER_RECORD_MODE)) {
c = C1672.f6726;
break;
}
break;
case 2083380374:
if (str.equals(RtcParameters.KEY_VIDEO_FRAME_RATE)) {
c = '\'';
break;
}
break;
case 2099798764:
if (str.equals(RtcParameters.KEY_SDK_ENABLE_GPL)) {
c = '(';
break;
}
break;
case 2138662542:
if (str.equals(RtcParameters.KEY_VIDEO_LOCAL_PREVIEW_MIRROR)) {
c = ')';
break;
}
break;
}
switch (c) {
case 0:
return Boolean.valueOf(this.aw);
case 1:
return Integer.valueOf(this.aG ? this.aF : 0);
case 2:
return Integer.valueOf(this.aF);
case 3:
return Boolean.valueOf(this.aE);
case 4:
return Boolean.valueOf(this.az);
case 5:
return Integer.valueOf(this.aQ);
case 6:
com.netease.nrtc.video.a.a e = this.n.e(0);
return Integer.valueOf(this.n.m() ? com.netease.nrtc.video.a.e.a(e.a, e.b) : this.aA);
case 7:
return Integer.valueOf(this.aH);
case '\b':
com.netease.nrtc.video.a.a l = this.n.l();
return Integer.valueOf(this.n.m() ? com.netease.nrtc.video.a.e.a(l.a, l.b) : this.aB);
case '\t':
return Boolean.valueOf(com.netease.nrtc.video.a.e.d());
case '\n':
if (this.y.get() == 3) {
return this.n.j() ? "media_codec_hardware" : "media_codec_software";
}
return l();
case 11:
return Boolean.valueOf(this.aD);
case '\f':
return Boolean.valueOf(this.aZ);
case '\r':
return o();
case 14:
return Boolean.valueOf(this.n.r());
case 15:
return Integer.valueOf(this.aR);
case 16:
return Integer.valueOf(this.aC);
case 17:
return Boolean.valueOf(y());
case 18:
return Boolean.valueOf(this.aP);
case 19:
return Integer.valueOf(this.n.p());
case 20:
return Boolean.valueOf(this.ay);
case 21:
return p();
case 22:
return Integer.valueOf(this.aS);
case 23:
return Integer.valueOf(AudioDeviceParameters.b());
case 24:
return Boolean.valueOf(this.au);
case 25:
return Boolean.valueOf(this.j.e());
case 26:
return Boolean.valueOf(this.n.o());
case 27:
return Boolean.valueOf(this.j.u());
case 28:
return Boolean.valueOf(this.aM);
case 29:
return this.aJ;
case 30:
return this.aL;
case 31:
return Boolean.valueOf(this.j.j());
case ' ':
return Boolean.valueOf(this.av);
case '!':
return Boolean.valueOf(com.netease.nrtc.video.a.e.e());
case '\"':
return n();
case '#':
if (this.y.get() == 3) {
if (this.aD) {
return m();
}
return this.n.i(W()) ? "media_codec_hardware" : "media_codec_software";
}
return m();
case '$':
return Integer.valueOf(this.aT);
case '%':
return Integer.valueOf(AudioDeviceParameters.a());
case '&':
return Integer.valueOf(this.ax);
case '\'':
return Integer.valueOf(this.n.m() ? this.n.e(0).c : this.aK);
case '(':
return Boolean.valueOf(com.netease.nrtc.engine.impl.a.g);
case ')':
return Boolean.valueOf(this.n.q());
default:
Trace.e("RtcEngineImpl", "get parameter [" + str.toUpperCase() + "] unsupported!");
return null;
}
}
public void x(final int i) {
Trace.i("RtcEngineImpl", "onProtocolIncompatible->" + i);
if (this.y.get() != 3) {
Trace.i("RtcEngineImpl", "status not running");
} else {
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onProtocolIncompatible(i);
}
});
}
}
private int e(long j, int i) {
return this.g.c(j, i);
}
@Override
public void b(final long j, final int i) {
ThreadUtils.runOnThread(this.v, new Runnable() {
@Override
public final void run() {
com.netease.nrtc.engine.impl.e.this.a(i, j);
}
});
}
@Override
public void b(final int i) {
Trace.i("RtcEngineImpl", "onConnectionTypeChanged (" + i + C5923.C5925.f19790);
this.am = i;
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onConnectionTypeChanged(i);
}
});
if (this.d == null || i == 70) {
return;
}
if (this.y.get() == 3) {
this.g.a(i);
}
v();
}
private void j(long j) {
Trace.i("RtcEngineImpl", "stopVoicePlayout ->" + j);
if (this.d.userId != j) {
if (j == -1) {
for (Long l : this.e.keySet()) {
long longValue = l.longValue();
if (longValue != this.d.userId) {
this.j.g(longValue);
}
}
} else {
this.j.g(j);
}
}
Trace.i("RtcEngineImpl", "stopVoicePlayout done");
}
@Override
public void b(final int i, final int i2) {
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onAudioEffectPlayEvent(i, i2);
}
});
}
private void b(Handler handler, a aVar) {
if (handler != null) {
ThreadUtils.runOnThreadBlocking(handler, aVar);
}
}
public void w(int i) {
Trace.i("RtcEngineImpl", "onLiveEvent:" + i);
IRtcEventHandler iRtcEventHandler = this.b;
if (iRtcEventHandler != null) {
iRtcEventHandler.onLiveEvent(i);
}
}
@Override
public void c(final long j) {
Trace.i("RtcEngineImpl", "onFirstVideoFrameAvailable->" + j);
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onFirstVideoFrameAvailable(j);
}
});
}
@Override
public void c(final long j, final int i) {
if (this.aE) {
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onVideoFpsReported(j, i);
}
});
}
}
@Override
public void c(final int i) {
Trace.i("RtcEngineImpl", "onAudioMixingEvent->" + i);
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onAudioMixingEvent(e.l(i));
}
});
}
private static int c(int i, int i2) {
int parseInt;
String valueOf = String.valueOf(i);
String valueOf2 = String.valueOf(i2);
HashMap hashMap = new HashMap();
int i3 = 0;
for (int i4 = 0; i4 < valueOf.length(); i4++) {
hashMap.put(Character.valueOf(valueOf.charAt(i4)), Integer.valueOf(255 - i4));
}
for (int i5 = 0; i5 < valueOf2.length(); i5++) {
Character valueOf3 = Character.valueOf(valueOf2.charAt(i5));
Integer num = (Integer) hashMap.get(valueOf3);
hashMap.put(valueOf3, Integer.valueOf(num == null ? 255 - i5 : (num.intValue() + 255) - i5));
}
int i6 = -1;
for (Character ch : hashMap.keySet()) {
int intValue = ((Integer) hashMap.get(ch)).intValue();
if (intValue > i3) {
i6 = Integer.parseInt(Character.toString(ch.charValue()));
i3 = intValue;
}
if (intValue == i3 && i6 > (parseInt = Integer.parseInt(Character.toString(ch.charValue())))) {
i6 = parseInt;
}
}
String valueOf4 = String.valueOf(i6);
if (!valueOf.contains(valueOf4) || !valueOf2.contains(valueOf4)) {
Trace.w("RtcEngineImpl", "codec confirm cannot find all suitable , codec1 : " + valueOf + " , codec2 : " + valueOf2 + " , select : " + valueOf4);
}
return i6;
}
public synchronized void f(final long j, final int i) {
RtcStats rtcStats;
Trace.i("RtcEngineImpl", "onUserLeave->" + j + " #" + i);
if (this.y.get() != 3) {
Trace.i("RtcEngineImpl", "status not running");
return;
}
com.netease.nrtc.voice.b bVar = this.j;
if (bVar != null) {
bVar.a(j, (IRemoteAudioCallBack) null);
}
j(j);
h(j);
i(j);
m(j);
n(j);
l(j);
this.e.remove(Long.valueOf(j));
this.f.remove(Long.valueOf(j));
this.ad.remove(Long.valueOf(j));
N();
Trace.i("RtcEngineImpl", "user remained->" + this.e.size());
com.netease.nrtc.monitor.j jVar = this.M;
if (jVar != null) {
rtcStats = jVar.d(j);
} else {
rtcStats = new RtcStats();
rtcStats.uid = j;
rtcStats.duration = -1L;
rtcStats.freezeSessionRate = -1;
}
final RtcStats rtcStats2 = rtcStats;
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onUserLeave(j, rtcStats2, i);
}
});
}
@Override
public void d(final long j) {
ThreadUtils.runOnThread(this.v, new Runnable() {
@Override
public final void run() {
com.netease.nrtc.engine.impl.e.this.q(j);
}
});
}
private void a(RtcConfig rtcConfig) throws IllegalArgumentException {
com.netease.nrtc.utility.g.a(rtcConfig);
this.d = rtcConfig;
this.o.a(rtcConfig.limitVideoQuality);
this.m.a(this.ay);
this.n.a(rtcConfig.userId);
this.n.b(this.az);
q();
if (l.a()) {
com.netease.nrtc.engine.impl.a.g = com.netease.nrtc.engine.impl.a.g || rtcConfig.gpl;
} else {
com.netease.nrtc.engine.impl.a.g = rtcConfig.gpl;
}
c.a aVar = com.netease.nrtc.b.c.X;
if (com.netease.nrtc.b.a.a(aVar)) {
this.Y = com.netease.nrtc.b.a.a(aVar, this.Y);
}
Trace.i("RtcEngineImpl", "qos qosVideoInitBitrateMode -> " + this.Y);
c.a aVar2 = com.netease.nrtc.b.c.Y;
if (com.netease.nrtc.b.a.a(aVar2)) {
this.Z = com.netease.nrtc.b.a.a(aVar2, 1) == 0;
}
Trace.i("RtcEngineImpl", "qos qosMusicQosRollback -> " + this.Z);
c.a aVar3 = com.netease.nrtc.b.c.V;
if (com.netease.nrtc.b.a.a(aVar3)) {
this.V = com.netease.nrtc.b.a.a(aVar3, 3);
}
Trace.i("RtcEngineImpl", "qos qosTurnOffVideo -> " + this.V);
c.a aVar4 = com.netease.nrtc.b.c.W;
if (com.netease.nrtc.b.a.a(aVar4)) {
this.W = com.netease.nrtc.b.a.a(aVar4, 3);
}
Trace.i("RtcEngineImpl", "qos qosMinKeepAudioMode -> " + this.W);
if (com.netease.nrtc.engine.impl.a.h) {
this.U = 1;
}
c.a aVar5 = com.netease.nrtc.b.c.U;
if (com.netease.nrtc.b.a.a(aVar5)) {
this.U = com.netease.nrtc.b.a.a(aVar5, 2);
}
Trace.i("RtcEngineImpl", "audio jitter type -> " + this.U);
c.a aVar6 = com.netease.nrtc.b.c.ac;
if (com.netease.nrtc.b.a.a(aVar6)) {
this.X = com.netease.nrtc.b.a.a(aVar6, 2);
}
Trace.i("RtcEngineImpl", "arq mode -> " + this.X);
c.a aVar7 = com.netease.nrtc.b.c.ad;
if (com.netease.nrtc.b.a.a(aVar7)) {
this.aa = com.netease.nrtc.b.a.a(aVar7, 1);
}
Trace.i("RtcEngineImpl", "bwe mode -> " + this.aa);
com.netease.nrtc.engine.impl.a.e = rtcConfig.userId;
com.netease.nrtc.engine.impl.a.f = rtcConfig.channel;
}
private void a(int i, int i2, int i3) {
NEMediaEngine nEMediaEngine = this.g;
if (nEMediaEngine != null) {
nEMediaEngine.a(i, i2, i3);
}
}
@Override
public void a(final long j) {
Trace.e("RtcEngineImpl", "onLowStorageSpaceWarning ->" + j);
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onLowStorageSpaceWarning(j);
}
});
if (j < 10485760) {
this.h.a();
}
}
@Override
public void a(long j, final String str) {
final long j2 = j == 0 ? this.d.userId : j;
Trace.i("RtcEngineImpl", "onAVRecordingStart ->" + j);
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onAVRecordingStart(j2, str);
}
});
}
@Override
public void a(final String str) {
Trace.i("RtcEngineImpl", "onAudioRecordingStart");
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onAudioRecordingStart(str);
}
});
}
@Override
public boolean a(long j, long j2) {
if (this.j.a(j, j2)) {
if (this.r != 5 || this.n.a(j, j2)) {
return true;
}
this.j.a(j, 0L);
return false;
}
return false;
}
public void e(final LoginResInfo loginResInfo) {
NEMediaEngine nEMediaEngine = this.g;
boolean z = true;
if (nEMediaEngine != null) {
nEMediaEngine.a(loginResInfo.a() == 200);
}
boolean compareAndSet = this.B.compareAndSet(true, false);
boolean compareAndSet2 = this.C.compareAndSet(true, false);
this.J = (int) loginResInfo.a();
if (StringUtils.isNotEmpty(loginResInfo.e())) {
this.K = loginResInfo.e();
}
if (this.J != 200) {
this.z.set(4);
Trace.d("Connect-Status-Test-Log", "status : " + this.z.get());
}
com.netease.nrtc.monitor.j jVar = this.M;
if (jVar != null) {
int i = this.J;
if (i == 101) {
jVar.e();
} else if (i == 200) {
this.N.b();
Trace.i("RtcEngineImpl", "onConnectedServer, signalElapsed->" + this.N.c() + ", connectElapsed->" + this.N.d());
}
}
final int e = this.N.e();
if (compareAndSet) {
c(loginResInfo);
}
if (compareAndSet || compareAndSet2) {
Trace.i("RtcEngineImpl", "onConnectedServer->" + loginResInfo.toString() + " , reconnected = " + compareAndSet2);
if (this.y.get() != 3) {
Trace.i("RtcEngineImpl", "status not running");
return;
}
this.aM = (this.aM && loginResInfo.d() && this.j.c()) ? false : false;
int i2 = this.J;
if (i2 == 200) {
this.E.set(false);
this.D.set(0);
} else if (i2 == 101 && this.E.get()) {
Trace.i("RtcEngineImpl", "relogin from pending reconnect!");
if (v()) {
Trace.i("RtcEngineImpl", "pending consumed, relogining!");
return;
}
}
if (compareAndSet) {
b(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onJoinedChannel((int) loginResInfo.a(), loginResInfo.b(), loginResInfo.c(), e);
}
});
if (this.J == 101) {
O();
}
} else {
int i3 = this.J;
if (i3 == 101) {
if (this.D.get() < 2) {
Trace.i("RtcEngineImpl", "relogin timeout, try again!");
v();
} else {
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onDisconnectServer(1);
}
});
if (this.d != null) {
com.netease.nrtc.c.a(new com.netease.nrtc.c.d.a(this.d.userId, "1"));
}
O();
}
} else if (i3 != 200) {
b(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onJoinedChannel((int) loginResInfo.a(), loginResInfo.b(), loginResInfo.c(), e);
}
});
}
}
if (this.J == 200 && this.aD) {
U();
}
if (this.J == 200 && !this.aD && compareAndSet2) {
S();
}
}
}
public synchronized void b(ConnectInfo connectInfo) {
Trace.i("RtcEngineImpl", "onConnected");
Trace.i("RtcEngineImpl", connectInfo.toString());
if (this.y.get() != 3) {
Trace.i("RtcEngineImpl", "status not running");
return;
}
boolean z = true;
if (this.A.compareAndSet(false, true)) {
a = (int) Math.min(connectInfo.d(), connectInfo.e());
Trace.i("RtcEngineImpl", "my protocol version -> " + connectInfo.d());
Trace.i("RtcEngineImpl", "remote protocol version -> " + connectInfo.e());
j jVar = new j();
jVar.a = this.d.userId;
jVar.b = a;
this.e.put(Long.valueOf(this.d.userId), jVar);
com.netease.nrtc.monitor.j jVar2 = this.M;
if (jVar2 != null) {
jVar2.b(this.d.userId);
}
int h = com.netease.nrtc.voice.a.a.h(this.aD);
if (this.aT != -1) {
Trace.e("RtcEngineImpl", "has special audio codec = " + this.aT);
h = this.aT;
}
int c = c((int) connectInfo.c(), h);
this.s = c;
if (!C3866.m17584(c)) {
Trace.e("RtcEngineImpl", "confirm audio codec not supported(" + this.s + C5923.C5925.f19790);
this.s = 4;
}
Trace.i("RtcEngineImpl", "audio codec for encoder = " + this.s);
int b = (int) connectInfo.b();
this.r = b;
if (b != 5) {
this.r = 5;
Trace.e("RtcEngineImpl", "Only support H264, but got: " + this.r);
}
Trace.i("RtcEngineImpl", "video codec index -> " + this.r);
Trace.i("RtcEngineImpl", "video other decode resolution index -> " + connectInfo.a());
this.u = (int) connectInfo.a();
Trace.i("RtcEngineImpl", "video encode resolution max = " + this.u);
if (a < 24) {
Trace.i("RtcEngineImpl", "disable audio high quality");
this.aM = false;
}
if (a >= 39 && !this.aD) {
Trace.i("RtcEngineImpl", "video use high profile!");
}
S();
this.m.a(this.H ? 0 : 2, this.ay, this);
com.netease.nrtc.voice.device.b.e eVar = this.m;
if (this.H || !this.ay) {
z = false;
}
eVar.a(z);
com.netease.nrtc.utility.a.c.a().a(this.aD ? 0 : com.netease.nrtc.internal.a.b(connectInfo.f()));
if (k()) {
Trace.i("RtcEngineImpl", "role is audience");
} else {
if (!C()) {
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onDeviceEvent(3002, "start voice send error");
}
});
}
F();
}
b(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
Trace.i("RtcEngineImpl", "notify onCallEstablished");
iRtcEventHandler.onCallEstablished();
}
});
int size = this.ab.size();
for (int i = 0; i < size; i++) {
long keyAt = this.ab.keyAt(i);
onPeopleJoined(keyAt, this.ab.get(keyAt));
}
this.ab.clear();
com.netease.nrtc.video.a aVar = this.aq;
if (aVar != null) {
aVar.a();
}
this.an.prepare(this, this.aD, this.al, this.ao, this.ap);
} else {
S();
Trace.i("RtcEngineImpl", "reConnecting");
}
this.z.set(2);
Trace.d("Connect-Status-Test-Log", "status : " + this.z.get());
}
public synchronized void b(final long j, PeopleJoinInfo peopleJoinInfo) {
Trace.i("RtcEngineImpl", "onUserJoin->" + j + ", " + peopleJoinInfo.toString());
if (!this.A.get()) {
this.ab.put(j, peopleJoinInfo);
Trace.i("RtcEngineImpl", "pending user");
} else if (this.y.get() != 3) {
Trace.i("RtcEngineImpl", "status not running");
} else {
if (this.e.containsKey(Long.valueOf(j))) {
this.n.d(j);
this.n.g(j);
this.n.b(j);
this.j.g(j);
this.j.b(j);
this.j.e(j);
} else {
j jVar = new j();
jVar.a = j;
jVar.b = (int) peopleJoinInfo.a();
jVar.c = peopleJoinInfo.b();
jVar.d = peopleJoinInfo.c();
jVar.e = SystemClock.elapsedRealtime();
this.e.put(Long.valueOf(j), jVar);
if (jVar.d == 0) {
this.f.put(Long.valueOf(j), jVar);
Trace.i("RtcEngineImpl", "user " + j + " is low energy!");
}
}
com.netease.nrtc.monitor.j jVar2 = this.M;
if (jVar2 != null) {
jVar2.a(j);
}
g(j);
k(j);
N();
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onUserJoined(j);
}
});
}
}
public void b(final long j, final int i, NetStatInfo netStatInfo) {
Trace.i("RtcEngineImpl", "onNetQualityChange-> uid :" + j + ", stat: " + i);
if (this.y.get() != 3) {
Trace.i("RtcEngineImpl", "status not running");
return;
}
final NetStats netStats = new NetStats();
if (netStatInfo != null) {
netStats.rtt = netStatInfo.a();
netStats.audioLostRate = netStatInfo.b();
netStats.videoLostRate = netStatInfo.c();
netStatInfo.recycle();
}
com.netease.nrtc.profile.a.b().a(j, netStats.rtt, netStats.videoLostRate);
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onNetworkQuality(j, i, netStats);
}
});
}
public void b(int i, int i2, float f, int i3) {
if (this.y.get() != 3) {
Trace.i("RtcEngineImpl", "status not running");
return;
}
if (i >= 0) {
s(i3).a = i;
s(i3).b = i2;
}
if (this.n.f()) {
this.n.a(i * 1000, i2, f, i3);
}
}
public void b(String str, boolean z) {
Trace.i("RtcEngineImpl", "onPublicIpChange:" + str + "@" + z);
if (this.y.get() != 3) {
Trace.i("RtcEngineImpl", "status not running");
return;
}
if (this.d != null && !this.L.equals(str)) {
com.netease.nrtc.c.a(new com.netease.nrtc.c.h.a(this.d.channel, str));
this.L = str;
}
if (z || !this.K.equals(str)) {
v();
}
}
@Override
public void a(byte[] bArr, int i, int i2, int i3, int i4, int i5) {
if (this.g != null) {
if (!this.an.onReceiveVideo(bArr, i, i2, i3)) {
this.g.a(bArr, i, i2, i3, i4, i5);
}
com.netease.nrtc.monitor.j jVar = this.M;
if (jVar != null) {
jVar.h().a(i2, i);
}
com.netease.nrtc.video.a aVar = this.aq;
if (aVar != null) {
aVar.a(i2, i);
}
}
}
@Override
public int a(long j, WrappedNativeAudioFrame wrappedNativeAudioFrame) {
NEMediaEngine nEMediaEngine = this.g;
return (nEMediaEngine == null || nEMediaEngine.a(wrappedNativeAudioFrame)) ? 0 : -1;
}
@Override
public WrappedNativeAudioFrame a(long j, int i) {
NEMediaEngine nEMediaEngine = this.g;
if (nEMediaEngine != null) {
WrappedNativeAudioFrame a2 = nEMediaEngine.a(j, i);
if (a2 != null && a2.a() && com.netease.nrtc.c.a.a().a(j, 0) && this.d != null) {
com.netease.nrtc.c.a(new com.netease.nrtc.c.l.a(this.d.channel, j, 0));
}
return a2;
}
Trace.e("RtcEngineImpl", "get audio err , mNEMediaEngine is null");
return null;
}
@Override
public void a(long j, final int i, final String str) {
Trace.i("RtcEngineImpl", "onVideoDeviceEvent->" + j + "#" + i + "#" + str);
if (i == 5) {
com.netease.nrtc.c.a(new com.netease.nrtc.c.g.a(com.netease.nrtc.c.g.b.h, true));
} else if (i == 4) {
com.netease.nrtc.c.a(new com.netease.nrtc.c.g.a(com.netease.nrtc.c.g.b.h, false));
} else if (i == 10 || i == 11) {
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.ai);
}
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onDeviceEvent(e.m(i), str);
}
});
}
public void a(int i, long j) {
if (this.y.get() != 3 || this.g == null || this.an.requestRemoteKeyFrame(i)) {
return;
}
this.g.b(j, i);
}
@Override
public void a(final long j, final int i, final int i2, final int i3) {
Trace.i("RtcEngineImpl", "onFrameResolutionChanged->" + j + "#" + i + "x" + i2 + ":" + i3);
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onVideoFrameResolutionChanged(j, i, i2, i3);
}
});
}
@Override
public void a(final long j, final boolean z, final String str) {
Trace.i("RtcEngineImpl", "onSnapshot->" + j + "#" + z);
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onTakeSnapshotResult(j, z, str);
}
});
}
@Override
public void a(final boolean z) {
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onVideoCapturerStarted(z);
}
});
}
@Override
public void a() {
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onVideoCapturerStopped();
}
});
}
@Override
public void a(final int i) {
Trace.i("RtcEngineImpl", "onVideoSenderCodecChanged->" + i);
ThreadUtils.runOnUiThread(new Runnable() {
@Override
public final void run() {
com.netease.nrtc.engine.impl.e.this.v(i);
}
});
}
@Override
public boolean a(VideoFrame videoFrame, VideoFrame[] videoFrameArr, VideoFilterParameter videoFilterParameter) {
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.m);
IRtcEventHandler iRtcEventHandler = this.b;
if (iRtcEventHandler != null) {
return iRtcEventHandler.onVideoFrameFilter(videoFrame, videoFrameArr, videoFilterParameter);
}
return false;
}
@Override
public boolean a(com.netease.nrtc.sdk.common.VideoFrame videoFrame, boolean z) {
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.m);
IRtcEventHandler iRtcEventHandler = this.b;
if (iRtcEventHandler != null) {
return iRtcEventHandler.onVideoFrameFilter(videoFrame, z);
}
return false;
}
@Override
public void a(boolean z, boolean z2, boolean z3, int i) {
if (this.y.get() == 3 && z3 && !com.netease.nrtc.utility.a.a(i)) {
Size c = com.netease.nrtc.utility.a.c.a().c(i);
int a2 = this.g.a(new PublishVideoProfile(i, c.getWidth(), c.getHeight(), this.aK), com.netease.nrtc.utility.c.c.a(com.netease.nrtc.engine.impl.a.b));
com.netease.nrtc.utility.a.c.a().b(a2 * 1000, i);
Trace.i("RtcEngineImpl", "onChange : video bitrate : " + a2 + " , type:" + i + " , w : " + c.getWidth() + " , h : " + c.getHeight() + " , r : " + this.aK);
}
}
@Override
public void a(final int i, final String str) {
Trace.i("RtcEngineImpl", "onAudioDeviceEvent->" + i + "#" + str);
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onDeviceEvent(e.k(i), str);
}
});
}
@Override
public boolean a(AudioFrame audioFrame) {
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.l);
IRtcEventHandler iRtcEventHandler = this.b;
return iRtcEventHandler == null || iRtcEventHandler.onAudioFrameFilter(audioFrame);
}
@Override
public void a(final int i, long[] jArr, int[] iArr, final int i2) {
if (jArr.length < i || iArr.length < i) {
return;
}
long[] jArr2 = this.k;
if (jArr2 == null || this.l == null || jArr2.length < i) {
this.k = new long[i];
this.l = new int[i];
}
for (int i3 = 0; i3 < i; i3++) {
long j = jArr[i3];
int i4 = iArr[i3];
if (j == 0) {
j = this.d.userId;
}
this.k[i3] = j;
this.l[i3] = i4;
}
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onReportSpeaker(i, e.this.k, e.this.l, i2);
}
});
}
@Override
public void a(AudioMixing audioMixing) {
final long currentMs = audioMixing == null ? -1L : audioMixing.getCurrentMs();
final long durationMs = audioMixing != null ? audioMixing.getDurationMs() : -1L;
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onAudioMixingProgressUpdated(currentMs, durationMs);
}
});
}
@Override
public void a(final int i, final int i2) {
a(this.v, new a(this.b) {
@Override
public void a(IRtcEventHandler iRtcEventHandler) {
iRtcEventHandler.onAudioEffectPreload(i, i2);
}
});
}
@Override
public void a(int i, int i2, Set<Integer> set, boolean z) {
b(i, i2, set, z);
}
public void a(Handler handler, a aVar) {
if (handler != null) {
ThreadUtils.runOnThread(handler, aVar);
}
}
private static void a(Pair pair) {
String valueOf = String.valueOf(pair.first);
String valueOf2 = String.valueOf(pair.second);
Trace.i("RtcEngineImpl", "external requesting feature, key:" + valueOf + ", ext:" + valueOf2);
valueOf.hashCode();
if (valueOf.equals(RtcParameters.FEATURE_STATISTICS_CALL_CONTROL)) {
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.d);
} else if (!valueOf.equals(RtcParameters.FEATURE_STATISTICS_KEEP_CALLING)) {
Trace.w("RtcEngineImpl", "Unknown requesting feature!");
} else {
com.netease.nrtc.monitor.d.a(com.netease.nrtc.monitor.d.Z);
}
}
private void a(boolean z, long j, boolean z2, int[] iArr, boolean z3, int i) {
b bVar = this.ad.get(Long.valueOf(j));
if (bVar == null && z) {
bVar = new b(j);
this.ad.put(Long.valueOf(j), bVar);
}
if (bVar == null) {
return;
}
if (z2) {
bVar.a(iArr);
}
if (z3) {
bVar.a(i);
}
}
private int a(int[] iArr) {
if (iArr == null || iArr.length == 0) {
return -1;
}
int i = iArr[0];
for (int i2 : iArr) {
if (i2 == 0) {
return i2;
}
if (i > i2) {
i = i2;
}
}
return i;
}
}