webrtc/sdk/android
Magnus Jedvert 31f18e164e Android SurfaceTextureHelper: Avoid crashing if size hasn't been set
SurfaceTextureHelper currently crashes if an OES texture is produced
before setTextureSize() has been called. This is annoying if the texture
size is not easily known beforehand. A real world example is MediaPlayer
that provides the video size with an asynchronous call to
setOnVideoSizeChangedListener(), but that might happen after the first
texture is produced on some devices.

This CL waits with delivering frames until the size has been sent,
rather than crashing.

Bug: webrtc:10709
Change-Id: I5d9ce542e0edaafe1153fd5fe7d64dba86d7e33c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140080
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28151}
2019-06-04 10:40:39 +00:00
..
api/org/webrtc Android SurfaceTextureHelper: Avoid crashing if size hasn't been set 2019-06-04 10:40:39 +00:00
instrumentationtests Change the gating of surfacing candidates on ICE transport type change 2019-06-03 18:41:13 +00:00
native_api Deprecating ThreadChecker specific interface. 2019-04-08 16:58:07 +00:00
native_unittests Update android tests to use single argument PeerConnectionFactory factory 2019-05-20 12:27:32 +00:00
src Change the gating of surfacing candidates on ICE transport type change 2019-06-03 18:41:13 +00:00
tests Roll chromium_revision 243a2094e7..f5d370078e (660868:660984) 2019-05-20 12:44:24 +00:00
AndroidManifest.xml Moving src/webrtc into src/. 2017-09-15 04:25:06 +00:00
BUILD.gn Delete deprecated StartRtcEventLog override with PlatformFile 2019-06-03 09:00:56 +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/.