webrtc/sdk/android
Sami Kalliomäki 0f6bcd18b2 Hold a reference to AndroidVideoTrackSource while calling onFrameCaptured.
This makes it safe to deliver frames to the sink from VideoProcessor
even after setSink has been called with null reference without danger
of use after free.

Bug: b/148063550
Change-Id: Ib78f75ac49fc6117f744c55da1a4e671bbdcdf22
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168160
Reviewed-by: Paulina Hensman <phensman@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30455}
2020-02-04 15:00:05 +00:00
..
api/org/webrtc Hold a reference to AndroidVideoTrackSource while calling onFrameCaptured. 2020-02-04 15:00:05 +00:00
instrumentationtests Remove iceRegatherIntervalRange 2020-01-28 19:16:18 +00:00
native_api Clarify expectation on GlobalLock 2019-10-11 13:11:11 +00:00
native_unittests Concatenate string literals at compile time. 2020-01-14 14:47:48 +00:00
src Hold a reference to AndroidVideoTrackSource while calling onFrameCaptured. 2020-02-04 15:00:05 +00:00
tests Hold a reference to AndroidVideoTrackSource while calling onFrameCaptured. 2020-02-04 15:00:05 +00:00
AndroidManifest.xml Moving src/webrtc into src/. 2017-09-15 04:25:06 +00:00
BUILD.gn Hold a reference to AndroidVideoTrackSource while calling onFrameCaptured. 2020-02-04 15:00:05 +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/.