webrtc/sdk/android
Rasmus Brandt 42a2fc9cba Support injecting custom native codecs from Java.
This CL extends our support for injecting native codecs such that
downstream users can create Java codecs that are backed by custom
native codecs.

After this CL, the Java codec interfaces expose
createNativeVideo{En,Decoder}() methods that may return a value
representing a pointer to the backing native codec. Previously,
a similar mechanism was used for the special case of non-public
Java codecs extending from the internal
WrappedNativeVideo{En,De}coder classes.

Tested: AppRTCMobile on Pixel XL and Pixel 2.
Bug: webrtc:9495
Change-Id: I079ff744afc7bf9873ff983e775c136a6667266d
Reviewed-on: https://webrtc-review.googlesource.com/87264
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23883}
2018-07-09 12:07:11 +00:00
..
api/org/webrtc Support injecting custom native codecs from Java. 2018-07-09 12:07:11 +00:00
instrumentationtests Android: Update tests to use new SurfaceTextureHelper interface 2018-07-06 15:18:18 +00:00
native_api Deprecate PeerConnectionFactory#createVideoSource(VideoCapturer). 2018-07-06 10:35:46 +00:00
native_unittests Update capturer/test code to use the new interface VideoCapturer. 2018-07-06 10:42:11 +00:00
src Support injecting custom native codecs from Java. 2018-07-09 12:07:11 +00:00
tests/src/org/webrtc Android: Add helper class for generating OpenGL shaders 2018-06-15 09:06:45 +00:00
AndroidManifest.xml Moving src/webrtc into src/. 2017-09-15 04:25:06 +00:00
BUILD.gn Support injecting custom native codecs from Java. 2018-07-09 12:07:11 +00:00
OWNERS Android: Add henrika@ as owner of audio code 2018-03-21 09:59:18 +00:00
PRESUBMIT.py Moving src/webrtc into src/. 2017-09-15 04:25:06 +00:00
README Updating android/README. 2018-03-01 20:22:48 +00:00

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/.