Android: Allow injecting native PeerConnection.
This allows application to construct PeerConnection object in JNI and pass that to Android API. API for wrapping Java PeerConnection Observers is exposed for convenience. Bug: webrtc:8662 Change-Id: Id110b92e6bb5ab00661cd50616d05c3e18a1697d Reviewed-on: https://webrtc-review.googlesource.com/34520 Commit-Queue: Sami Kalliomäki <sakal@webrtc.org> Reviewed-by: Jonas Oreland <jonaso@webrtc.org> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org> Cr-Commit-Position: refs/heads/master@{#21379}
This commit is contained in:

committed by
Commit Bot

parent
afd8e8c304
commit
1ece1edddc
@ -551,6 +551,14 @@ public class PeerConnection {
|
||||
private List<RtpSender> senders = new ArrayList<>();
|
||||
private List<RtpReceiver> receivers = new ArrayList<>();
|
||||
|
||||
/**
|
||||
* Wraps a PeerConnection created by the factory. Can be used by clients that want to implement
|
||||
* their PeerConnection creation in JNI.
|
||||
*/
|
||||
public PeerConnection(NativePeerConnectionFactory factory) {
|
||||
this(factory.createNativePeerConnection(), 0 /* nativeObserver */);
|
||||
}
|
||||
|
||||
PeerConnection(long nativePeerConnection, long nativeObserver) {
|
||||
this.nativePeerConnection = nativePeerConnection;
|
||||
this.nativeObserver = nativeObserver;
|
||||
@ -745,7 +753,9 @@ public class PeerConnection {
|
||||
}
|
||||
receivers.clear();
|
||||
JniCommon.nativeReleaseRef(nativePeerConnection);
|
||||
freeObserver(nativeObserver);
|
||||
if (nativeObserver != 0) {
|
||||
freeNativePeerConnectionObserver(nativeObserver);
|
||||
}
|
||||
}
|
||||
|
||||
@CalledByNative
|
||||
@ -753,7 +763,8 @@ public class PeerConnection {
|
||||
return nativePeerConnection;
|
||||
}
|
||||
|
||||
private static native void freeObserver(long nativeObserver);
|
||||
public static native long createNativePeerConnectionObserver(Observer observer);
|
||||
public static native void freeNativePeerConnectionObserver(long nativeObserver);
|
||||
|
||||
private native boolean setNativeConfiguration(RTCConfiguration config, long nativeObserver);
|
||||
|
||||
|
Reference in New Issue
Block a user