This CL prepares for adding stack trace capability to the native part of the Android PeerConnectionFactory code. The main blocker this CL removes is the static printStackTrace() function. We need this function to be non-static since the C++ counterpart of PCF is non-static. This Cl also performs various other cleanups in surrounding code. This CL: * Removes static thread references from PeerconnectionFactory and turns them into non-static member variables. * Adds a non-static alternative to PeerconnectionFactory.printStackTraces(). * Removes the rtc::Thread::Invoke() calls, and turns them into asynchronous posts. * Consolidates the two different Java PCF ctors into one, so that there is one shared path used by both native API and Java API. Bug: webrtc:10168 Change-Id: I05dbf5b17069d4a115d9adafc25faa121f23b945 Reviewed-on: https://webrtc-review.googlesource.com/c/115961 Commit-Queue: Magnus Jedvert <magjed@webrtc.org> Reviewed-by: Tommi <tommi@webrtc.org> Cr-Commit-Position: refs/heads/master@{#26329}
This directory holds a Java implementation of the webrtc::PeerConnection API, as
well as the JNI glue C++ code that lets the Java implementation reuse the C++
implementation of the same API.
To build the Java API and related tests, make sure you have a WebRTC checkout
with Android specific parts. This can be used for linux development as well by
configuring gn appropriately, as it is a superset of the webrtc checkout:
fetch --nohooks webrtc_android
gclient sync
You also must generate GN projects with:
--args='target_os="android" target_cpu="arm"'
More information on getting the code, compiling and running the AppRTCMobile
app can be found at:
https://webrtc.org/native-code/android/
To use the Java API, start by looking at the public interface of
org.webrtc.PeerConnection{,Factory} and the org.webrtc.PeerConnectionTest.
To understand the implementation of the API, see the native code in src/jni/pc/.