webrtc/sdk/android
Linus Nilsson f166fe245c Avoid excessive eglMakeCurrent calls
With shared EglConnections each client must ensure their EGLSurface
is made current every time they access the thread. This will lead to
unnecessary eglMakeCurrent calls when the EGLSurface is in fact already
current, such as when the EglConnection only has one client or when one
client accesses the thread without interruption.

Bug: b/217863437
Change-Id: I1b03daec4d5cd43af21fe9c168e3637f676b6fec
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/322322
Reviewed-by: Ranveer Aggarwal‎ <ranvr@webrtc.org>
Commit-Queue: Linus Nilsson <lnilsson@webrtc.org>
Reviewed-by: Zoé Lepaul <xalep@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40883}
2023-10-06 14:20:28 +00:00
..
api/org/webrtc Adopt EglThread in EglRenderer once again. 2023-09-29 13:37:21 +00:00
instrumentationtests Adopt EglThread in EglRenderer once again. 2023-09-29 13:37:21 +00:00
native_api Roll chromium_revision 10080947c0..6b95b8aa08 (1174188:1175249) 2023-08-07 13:57:06 +00:00
native_unittests Disable flaky test 2023-10-05 11:39:04 +00:00
src Avoid excessive eglMakeCurrent calls 2023-10-06 14:20:28 +00:00
tests Roll chromium_revision 6b95b8aa08..80c35b98ae (1175249:1180373) 2023-08-10 07:50:10 +00:00
AndroidManifest.xml Roll chromium_revision 4d95e6c77b..71a0e1904e (776481:782339) 2020-06-26 05:33:14 +00:00
BUILD.gn Adopt EglThread in EglRenderer once again. 2023-09-29 13:37:21 +00:00
OWNERS Remove redundant PRESUBMIT.py files. 2022-03-31 10:48:31 +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/.