mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2025-01-09 13:43:22 +00:00
75 lines
3 KiB
Java
75 lines
3 KiB
Java
package org.mediasoup.droid;
|
|
|
|
import java.util.List;
|
|
import org.mediasoup.droid.DataProducer;
|
|
import org.mediasoup.droid.Producer;
|
|
import org.mediasoup.droid.Transport;
|
|
import org.webrtc.MediaStreamTrack;
|
|
import org.webrtc.RTCUtils;
|
|
import org.webrtc.RtpParameters;
|
|
|
|
/* loaded from: classes3.dex */
|
|
public class SendTransport extends Transport {
|
|
private long mNativeTransport;
|
|
|
|
/* loaded from: classes3.dex */
|
|
public interface Listener extends Transport.Listener {
|
|
String onProduce(Transport transport, String str, String str2, String str3);
|
|
|
|
String onProduceData(Transport transport, String str, String str2, String str3, String str4);
|
|
}
|
|
|
|
private static native void nativeFreeTransport(long j);
|
|
|
|
private static native long nativeGetNativeTransport(long j);
|
|
|
|
private static native Producer nativeProduce(long j, Producer.Listener listener, long j2, RtpParameters.Encoding[] encodingArr, String str, String str2, String str3);
|
|
|
|
private static native DataProducer nativeProduceData(long j, DataProducer.Listener listener, String str, String str2, boolean z, int i, int i2, String str3);
|
|
|
|
public SendTransport(long j) {
|
|
this.mNativeTransport = j;
|
|
}
|
|
|
|
public void dispose() {
|
|
checkTransportExists();
|
|
nativeFreeTransport(this.mNativeTransport);
|
|
this.mNativeTransport = 0L;
|
|
}
|
|
|
|
private void checkTransportExists() {
|
|
if (this.mNativeTransport == 0) {
|
|
throw new IllegalStateException("SendTransport has been disposed.");
|
|
}
|
|
}
|
|
|
|
@Override // org.mediasoup.droid.Transport
|
|
public long getNativeTransport() {
|
|
return nativeGetNativeTransport(this.mNativeTransport);
|
|
}
|
|
|
|
public Producer produce(Producer.Listener listener, MediaStreamTrack mediaStreamTrack, List<RtpParameters.Encoding> list, String str, String str2) throws MediasoupException {
|
|
return produce(listener, mediaStreamTrack, list, str, str2, null);
|
|
}
|
|
|
|
public Producer produce(Producer.Listener listener, MediaStreamTrack mediaStreamTrack, List<RtpParameters.Encoding> list, String str, String str2, String str3) throws MediasoupException {
|
|
RtpParameters.Encoding[] encodingArr;
|
|
checkTransportExists();
|
|
long nativeMediaStreamTrack = RTCUtils.getNativeMediaStreamTrack(mediaStreamTrack);
|
|
if (list == null || list.isEmpty()) {
|
|
encodingArr = null;
|
|
} else {
|
|
encodingArr = new RtpParameters.Encoding[list.size()];
|
|
list.toArray(encodingArr);
|
|
}
|
|
return nativeProduce(this.mNativeTransport, listener, nativeMediaStreamTrack, encodingArr, str, str2, str3);
|
|
}
|
|
|
|
public DataProducer produceData(DataProducer.Listener listener) {
|
|
return nativeProduceData(this.mNativeTransport, listener, null, null, true, 0, 0, null);
|
|
}
|
|
|
|
public DataProducer produceData(DataProducer.Listener listener, String str, String str2, boolean z, int i, int i2, String str3) {
|
|
return nativeProduceData(this.mNativeTransport, listener, str, str2, z, i, i2, str3);
|
|
}
|
|
}
|