From 0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 03:47:29 +0200 Subject: Adding upstream version 115.8.0esr. Signed-off-by: Daniel Baumann --- third_party/libwebrtc/examples/BUILD.gn | 953 +++++++++++ third_party/libwebrtc/examples/DEPS | 13 + third_party/libwebrtc/examples/OWNERS | 4 + .../libwebrtc/examples/aarproject/.gitignore | 16 + third_party/libwebrtc/examples/aarproject/OWNERS | 1 + .../libwebrtc/examples/aarproject/app/.gitignore | 1 + .../libwebrtc/examples/aarproject/app/build.gradle | 53 + .../examples/aarproject/app/proguard-rules.pro | 25 + .../libwebrtc/examples/aarproject/build.gradle | 27 + .../examples/aarproject/gradle.properties | 22 + .../libwebrtc/examples/aarproject/local.properties | 2 + .../libwebrtc/examples/aarproject/settings.gradle | 1 + .../examples/androidapp/AndroidManifest.xml | 60 + third_party/libwebrtc/examples/androidapp/OWNERS | 2 + third_party/libwebrtc/examples/androidapp/README | 23 + .../libwebrtc/examples/androidapp/ant.properties | 17 + .../libwebrtc/examples/androidapp/build.xml | 92 + .../examples/androidapp/project.properties | 16 + .../androidapp/res/drawable-hdpi/disconnect.png | Bin 0 -> 1404 bytes .../res/drawable-hdpi/ic_action_full_screen.png | Bin 0 -> 587 bytes .../ic_action_return_from_full_screen.png | Bin 0 -> 663 bytes .../androidapp/res/drawable-hdpi/ic_launcher.png | Bin 0 -> 2486 bytes .../res/drawable-hdpi/ic_loopback_call.png | Bin 0 -> 1859 bytes .../androidapp/res/drawable-ldpi/disconnect.png | Bin 0 -> 1404 bytes .../res/drawable-ldpi/ic_action_full_screen.png | Bin 0 -> 461 bytes .../ic_action_return_from_full_screen.png | Bin 0 -> 477 bytes .../androidapp/res/drawable-ldpi/ic_launcher.png | Bin 0 -> 2502 bytes .../res/drawable-ldpi/ic_loopback_call.png | Bin 0 -> 1859 bytes .../androidapp/res/drawable-mdpi/disconnect.png | Bin 0 -> 1404 bytes .../res/drawable-mdpi/ic_action_full_screen.png | Bin 0 -> 461 bytes .../ic_action_return_from_full_screen.png | Bin 0 -> 477 bytes .../androidapp/res/drawable-mdpi/ic_launcher.png | Bin 0 -> 1700 bytes .../res/drawable-mdpi/ic_loopback_call.png | Bin 0 -> 1859 bytes .../androidapp/res/drawable-xhdpi/disconnect.png | Bin 0 -> 1404 bytes .../res/drawable-xhdpi/ic_action_full_screen.png | Bin 0 -> 743 bytes .../ic_action_return_from_full_screen.png | Bin 0 -> 761 bytes .../androidapp/res/drawable-xhdpi/ic_launcher.png | Bin 0 -> 3364 bytes .../res/drawable-xhdpi/ic_loopback_call.png | Bin 0 -> 1859 bytes .../androidapp/res/layout/activity_call.xml | 34 + .../androidapp/res/layout/activity_connect.xml | 80 + .../androidapp/res/layout/fragment_call.xml | 77 + .../androidapp/res/layout/fragment_hud.xml | 27 + .../examples/androidapp/res/menu/connect_menu.xml | 13 + .../examples/androidapp/res/values-v17/styles.xml | 10 + .../examples/androidapp/res/values-v21/styles.xml | 4 + .../examples/androidapp/res/values/arrays.xml | 61 + .../examples/androidapp/res/values/strings.xml | 224 +++ .../examples/androidapp/res/xml/preferences.xml | 247 +++ .../src/org/appspot/apprtc/AppRTCAudioManager.java | 594 +++++++ .../org/appspot/apprtc/AppRTCBluetoothManager.java | 532 ++++++ .../src/org/appspot/apprtc/AppRTCClient.java | 137 ++ .../org/appspot/apprtc/AppRTCProximitySensor.java | 158 ++ .../src/org/appspot/apprtc/CallActivity.java | 962 +++++++++++ .../src/org/appspot/apprtc/CallFragment.java | 137 ++ .../appspot/apprtc/CaptureQualityController.java | 110 ++ .../src/org/appspot/apprtc/ConnectActivity.java | 666 ++++++++ .../src/org/appspot/apprtc/CpuMonitor.java | 521 ++++++ .../src/org/appspot/apprtc/DirectRTCClient.java | 346 ++++ .../src/org/appspot/apprtc/HudFragment.java | 102 ++ .../org/appspot/apprtc/PeerConnectionClient.java | 1402 ++++++++++++++++ .../apprtc/RecordedAudioToFileController.java | 143 ++ .../org/appspot/apprtc/RoomParametersFetcher.java | 226 +++ .../src/org/appspot/apprtc/RtcEventLog.java | 73 + .../src/org/appspot/apprtc/SettingsActivity.java | 317 ++++ .../src/org/appspot/apprtc/SettingsFragment.java | 26 + .../src/org/appspot/apprtc/TCPChannelClient.java | 362 ++++ .../appspot/apprtc/UnhandledExceptionHandler.java | 85 + .../org/appspot/apprtc/WebSocketChannelClient.java | 296 ++++ .../src/org/appspot/apprtc/WebSocketRTCClient.java | 427 +++++ .../src/org/appspot/apprtc/util/AppRTCUtils.java | 47 + .../apprtc/util/AsyncHttpURLConnection.java | 115 ++ ...tart_loopback_stubbed_camera_saved_video_out.py | 127 ++ .../androidapp/third_party/autobanh/BUILD.gn | 15 + .../androidapp/third_party/autobanh/LICENSE | 177 ++ .../androidapp/third_party/autobanh/LICENSE.md | 21 + .../androidapp/third_party/autobanh/NOTICE | 3 + .../third_party/autobanh/lib/autobanh.jar | Bin 0 -> 45472 bytes third_party/libwebrtc/examples/androidjunit/OWNERS | 1 + third_party/libwebrtc/examples/androidjunit/README | 8 + .../org/appspot/apprtc/BluetoothManagerTest.java | 268 +++ .../org/appspot/apprtc/DirectRTCClientTest.java | 155 ++ .../org/appspot/apprtc/TCPChannelClientTest.java | 199 +++ .../examples/androidnativeapi/AndroidManifest.xml | 23 + .../libwebrtc/examples/androidnativeapi/BUILD.gn | 80 + .../libwebrtc/examples/androidnativeapi/DEPS | 5 + .../libwebrtc/examples/androidnativeapi/OWNERS | 1 + .../examples/androidnativeapi/CallClient.java | 72 + .../examples/androidnativeapi/MainActivity.java | 120 ++ .../androidnativeapi/jni/android_call_client.cc | 294 ++++ .../androidnativeapi/jni/android_call_client.h | 76 + .../examples/androidnativeapi/jni/onload.cc | 30 + .../androidnativeapi/res/layout/activity_main.xml | 52 + .../androidnativeapi/res/values/strings.xml | 5 + .../examples/androidtests/AndroidManifest.xml | 26 + third_party/libwebrtc/examples/androidtests/OWNERS | 1 + third_party/libwebrtc/examples/androidtests/README | 14 + .../libwebrtc/examples/androidtests/ant.properties | 18 + .../libwebrtc/examples/androidtests/build.xml | 92 + .../examples/androidtests/project.properties | 16 + .../apprtc/test/PeerConnectionClientTest.java | 637 +++++++ .../examples/androidtests/third_party/.gitignore | 3 + .../androidtests/third_party/README.webrtc | 10 + .../examples/androidvoip/AndroidManifest.xml | 38 + .../libwebrtc/examples/androidvoip/BUILD.gn | 95 ++ third_party/libwebrtc/examples/androidvoip/DEPS | 3 + third_party/libwebrtc/examples/androidvoip/OWNERS | 2 + .../webrtc/examples/androidvoip/MainActivity.java | 341 ++++ .../androidvoip/OnVoipClientTaskCompleted.java | 26 + .../webrtc/examples/androidvoip/VoipClient.java | 191 +++ .../androidvoip/jni/android_voip_client.cc | 514 ++++++ .../examples/androidvoip/jni/android_voip_client.h | 189 +++ .../libwebrtc/examples/androidvoip/jni/onload.cc | 28 + .../androidvoip/res/layout/activity_main.xml | 303 ++++ .../examples/androidvoip/res/values/colors.xml | 5 + .../examples/androidvoip/res/values/strings.xml | 19 + .../objc/AppRTCMobile/ARDAppClient+Internal.h | 52 + .../examples/objc/AppRTCMobile/ARDAppClient.h | 87 + .../examples/objc/AppRTCMobile/ARDAppClient.m | 899 ++++++++++ .../objc/AppRTCMobile/ARDAppEngineClient.h | 14 + .../objc/AppRTCMobile/ARDAppEngineClient.m | 175 ++ .../objc/AppRTCMobile/ARDCaptureController.h | 26 + .../objc/AppRTCMobile/ARDCaptureController.m | 116 ++ .../objc/AppRTCMobile/ARDExternalSampleCapturer.h | 18 + .../objc/AppRTCMobile/ARDExternalSampleCapturer.m | 52 + .../objc/AppRTCMobile/ARDJoinResponse+Internal.h | 23 + .../examples/objc/AppRTCMobile/ARDJoinResponse.h | 32 + .../examples/objc/AppRTCMobile/ARDJoinResponse.m | 82 + .../AppRTCMobile/ARDMessageResponse+Internal.h | 17 + .../objc/AppRTCMobile/ARDMessageResponse.h | 26 + .../objc/AppRTCMobile/ARDMessageResponse.m | 46 + .../objc/AppRTCMobile/ARDRoomServerClient.h | 32 + .../objc/AppRTCMobile/ARDSettingsModel+Private.h | 21 + .../examples/objc/AppRTCMobile/ARDSettingsModel.h | 123 ++ .../examples/objc/AppRTCMobile/ARDSettingsModel.m | 211 +++ .../examples/objc/AppRTCMobile/ARDSettingsStore.h | 52 + .../examples/objc/AppRTCMobile/ARDSettingsStore.m | 115 ++ .../objc/AppRTCMobile/ARDSignalingChannel.h | 48 + .../objc/AppRTCMobile/ARDSignalingMessage.h | 58 + .../objc/AppRTCMobile/ARDSignalingMessage.m | 160 ++ .../examples/objc/AppRTCMobile/ARDStatsBuilder.h | 26 + .../examples/objc/AppRTCMobile/ARDStatsBuilder.m | 36 + .../objc/AppRTCMobile/ARDTURNClient+Internal.h | 17 + .../examples/objc/AppRTCMobile/ARDTURNClient.h | 23 + .../examples/objc/AppRTCMobile/ARDTURNClient.m | 86 + .../objc/AppRTCMobile/ARDWebSocketChannel.h | 40 + .../objc/AppRTCMobile/ARDWebSocketChannel.m | 252 +++ .../objc/AppRTCMobile/RTCIceCandidate+JSON.h | 23 + .../objc/AppRTCMobile/RTCIceCandidate+JSON.m | 100 ++ .../examples/objc/AppRTCMobile/RTCIceServer+JSON.h | 18 + .../examples/objc/AppRTCMobile/RTCIceServer+JSON.m | 25 + .../objc/AppRTCMobile/RTCSessionDescription+JSON.h | 20 + .../objc/AppRTCMobile/RTCSessionDescription+JSON.m | 36 + .../objc/AppRTCMobile/common/ARDUtilities.h | 35 + .../objc/AppRTCMobile/common/ARDUtilities.m | 126 ++ .../objc/AppRTCMobile/ios/ARDAppDelegate.h | 17 + .../objc/AppRTCMobile/ios/ARDAppDelegate.m | 56 + .../AppRTCMobile/ios/ARDFileCaptureController.h | 42 + .../AppRTCMobile/ios/ARDFileCaptureController.m | 45 + .../examples/objc/AppRTCMobile/ios/ARDMainView.h | 30 + .../examples/objc/AppRTCMobile/ios/ARDMainView.m | 196 +++ .../objc/AppRTCMobile/ios/ARDMainViewController.h | 14 + .../objc/AppRTCMobile/ios/ARDMainViewController.m | 263 +++ .../AppRTCMobile/ios/ARDSettingsViewController.h | 37 + .../AppRTCMobile/ios/ARDSettingsViewController.m | 361 ++++ .../examples/objc/AppRTCMobile/ios/ARDStatsView.h | 21 + .../examples/objc/AppRTCMobile/ios/ARDStatsView.m | 50 + .../objc/AppRTCMobile/ios/ARDVideoCallView.h | 47 + .../objc/AppRTCMobile/ios/ARDVideoCallView.m | 213 +++ .../AppRTCMobile/ios/ARDVideoCallViewController.h | 28 + .../AppRTCMobile/ios/ARDVideoCallViewController.m | 250 +++ .../examples/objc/AppRTCMobile/ios/Info.plist | 109 ++ .../ios/RTCVideoCodecInfo+HumanReadable.h | 18 + .../ios/RTCVideoCodecInfo+HumanReadable.m | 37 + .../objc/AppRTCMobile/ios/UIImage+ARDUtilities.h | 18 + .../objc/AppRTCMobile/ios/UIImage+ARDUtilities.m | 31 + .../ARDBroadcastSampleHandler.h | 24 + .../ARDBroadcastSampleHandler.m | 130 ++ .../ARDBroadcastSetupViewController.h | 17 + .../ARDBroadcastSetupViewController.m | 107 ++ .../broadcast_extension/BroadcastSetupUIInfo.plist | 39 + .../broadcast_extension/BroadcastUploadInfo.plist | 33 + .../examples/objc/AppRTCMobile/ios/main.m | 20 + .../AppRTCMobile/ios/resources/Roboto-Regular.ttf | Bin 0 -> 126072 bytes .../objc/AppRTCMobile/ios/resources/foreman.mp4 | Bin 0 -> 546651 bytes .../objc/AppRTCMobile/ios/resources/iPhone5@2x.png | Bin 0 -> 3640 bytes .../objc/AppRTCMobile/ios/resources/iPhone6@2x.png | Bin 0 -> 4856 bytes .../AppRTCMobile/ios/resources/iPhone6p@3x.png | Bin 0 -> 11152 bytes .../ios/resources/ic_call_end_black_24dp.png | Bin 0 -> 316 bytes .../ios/resources/ic_call_end_black_24dp@2x.png | Bin 0 -> 479 bytes .../ios/resources/ic_clear_black_24dp.png | Bin 0 -> 257 bytes .../ios/resources/ic_clear_black_24dp@2x.png | Bin 0 -> 360 bytes .../ios/resources/ic_settings_black_24dp.png | Bin 0 -> 322 bytes .../ios/resources/ic_settings_black_24dp@2x.png | Bin 0 -> 557 bytes .../ios/resources/ic_surround_sound_black_24dp.png | Bin 0 -> 285 bytes .../resources/ic_surround_sound_black_24dp@2x.png | Bin 0 -> 570 bytes .../ios/resources/ic_switch_video_black_24dp.png | Bin 0 -> 242 bytes .../resources/ic_switch_video_black_24dp@2x.png | Bin 0 -> 311 bytes .../objc/AppRTCMobile/ios/resources/mozart.mp3 | Bin 0 -> 893658 bytes .../objc/AppRTCMobile/mac/APPRTCAppDelegate.h | 14 + .../objc/AppRTCMobile/mac/APPRTCAppDelegate.m | 55 + .../objc/AppRTCMobile/mac/APPRTCViewController.h | 17 + .../objc/AppRTCMobile/mac/APPRTCViewController.m | 438 +++++ .../examples/objc/AppRTCMobile/mac/Info.plist | 33 + .../examples/objc/AppRTCMobile/mac/main.m | 22 + .../objc/AppRTCMobile/tests/ARDAppClient_xctest.mm | 266 +++ .../tests/ARDFileCaptureController_xctest.mm | 62 + .../AppRTCMobile/tests/ARDSettingsModel_xctest.mm | 96 ++ .../examples/objc/AppRTCMobile/tests/main.mm | 21 + .../AppRTCMobile/third_party/SocketRocket/LICENSE | 15 + .../third_party/SocketRocket/SRWebSocket.h | 135 ++ .../third_party/SocketRocket/SRWebSocket.m | 1774 ++++++++++++++++++++ third_party/libwebrtc/examples/objc/Icon-120.png | Bin 0 -> 8133 bytes third_party/libwebrtc/examples/objc/Icon-180.png | Bin 0 -> 12502 bytes third_party/libwebrtc/examples/objc/Icon.png | Bin 0 -> 62469 bytes third_party/libwebrtc/examples/objc/README | 3 + .../libwebrtc/examples/objcnativeapi/Info.plist | 45 + .../examples/objcnativeapi/objc/NADAppDelegate.h | 17 + .../examples/objcnativeapi/objc/NADAppDelegate.m | 63 + .../objcnativeapi/objc/NADViewController.h | 15 + .../objcnativeapi/objc/NADViewController.mm | 154 ++ .../libwebrtc/examples/objcnativeapi/objc/main.m | 18 + .../examples/objcnativeapi/objc/objc_call_client.h | 82 + .../objcnativeapi/objc/objc_call_client.mm | 238 +++ .../libwebrtc/examples/peerconnection/OWNERS | 1 + .../examples/peerconnection/client/conductor.cc | 599 +++++++ .../examples/peerconnection/client/conductor.h | 136 ++ .../examples/peerconnection/client/defaults.cc | 59 + .../examples/peerconnection/client/defaults.h | 29 + .../examples/peerconnection/client/flag_defs.h | 52 + .../examples/peerconnection/client/linux/main.cc | 121 ++ .../peerconnection/client/linux/main_wnd.cc | 545 ++++++ .../peerconnection/client/linux/main_wnd.h | 128 ++ .../examples/peerconnection/client/main.cc | 133 ++ .../examples/peerconnection/client/main_wnd.cc | 633 +++++++ .../examples/peerconnection/client/main_wnd.h | 206 +++ .../client/peer_connection_client.cc | 489 ++++++ .../peerconnection/client/peer_connection_client.h | 129 ++ .../examples/peerconnection/server/data_socket.cc | 299 ++++ .../examples/peerconnection/server/data_socket.h | 152 ++ .../examples/peerconnection/server/main.cc | 193 +++ .../examples/peerconnection/server/peer_channel.cc | 360 ++++ .../examples/peerconnection/server/peer_channel.h | 118 ++ .../peerconnection/server/server_test.html | 237 +++ .../examples/peerconnection/server/utils.cc | 25 + .../examples/peerconnection/server/utils.h | 25 + third_party/libwebrtc/examples/stunprober/main.cc | 146 ++ .../examples/stunserver/stunserver_main.cc | 49 + .../examples/turnserver/read_auth_file.cc | 37 + .../libwebrtc/examples/turnserver/read_auth_file.h | 24 + .../examples/turnserver/read_auth_file_unittest.cc | 45 + .../examples/turnserver/turnserver_main.cc | 101 ++ .../examples/unityplugin/ANDROID_INSTRUCTION | 33 + third_party/libwebrtc/examples/unityplugin/DEPS | 4 + third_party/libwebrtc/examples/unityplugin/README | 309 ++++ .../examples/unityplugin/class_reference_holder.cc | 88 + .../examples/unityplugin/class_reference_holder.h | 38 + .../java/src/org/webrtc/UnityUtility.java | 68 + .../libwebrtc/examples/unityplugin/jni_onload.cc | 42 + .../examples/unityplugin/simple_peer_connection.cc | 587 +++++++ .../examples/unityplugin/simple_peer_connection.h | 135 ++ .../examples/unityplugin/unity_plugin_apis.cc | 196 +++ .../examples/unityplugin/unity_plugin_apis.h | 108 ++ .../examples/unityplugin/video_observer.cc | 44 + .../examples/unityplugin/video_observer.h | 35 + 264 files changed, 30134 insertions(+) create mode 100644 third_party/libwebrtc/examples/BUILD.gn create mode 100644 third_party/libwebrtc/examples/DEPS create mode 100644 third_party/libwebrtc/examples/OWNERS create mode 100644 third_party/libwebrtc/examples/aarproject/.gitignore create mode 100644 third_party/libwebrtc/examples/aarproject/OWNERS create mode 100644 third_party/libwebrtc/examples/aarproject/app/.gitignore create mode 100644 third_party/libwebrtc/examples/aarproject/app/build.gradle create mode 100644 third_party/libwebrtc/examples/aarproject/app/proguard-rules.pro create mode 100644 third_party/libwebrtc/examples/aarproject/build.gradle create mode 100644 third_party/libwebrtc/examples/aarproject/gradle.properties create mode 100644 third_party/libwebrtc/examples/aarproject/local.properties create mode 100644 third_party/libwebrtc/examples/aarproject/settings.gradle create mode 100644 third_party/libwebrtc/examples/androidapp/AndroidManifest.xml create mode 100644 third_party/libwebrtc/examples/androidapp/OWNERS create mode 100644 third_party/libwebrtc/examples/androidapp/README create mode 100644 third_party/libwebrtc/examples/androidapp/ant.properties create mode 100644 third_party/libwebrtc/examples/androidapp/build.xml create mode 100644 third_party/libwebrtc/examples/androidapp/project.properties create mode 100644 third_party/libwebrtc/examples/androidapp/res/drawable-hdpi/disconnect.png create mode 100644 third_party/libwebrtc/examples/androidapp/res/drawable-hdpi/ic_action_full_screen.png create mode 100644 third_party/libwebrtc/examples/androidapp/res/drawable-hdpi/ic_action_return_from_full_screen.png create mode 100644 third_party/libwebrtc/examples/androidapp/res/drawable-hdpi/ic_launcher.png create mode 100644 third_party/libwebrtc/examples/androidapp/res/drawable-hdpi/ic_loopback_call.png create mode 100644 third_party/libwebrtc/examples/androidapp/res/drawable-ldpi/disconnect.png create mode 100644 third_party/libwebrtc/examples/androidapp/res/drawable-ldpi/ic_action_full_screen.png create mode 100644 third_party/libwebrtc/examples/androidapp/res/drawable-ldpi/ic_action_return_from_full_screen.png create mode 100644 third_party/libwebrtc/examples/androidapp/res/drawable-ldpi/ic_launcher.png create mode 100644 third_party/libwebrtc/examples/androidapp/res/drawable-ldpi/ic_loopback_call.png create mode 100644 third_party/libwebrtc/examples/androidapp/res/drawable-mdpi/disconnect.png create mode 100644 third_party/libwebrtc/examples/androidapp/res/drawable-mdpi/ic_action_full_screen.png create mode 100644 third_party/libwebrtc/examples/androidapp/res/drawable-mdpi/ic_action_return_from_full_screen.png create mode 100644 third_party/libwebrtc/examples/androidapp/res/drawable-mdpi/ic_launcher.png create mode 100644 third_party/libwebrtc/examples/androidapp/res/drawable-mdpi/ic_loopback_call.png create mode 100644 third_party/libwebrtc/examples/androidapp/res/drawable-xhdpi/disconnect.png create mode 100644 third_party/libwebrtc/examples/androidapp/res/drawable-xhdpi/ic_action_full_screen.png create mode 100644 third_party/libwebrtc/examples/androidapp/res/drawable-xhdpi/ic_action_return_from_full_screen.png create mode 100644 third_party/libwebrtc/examples/androidapp/res/drawable-xhdpi/ic_launcher.png create mode 100644 third_party/libwebrtc/examples/androidapp/res/drawable-xhdpi/ic_loopback_call.png create mode 100644 third_party/libwebrtc/examples/androidapp/res/layout/activity_call.xml create mode 100644 third_party/libwebrtc/examples/androidapp/res/layout/activity_connect.xml create mode 100644 third_party/libwebrtc/examples/androidapp/res/layout/fragment_call.xml create mode 100644 third_party/libwebrtc/examples/androidapp/res/layout/fragment_hud.xml create mode 100644 third_party/libwebrtc/examples/androidapp/res/menu/connect_menu.xml create mode 100644 third_party/libwebrtc/examples/androidapp/res/values-v17/styles.xml create mode 100644 third_party/libwebrtc/examples/androidapp/res/values-v21/styles.xml create mode 100644 third_party/libwebrtc/examples/androidapp/res/values/arrays.xml create mode 100644 third_party/libwebrtc/examples/androidapp/res/values/strings.xml create mode 100644 third_party/libwebrtc/examples/androidapp/res/xml/preferences.xml create mode 100644 third_party/libwebrtc/examples/androidapp/src/org/appspot/apprtc/AppRTCAudioManager.java create mode 100644 third_party/libwebrtc/examples/androidapp/src/org/appspot/apprtc/AppRTCBluetoothManager.java create mode 100644 third_party/libwebrtc/examples/androidapp/src/org/appspot/apprtc/AppRTCClient.java create mode 100644 third_party/libwebrtc/examples/androidapp/src/org/appspot/apprtc/AppRTCProximitySensor.java create mode 100644 third_party/libwebrtc/examples/androidapp/src/org/appspot/apprtc/CallActivity.java create mode 100644 third_party/libwebrtc/examples/androidapp/src/org/appspot/apprtc/CallFragment.java create mode 100644 third_party/libwebrtc/examples/androidapp/src/org/appspot/apprtc/CaptureQualityController.java create mode 100644 third_party/libwebrtc/examples/androidapp/src/org/appspot/apprtc/ConnectActivity.java create mode 100644 third_party/libwebrtc/examples/androidapp/src/org/appspot/apprtc/CpuMonitor.java create mode 100644 third_party/libwebrtc/examples/androidapp/src/org/appspot/apprtc/DirectRTCClient.java create mode 100644 third_party/libwebrtc/examples/androidapp/src/org/appspot/apprtc/HudFragment.java create mode 100644 third_party/libwebrtc/examples/androidapp/src/org/appspot/apprtc/PeerConnectionClient.java create mode 100644 third_party/libwebrtc/examples/androidapp/src/org/appspot/apprtc/RecordedAudioToFileController.java create mode 100644 third_party/libwebrtc/examples/androidapp/src/org/appspot/apprtc/RoomParametersFetcher.java create mode 100644 third_party/libwebrtc/examples/androidapp/src/org/appspot/apprtc/RtcEventLog.java create mode 100644 third_party/libwebrtc/examples/androidapp/src/org/appspot/apprtc/SettingsActivity.java create mode 100644 third_party/libwebrtc/examples/androidapp/src/org/appspot/apprtc/SettingsFragment.java create mode 100644 third_party/libwebrtc/examples/androidapp/src/org/appspot/apprtc/TCPChannelClient.java create mode 100644 third_party/libwebrtc/examples/androidapp/src/org/appspot/apprtc/UnhandledExceptionHandler.java create mode 100644 third_party/libwebrtc/examples/androidapp/src/org/appspot/apprtc/WebSocketChannelClient.java create mode 100644 third_party/libwebrtc/examples/androidapp/src/org/appspot/apprtc/WebSocketRTCClient.java create mode 100644 third_party/libwebrtc/examples/androidapp/src/org/appspot/apprtc/util/AppRTCUtils.java create mode 100644 third_party/libwebrtc/examples/androidapp/src/org/appspot/apprtc/util/AsyncHttpURLConnection.java create mode 100644 third_party/libwebrtc/examples/androidapp/start_loopback_stubbed_camera_saved_video_out.py create mode 100644 third_party/libwebrtc/examples/androidapp/third_party/autobanh/BUILD.gn create mode 100644 third_party/libwebrtc/examples/androidapp/third_party/autobanh/LICENSE create mode 100644 third_party/libwebrtc/examples/androidapp/third_party/autobanh/LICENSE.md create mode 100644 third_party/libwebrtc/examples/androidapp/third_party/autobanh/NOTICE create mode 100644 third_party/libwebrtc/examples/androidapp/third_party/autobanh/lib/autobanh.jar create mode 100644 third_party/libwebrtc/examples/androidjunit/OWNERS create mode 100644 third_party/libwebrtc/examples/androidjunit/README create mode 100644 third_party/libwebrtc/examples/androidjunit/src/org/appspot/apprtc/BluetoothManagerTest.java create mode 100644 third_party/libwebrtc/examples/androidjunit/src/org/appspot/apprtc/DirectRTCClientTest.java create mode 100644 third_party/libwebrtc/examples/androidjunit/src/org/appspot/apprtc/TCPChannelClientTest.java create mode 100644 third_party/libwebrtc/examples/androidnativeapi/AndroidManifest.xml create mode 100644 third_party/libwebrtc/examples/androidnativeapi/BUILD.gn create mode 100644 third_party/libwebrtc/examples/androidnativeapi/DEPS create mode 100644 third_party/libwebrtc/examples/androidnativeapi/OWNERS create mode 100644 third_party/libwebrtc/examples/androidnativeapi/java/org/webrtc/examples/androidnativeapi/CallClient.java create mode 100644 third_party/libwebrtc/examples/androidnativeapi/java/org/webrtc/examples/androidnativeapi/MainActivity.java create mode 100644 third_party/libwebrtc/examples/androidnativeapi/jni/android_call_client.cc create mode 100644 third_party/libwebrtc/examples/androidnativeapi/jni/android_call_client.h create mode 100644 third_party/libwebrtc/examples/androidnativeapi/jni/onload.cc create mode 100644 third_party/libwebrtc/examples/androidnativeapi/res/layout/activity_main.xml create mode 100644 third_party/libwebrtc/examples/androidnativeapi/res/values/strings.xml create mode 100644 third_party/libwebrtc/examples/androidtests/AndroidManifest.xml create mode 100644 third_party/libwebrtc/examples/androidtests/OWNERS create mode 100644 third_party/libwebrtc/examples/androidtests/README create mode 100644 third_party/libwebrtc/examples/androidtests/ant.properties create mode 100644 third_party/libwebrtc/examples/androidtests/build.xml create mode 100644 third_party/libwebrtc/examples/androidtests/project.properties create mode 100644 third_party/libwebrtc/examples/androidtests/src/org/appspot/apprtc/test/PeerConnectionClientTest.java create mode 100644 third_party/libwebrtc/examples/androidtests/third_party/.gitignore create mode 100644 third_party/libwebrtc/examples/androidtests/third_party/README.webrtc create mode 100644 third_party/libwebrtc/examples/androidvoip/AndroidManifest.xml create mode 100644 third_party/libwebrtc/examples/androidvoip/BUILD.gn create mode 100644 third_party/libwebrtc/examples/androidvoip/DEPS create mode 100644 third_party/libwebrtc/examples/androidvoip/OWNERS create mode 100644 third_party/libwebrtc/examples/androidvoip/java/org/webrtc/examples/androidvoip/MainActivity.java create mode 100644 third_party/libwebrtc/examples/androidvoip/java/org/webrtc/examples/androidvoip/OnVoipClientTaskCompleted.java create mode 100644 third_party/libwebrtc/examples/androidvoip/java/org/webrtc/examples/androidvoip/VoipClient.java create mode 100644 third_party/libwebrtc/examples/androidvoip/jni/android_voip_client.cc create mode 100644 third_party/libwebrtc/examples/androidvoip/jni/android_voip_client.h create mode 100644 third_party/libwebrtc/examples/androidvoip/jni/onload.cc create mode 100644 third_party/libwebrtc/examples/androidvoip/res/layout/activity_main.xml create mode 100644 third_party/libwebrtc/examples/androidvoip/res/values/colors.xml create mode 100644 third_party/libwebrtc/examples/androidvoip/res/values/strings.xml create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ARDAppClient+Internal.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ARDAppClient.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ARDAppClient.m create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ARDAppEngineClient.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ARDAppEngineClient.m create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ARDCaptureController.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ARDCaptureController.m create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ARDExternalSampleCapturer.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ARDExternalSampleCapturer.m create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ARDJoinResponse+Internal.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ARDJoinResponse.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ARDJoinResponse.m create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ARDMessageResponse+Internal.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ARDMessageResponse.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ARDMessageResponse.m create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ARDRoomServerClient.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ARDSettingsModel+Private.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ARDSettingsModel.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ARDSettingsModel.m create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ARDSettingsStore.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ARDSettingsStore.m create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ARDSignalingChannel.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ARDSignalingMessage.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ARDSignalingMessage.m create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ARDStatsBuilder.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ARDStatsBuilder.m create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ARDTURNClient+Internal.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ARDTURNClient.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ARDTURNClient.m create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ARDWebSocketChannel.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ARDWebSocketChannel.m create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/RTCIceCandidate+JSON.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/RTCIceCandidate+JSON.m create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/RTCIceServer+JSON.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/RTCIceServer+JSON.m create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/RTCSessionDescription+JSON.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/RTCSessionDescription+JSON.m create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/common/ARDUtilities.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/common/ARDUtilities.m create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/ARDAppDelegate.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/ARDAppDelegate.m create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/ARDFileCaptureController.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/ARDFileCaptureController.m create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/ARDMainView.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/ARDMainView.m create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/ARDMainViewController.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/ARDMainViewController.m create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/ARDSettingsViewController.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/ARDSettingsViewController.m create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/ARDStatsView.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/ARDStatsView.m create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/ARDVideoCallView.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/ARDVideoCallView.m create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/ARDVideoCallViewController.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/ARDVideoCallViewController.m create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/Info.plist create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/RTCVideoCodecInfo+HumanReadable.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/RTCVideoCodecInfo+HumanReadable.m create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/UIImage+ARDUtilities.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/UIImage+ARDUtilities.m create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/broadcast_extension/ARDBroadcastSampleHandler.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/broadcast_extension/ARDBroadcastSampleHandler.m create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/broadcast_extension/ARDBroadcastSetupViewController.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/broadcast_extension/ARDBroadcastSetupViewController.m create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/broadcast_extension/BroadcastSetupUIInfo.plist create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/broadcast_extension/BroadcastUploadInfo.plist create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/main.m create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/resources/Roboto-Regular.ttf create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/resources/foreman.mp4 create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/resources/iPhone5@2x.png create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/resources/iPhone6@2x.png create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/resources/iPhone6p@3x.png create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/resources/ic_call_end_black_24dp.png create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/resources/ic_call_end_black_24dp@2x.png create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/resources/ic_clear_black_24dp.png create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/resources/ic_clear_black_24dp@2x.png create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/resources/ic_settings_black_24dp.png create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/resources/ic_settings_black_24dp@2x.png create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/resources/ic_surround_sound_black_24dp.png create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/resources/ic_surround_sound_black_24dp@2x.png create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/resources/ic_switch_video_black_24dp.png create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/resources/ic_switch_video_black_24dp@2x.png create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ios/resources/mozart.mp3 create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/mac/APPRTCAppDelegate.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/mac/APPRTCAppDelegate.m create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/mac/APPRTCViewController.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/mac/APPRTCViewController.m create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/mac/Info.plist create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/mac/main.m create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/tests/ARDAppClient_xctest.mm create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/tests/ARDFileCaptureController_xctest.mm create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/tests/ARDSettingsModel_xctest.mm create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/tests/main.mm create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/third_party/SocketRocket/LICENSE create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/third_party/SocketRocket/SRWebSocket.h create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/third_party/SocketRocket/SRWebSocket.m create mode 100644 third_party/libwebrtc/examples/objc/Icon-120.png create mode 100644 third_party/libwebrtc/examples/objc/Icon-180.png create mode 100644 third_party/libwebrtc/examples/objc/Icon.png create mode 100644 third_party/libwebrtc/examples/objc/README create mode 100644 third_party/libwebrtc/examples/objcnativeapi/Info.plist create mode 100644 third_party/libwebrtc/examples/objcnativeapi/objc/NADAppDelegate.h create mode 100644 third_party/libwebrtc/examples/objcnativeapi/objc/NADAppDelegate.m create mode 100644 third_party/libwebrtc/examples/objcnativeapi/objc/NADViewController.h create mode 100644 third_party/libwebrtc/examples/objcnativeapi/objc/NADViewController.mm create mode 100644 third_party/libwebrtc/examples/objcnativeapi/objc/main.m create mode 100644 third_party/libwebrtc/examples/objcnativeapi/objc/objc_call_client.h create mode 100644 third_party/libwebrtc/examples/objcnativeapi/objc/objc_call_client.mm create mode 100644 third_party/libwebrtc/examples/peerconnection/OWNERS create mode 100644 third_party/libwebrtc/examples/peerconnection/client/conductor.cc create mode 100644 third_party/libwebrtc/examples/peerconnection/client/conductor.h create mode 100644 third_party/libwebrtc/examples/peerconnection/client/defaults.cc create mode 100644 third_party/libwebrtc/examples/peerconnection/client/defaults.h create mode 100644 third_party/libwebrtc/examples/peerconnection/client/flag_defs.h create mode 100644 third_party/libwebrtc/examples/peerconnection/client/linux/main.cc create mode 100644 third_party/libwebrtc/examples/peerconnection/client/linux/main_wnd.cc create mode 100644 third_party/libwebrtc/examples/peerconnection/client/linux/main_wnd.h create mode 100644 third_party/libwebrtc/examples/peerconnection/client/main.cc create mode 100644 third_party/libwebrtc/examples/peerconnection/client/main_wnd.cc create mode 100644 third_party/libwebrtc/examples/peerconnection/client/main_wnd.h create mode 100644 third_party/libwebrtc/examples/peerconnection/client/peer_connection_client.cc create mode 100644 third_party/libwebrtc/examples/peerconnection/client/peer_connection_client.h create mode 100644 third_party/libwebrtc/examples/peerconnection/server/data_socket.cc create mode 100644 third_party/libwebrtc/examples/peerconnection/server/data_socket.h create mode 100644 third_party/libwebrtc/examples/peerconnection/server/main.cc create mode 100644 third_party/libwebrtc/examples/peerconnection/server/peer_channel.cc create mode 100644 third_party/libwebrtc/examples/peerconnection/server/peer_channel.h create mode 100644 third_party/libwebrtc/examples/peerconnection/server/server_test.html create mode 100644 third_party/libwebrtc/examples/peerconnection/server/utils.cc create mode 100644 third_party/libwebrtc/examples/peerconnection/server/utils.h create mode 100644 third_party/libwebrtc/examples/stunprober/main.cc create mode 100644 third_party/libwebrtc/examples/stunserver/stunserver_main.cc create mode 100644 third_party/libwebrtc/examples/turnserver/read_auth_file.cc create mode 100644 third_party/libwebrtc/examples/turnserver/read_auth_file.h create mode 100644 third_party/libwebrtc/examples/turnserver/read_auth_file_unittest.cc create mode 100644 third_party/libwebrtc/examples/turnserver/turnserver_main.cc create mode 100644 third_party/libwebrtc/examples/unityplugin/ANDROID_INSTRUCTION create mode 100644 third_party/libwebrtc/examples/unityplugin/DEPS create mode 100644 third_party/libwebrtc/examples/unityplugin/README create mode 100644 third_party/libwebrtc/examples/unityplugin/class_reference_holder.cc create mode 100644 third_party/libwebrtc/examples/unityplugin/class_reference_holder.h create mode 100644 third_party/libwebrtc/examples/unityplugin/java/src/org/webrtc/UnityUtility.java create mode 100644 third_party/libwebrtc/examples/unityplugin/jni_onload.cc create mode 100644 third_party/libwebrtc/examples/unityplugin/simple_peer_connection.cc create mode 100644 third_party/libwebrtc/examples/unityplugin/simple_peer_connection.h create mode 100644 third_party/libwebrtc/examples/unityplugin/unity_plugin_apis.cc create mode 100644 third_party/libwebrtc/examples/unityplugin/unity_plugin_apis.h create mode 100644 third_party/libwebrtc/examples/unityplugin/video_observer.cc create mode 100644 third_party/libwebrtc/examples/unityplugin/video_observer.h (limited to 'third_party/libwebrtc/examples') diff --git a/third_party/libwebrtc/examples/BUILD.gn b/third_party/libwebrtc/examples/BUILD.gn new file mode 100644 index 0000000000..18cb6ecc67 --- /dev/null +++ b/third_party/libwebrtc/examples/BUILD.gn @@ -0,0 +1,953 @@ +# Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. +# +# Use of this source code is governed by a BSD-style license +# that can be found in the LICENSE file in the root of the source +# tree. An additional intellectual property rights grant can be found +# in the file PATENTS. All contributing project authors may +# be found in the AUTHORS file in the root of the source tree. + +import("../webrtc.gni") + +if (is_android) { + import("//build/config/android/config.gni") + import("//build/config/android/rules.gni") +} else if (is_mac) { + import("//build/config/mac/rules.gni") +} else if (is_ios) { + import("//build/config/ios/rules.gni") +} else if (is_linux || is_chromeos) { + import("//build/config/linux/pkg_config.gni") +} + +group("examples") { + # This target shall build all targets in examples. + testonly = true + deps = [] + + if (is_android) { + deps += [ + ":AppRTCMobile", + ":AppRTCMobile_test_apk", + ":libwebrtc_unity", + "androidvoip", + ] + + # TODO(sakal): We include some code from the tests. Remove this dependency + # and remove this if-clause. + if (rtc_include_tests) { + deps += [ "androidnativeapi" ] + } + } + + if (!build_with_chromium) { + deps += [ ":stun_prober" ] + } + + if (is_ios || (is_mac && target_cpu != "x86")) { + deps += [ ":AppRTCMobile" ] + } + + if (is_linux || is_chromeos || is_win) { + deps += [ + ":peerconnection_server", + ":stunserver", + ":turnserver", + ] + if (current_os != "winuwp") { + deps += [ ":peerconnection_client" ] + } + } + + if (is_android || is_win) { + deps += [ ":webrtc_unity_plugin" ] + } +} + +rtc_library("read_auth_file") { + testonly = true + sources = [ + "turnserver/read_auth_file.cc", + "turnserver/read_auth_file.h", + ] + deps = [ + "../api:array_view", + "../rtc_base:stringutils", + ] + absl_deps = [ "//third_party/abseil-cpp/absl/strings:strings" ] +} + +if (rtc_include_tests) { + rtc_test("examples_unittests") { + testonly = true + sources = [ "turnserver/read_auth_file_unittest.cc" ] + deps = [ + ":read_auth_file", + "../test:test_main", + "//test:test_support", + "//testing/gtest", + ] + } +} + +if (is_android) { + rtc_android_apk("AppRTCMobile") { + testonly = true + apk_name = "AppRTCMobile" + android_manifest = "androidapp/AndroidManifest.xml" + min_sdk_version = 21 + target_sdk_version = 31 + + deps = [ + ":AppRTCMobile_javalib", + ":AppRTCMobile_resources", + "../rtc_base:base_java", + ] + + shared_libraries = [ "../sdk/android:libjingle_peerconnection_so" ] + } + + rtc_android_library("AppRTCMobile_javalib") { + testonly = true + android_manifest = "androidapp/AndroidManifest.xml" + + sources = [ + "androidapp/src/org/appspot/apprtc/AppRTCAudioManager.java", + "androidapp/src/org/appspot/apprtc/AppRTCBluetoothManager.java", + "androidapp/src/org/appspot/apprtc/AppRTCClient.java", + "androidapp/src/org/appspot/apprtc/AppRTCProximitySensor.java", + "androidapp/src/org/appspot/apprtc/CallActivity.java", + "androidapp/src/org/appspot/apprtc/CallFragment.java", + "androidapp/src/org/appspot/apprtc/CaptureQualityController.java", + "androidapp/src/org/appspot/apprtc/ConnectActivity.java", + "androidapp/src/org/appspot/apprtc/CpuMonitor.java", + "androidapp/src/org/appspot/apprtc/DirectRTCClient.java", + "androidapp/src/org/appspot/apprtc/HudFragment.java", + "androidapp/src/org/appspot/apprtc/PeerConnectionClient.java", + "androidapp/src/org/appspot/apprtc/RecordedAudioToFileController.java", + "androidapp/src/org/appspot/apprtc/RoomParametersFetcher.java", + "androidapp/src/org/appspot/apprtc/RtcEventLog.java", + "androidapp/src/org/appspot/apprtc/SettingsActivity.java", + "androidapp/src/org/appspot/apprtc/SettingsFragment.java", + "androidapp/src/org/appspot/apprtc/TCPChannelClient.java", + "androidapp/src/org/appspot/apprtc/UnhandledExceptionHandler.java", + "androidapp/src/org/appspot/apprtc/WebSocketChannelClient.java", + "androidapp/src/org/appspot/apprtc/WebSocketRTCClient.java", + "androidapp/src/org/appspot/apprtc/util/AppRTCUtils.java", + "androidapp/src/org/appspot/apprtc/util/AsyncHttpURLConnection.java", + ] + + resources_package = "org.appspot.apprtc" + deps = [ + ":AppRTCMobile_resources", + "../rtc_base:base_java", + "../sdk/android:audio_api_java", + "../sdk/android:base_java", + "../sdk/android:camera_java", + "../sdk/android:default_video_codec_factory_java", + "../sdk/android:filevideo_java", + "../sdk/android:hwcodecs_java", + "../sdk/android:java_audio_device_module_java", + "../sdk/android:libjingle_peerconnection_java", + "../sdk/android:libjingle_peerconnection_metrics_default_java", + "../sdk/android:peerconnection_java", + "../sdk/android:screencapturer_java", + "../sdk/android:surfaceviewrenderer_java", + "../sdk/android:swcodecs_java", + "../sdk/android:video_api_java", + "../sdk/android:video_java", + "androidapp/third_party/autobanh:autobanh_java", + "//third_party/androidx:androidx_annotation_annotation_java", + ] + } + + android_resources("AppRTCMobile_resources") { + testonly = true + sources = [ + "androidapp/res/drawable-hdpi/disconnect.png", + "androidapp/res/drawable-hdpi/ic_action_full_screen.png", + "androidapp/res/drawable-hdpi/ic_action_return_from_full_screen.png", + "androidapp/res/drawable-hdpi/ic_launcher.png", + "androidapp/res/drawable-hdpi/ic_loopback_call.png", + "androidapp/res/drawable-ldpi/disconnect.png", + "androidapp/res/drawable-ldpi/ic_action_full_screen.png", + "androidapp/res/drawable-ldpi/ic_action_return_from_full_screen.png", + "androidapp/res/drawable-ldpi/ic_launcher.png", + "androidapp/res/drawable-ldpi/ic_loopback_call.png", + "androidapp/res/drawable-mdpi/disconnect.png", + "androidapp/res/drawable-mdpi/ic_action_full_screen.png", + "androidapp/res/drawable-mdpi/ic_action_return_from_full_screen.png", + "androidapp/res/drawable-mdpi/ic_launcher.png", + "androidapp/res/drawable-mdpi/ic_loopback_call.png", + "androidapp/res/drawable-xhdpi/disconnect.png", + "androidapp/res/drawable-xhdpi/ic_action_full_screen.png", + "androidapp/res/drawable-xhdpi/ic_action_return_from_full_screen.png", + "androidapp/res/drawable-xhdpi/ic_launcher.png", + "androidapp/res/drawable-xhdpi/ic_loopback_call.png", + "androidapp/res/layout/activity_call.xml", + "androidapp/res/layout/activity_connect.xml", + "androidapp/res/layout/fragment_call.xml", + "androidapp/res/layout/fragment_hud.xml", + "androidapp/res/menu/connect_menu.xml", + "androidapp/res/values-v17/styles.xml", + "androidapp/res/values-v21/styles.xml", + "androidapp/res/values/arrays.xml", + "androidapp/res/values/strings.xml", + "androidapp/res/xml/preferences.xml", + ] + + # Needed for Bazel converter. + custom_package = "org.appspot.apprtc" + resource_dirs = [ "androidapp/res" ] + assert(resource_dirs != []) # Mark as used. + } + + rtc_instrumentation_test_apk("AppRTCMobile_test_apk") { + apk_name = "AppRTCMobileTest" + android_manifest = "androidtests/AndroidManifest.xml" + min_sdk_version = 21 + target_sdk_version = 31 + + sources = [ + "androidtests/src/org/appspot/apprtc/test/PeerConnectionClientTest.java", + ] + + apk_under_test = ":AppRTCMobile" + + deps = [ + ":AppRTCMobile_javalib", + "../sdk/android:base_java", + "../sdk/android:camera_java", + "../sdk/android:libjingle_peerconnection_java", + "../sdk/android:peerconnection_java", + "../sdk/android:video_api_java", + "../sdk/android:video_java", + "//third_party/android_support_test_runner:runner_java", + "//third_party/androidx:androidx_test_runner_java", + "//third_party/junit", + ] + } +} + +if (is_ios || (is_mac && target_cpu != "x86")) { + config("apprtc_common_config") { + include_dirs = [ "objc/AppRTCMobile/common" ] + } + + rtc_library("apprtc_common") { + testonly = true + sources = [ + "objc/AppRTCMobile/common/ARDUtilities.h", + "objc/AppRTCMobile/common/ARDUtilities.m", + ] + public_configs = [ ":apprtc_common_config" ] + deps = [ "../sdk:base_objc" ] + } + + config("apprtc_signaling_config") { + include_dirs = [ "objc/AppRTCMobile" ] + } + + rtc_library("apprtc_signaling") { + testonly = true + sources = [ + "objc/AppRTCMobile/ARDAppClient+Internal.h", + "objc/AppRTCMobile/ARDAppClient.h", + "objc/AppRTCMobile/ARDAppClient.m", + "objc/AppRTCMobile/ARDAppEngineClient.h", + "objc/AppRTCMobile/ARDAppEngineClient.m", + "objc/AppRTCMobile/ARDCaptureController.h", + "objc/AppRTCMobile/ARDCaptureController.m", + "objc/AppRTCMobile/ARDExternalSampleCapturer.h", + "objc/AppRTCMobile/ARDExternalSampleCapturer.m", + "objc/AppRTCMobile/ARDJoinResponse+Internal.h", + "objc/AppRTCMobile/ARDJoinResponse.h", + "objc/AppRTCMobile/ARDJoinResponse.m", + "objc/AppRTCMobile/ARDMessageResponse+Internal.h", + "objc/AppRTCMobile/ARDMessageResponse.h", + "objc/AppRTCMobile/ARDMessageResponse.m", + "objc/AppRTCMobile/ARDRoomServerClient.h", + "objc/AppRTCMobile/ARDSettingsModel+Private.h", + "objc/AppRTCMobile/ARDSettingsModel.h", + "objc/AppRTCMobile/ARDSettingsModel.m", + "objc/AppRTCMobile/ARDSettingsStore.h", + "objc/AppRTCMobile/ARDSettingsStore.m", + "objc/AppRTCMobile/ARDSignalingChannel.h", + "objc/AppRTCMobile/ARDSignalingMessage.h", + "objc/AppRTCMobile/ARDSignalingMessage.m", + "objc/AppRTCMobile/ARDStatsBuilder.h", + "objc/AppRTCMobile/ARDStatsBuilder.m", + "objc/AppRTCMobile/ARDTURNClient+Internal.h", + "objc/AppRTCMobile/ARDTURNClient.h", + "objc/AppRTCMobile/ARDTURNClient.m", + "objc/AppRTCMobile/ARDWebSocketChannel.h", + "objc/AppRTCMobile/ARDWebSocketChannel.m", + "objc/AppRTCMobile/RTCIceCandidate+JSON.h", + "objc/AppRTCMobile/RTCIceCandidate+JSON.m", + "objc/AppRTCMobile/RTCIceServer+JSON.h", + "objc/AppRTCMobile/RTCIceServer+JSON.m", + "objc/AppRTCMobile/RTCSessionDescription+JSON.h", + "objc/AppRTCMobile/RTCSessionDescription+JSON.m", + ] + public_configs = [ ":apprtc_signaling_config" ] + deps = [ + ":apprtc_common", + ":socketrocket", + "../sdk:base_objc", + "../sdk:default_codec_factory_objc", + "../sdk:file_logger_objc", + "../sdk:helpers_objc", + "../sdk:mediaconstraints_objc", + "../sdk:peerconnectionfactory_base_objc", + "../sdk:videocapture_objc", + "../sdk:videoframebuffer_objc", + "../sdk:videosource_objc", + ] + frameworks = [ + "CoreMedia.framework", + "QuartzCore.framework", + ] + } + + if (is_ios) { + rtc_library("AppRTCMobile_lib") { + # iOS must use WebRTC.framework which is dynamically linked. + testonly = true + sources = [ + "objc/AppRTCMobile/ios/ARDAppDelegate.h", + "objc/AppRTCMobile/ios/ARDAppDelegate.m", + "objc/AppRTCMobile/ios/ARDFileCaptureController.h", + "objc/AppRTCMobile/ios/ARDFileCaptureController.m", + "objc/AppRTCMobile/ios/ARDMainView.h", + "objc/AppRTCMobile/ios/ARDMainView.m", + "objc/AppRTCMobile/ios/ARDMainViewController.h", + "objc/AppRTCMobile/ios/ARDMainViewController.m", + "objc/AppRTCMobile/ios/ARDSettingsViewController.h", + "objc/AppRTCMobile/ios/ARDSettingsViewController.m", + "objc/AppRTCMobile/ios/ARDStatsView.h", + "objc/AppRTCMobile/ios/ARDStatsView.m", + "objc/AppRTCMobile/ios/ARDVideoCallView.h", + "objc/AppRTCMobile/ios/ARDVideoCallView.m", + "objc/AppRTCMobile/ios/ARDVideoCallViewController.h", + "objc/AppRTCMobile/ios/ARDVideoCallViewController.m", + "objc/AppRTCMobile/ios/RTCVideoCodecInfo+HumanReadable.h", + "objc/AppRTCMobile/ios/RTCVideoCodecInfo+HumanReadable.m", + "objc/AppRTCMobile/ios/UIImage+ARDUtilities.h", + "objc/AppRTCMobile/ios/UIImage+ARDUtilities.m", + ] + + configs += [ "..:common_objc" ] + + deps = [ + ":apprtc_common", + ":apprtc_signaling", + "../sdk:audio_session_objc", + "../sdk:base_objc", + "../sdk:helpers_objc", + "../sdk:mediaconstraints_objc", + "../sdk:metal_objc", + "../sdk:peerconnectionfactory_base_objc", + "../sdk:peerconnectionfactory_base_objc", + "../sdk:videocapture_objc", + "../sdk:videocodec_objc", + ] + if (rtc_ios_macos_use_opengl_rendering) { + deps += [ "../sdk:opengl_ui_objc" ] + } + + frameworks = [ "AVFoundation.framework" ] + } + + ios_app_bundle("AppRTCMobile") { + testonly = true + sources = [ "objc/AppRTCMobile/ios/main.m" ] + + info_plist = "objc/AppRTCMobile/ios/Info.plist" + + configs += [ "..:common_config" ] + public_configs = [ "..:common_inherited_config" ] + + deps = [ + ":AppRTCMobile_ios_bundle_data", + ":AppRTCMobile_lib", + "../sdk:framework_objc", + "../sdk:ios_framework_bundle", + ] + + if (rtc_apprtcmobile_broadcast_extension) { + deps += [ + ":AppRTCMobileBroadcastSetupUI_extension_bundle", + ":AppRTCMobileBroadcastUpload_extension_bundle", + ] + } + + if (target_cpu == "x86") { + deps += [ "//testing/iossim" ] + } + } + + if (rtc_apprtcmobile_broadcast_extension) { + bundle_data("AppRTCMobileBroadcastUpload_extension_bundle") { + testonly = true + public_deps = [ # no-presubmit-check TODO(webrtc:8603) + ":AppRTCMobileBroadcastUpload", # prevent code format + ] + sources = [ "$root_out_dir/AppRTCMobileBroadcastUpload.appex" ] + outputs = [ "{{bundle_contents_dir}}/Plugins/{{source_file_part}}" ] + } + + bundle_data("AppRTCMobileBroadcastSetupUI_extension_bundle") { + testonly = true + public_deps = [ # no-presubmit-check TODO(webrtc:8603) + ":AppRTCMobileBroadcastSetupUI", # prevent code format + ] + sources = [ "$root_out_dir/AppRTCMobileBroadcastSetupUI.appex" ] + outputs = [ "{{bundle_contents_dir}}/Plugins/{{source_file_part}}" ] + } + + rtc_library("AppRTCMobileBroadcastUpload_lib") { + testonly = true + sources = [ + "objc/AppRTCMobile/ios/broadcast_extension/ARDBroadcastSampleHandler.h", + "objc/AppRTCMobile/ios/broadcast_extension/ARDBroadcastSampleHandler.m", + ] + + deps = [ + ":apprtc_signaling", + "../sdk:framework_objc+link", + "../sdk:ios_framework_bundle", + ] + + frameworks = [ "ReplayKit.framework" ] + } + + ios_appex_bundle("AppRTCMobileBroadcastUpload") { + testonly = true + configs += [ "..:common_config" ] + public_configs = [ "..:common_inherited_config" ] + + info_plist = "objc/AppRTCMobile/ios/broadcast_extension/BroadcastUploadInfo.plist" + + deps = [ + ":AppRTCMobileBroadcastUpload_lib", + "../sdk:framework_objc", + ] + } + + ios_appex_bundle("AppRTCMobileBroadcastSetupUI") { + sources = [ + "objc/AppRTCMobile/ios/broadcast_extension/ARDBroadcastSetupViewController.h", + "objc/AppRTCMobile/ios/broadcast_extension/ARDBroadcastSetupViewController.m", + ] + + info_plist = "objc/AppRTCMobile/ios/broadcast_extension/BroadcastSetupUIInfo.plist" + + frameworks = [ "ReplayKit.framework" ] + + deps = [ ":AppRTCMobile_ios_bundle_data" ] + } + } + + bundle_data("AppRTCMobile_ios_bundle_data") { + sources = [ + "objc/AppRTCMobile/ios/resources/Roboto-Regular.ttf", + + # Sample video taken from https://media.xiph.org/video/derf/ + "objc/AppRTCMobile/ios/resources/foreman.mp4", + "objc/AppRTCMobile/ios/resources/iPhone5@2x.png", + "objc/AppRTCMobile/ios/resources/iPhone6@2x.png", + "objc/AppRTCMobile/ios/resources/iPhone6p@3x.png", + "objc/AppRTCMobile/ios/resources/ic_call_end_black_24dp.png", + "objc/AppRTCMobile/ios/resources/ic_call_end_black_24dp@2x.png", + "objc/AppRTCMobile/ios/resources/ic_clear_black_24dp.png", + "objc/AppRTCMobile/ios/resources/ic_clear_black_24dp@2x.png", + "objc/AppRTCMobile/ios/resources/ic_settings_black_24dp.png", + "objc/AppRTCMobile/ios/resources/ic_settings_black_24dp@2x.png", + "objc/AppRTCMobile/ios/resources/ic_surround_sound_black_24dp.png", + "objc/AppRTCMobile/ios/resources/ic_surround_sound_black_24dp@2x.png", + "objc/AppRTCMobile/ios/resources/ic_switch_video_black_24dp.png", + "objc/AppRTCMobile/ios/resources/ic_switch_video_black_24dp@2x.png", + "objc/AppRTCMobile/ios/resources/mozart.mp3", + "objc/Icon-120.png", + "objc/Icon-180.png", + "objc/Icon.png", + ] + outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ] + } + + rtc_library("ObjCNativeAPIDemo_lib") { + testonly = true + sources = [ + "objcnativeapi/objc/NADAppDelegate.h", + "objcnativeapi/objc/NADAppDelegate.m", + "objcnativeapi/objc/NADViewController.h", + "objcnativeapi/objc/NADViewController.mm", + "objcnativeapi/objc/objc_call_client.h", + "objcnativeapi/objc/objc_call_client.mm", + ] + + deps = [ + "../api:libjingle_peerconnection_api", + "../api:scoped_refptr", + "../api:sequence_checker", + "../api/audio_codecs:builtin_audio_decoder_factory", + "../api/audio_codecs:builtin_audio_encoder_factory", + "../api/rtc_event_log:rtc_event_log_factory", + "../api/task_queue:default_task_queue_factory", + "../media:rtc_audio_video", + "../modules/audio_processing", + "../modules/audio_processing:api", + "../pc:libjingle_peerconnection", + "../rtc_base/synchronization:mutex", + "../sdk:base_objc", + "../sdk:default_codec_factory_objc", + "../sdk:helpers_objc", + "../sdk:metal_objc", + "../sdk:native_api", + "../sdk:videocapture_objc", + "../sdk:videotoolbox_objc", + ] + + if (rtc_ios_macos_use_opengl_rendering) { + deps += [ "../sdk:opengl_ui_objc" ] + } + } + + ios_app_bundle("ObjCNativeAPIDemo") { + testonly = true + sources = [ "objcnativeapi/objc/main.m" ] + + info_plist = "objcnativeapi/Info.plist" + + configs += [ "..:common_config" ] + public_configs = [ "..:common_inherited_config" ] + + deps = [ ":ObjCNativeAPIDemo_lib" ] + + if (target_cpu == "x86") { + deps += [ "//testing/iossim" ] + } + } + } + + if (is_mac) { + rtc_library("AppRTCMobile_lib") { + testonly = true + sources = [ + "objc/AppRTCMobile/mac/APPRTCAppDelegate.h", + "objc/AppRTCMobile/mac/APPRTCAppDelegate.m", + "objc/AppRTCMobile/mac/APPRTCViewController.h", + "objc/AppRTCMobile/mac/APPRTCViewController.m", + ] + configs += [ "..:common_objc" ] + deps = [ + ":apprtc_common", + ":apprtc_signaling", + "../sdk:base_objc", + "../sdk:helpers_objc", + "../sdk:mediaconstraints_objc", + "../sdk:metal_objc", + "../sdk:opengl_ui_objc", + "../sdk:peerconnectionfactory_base_objc", + "../sdk:peerconnectionfactory_base_objc", + "../sdk:videocapture_objc", + "../sdk:videocodec_objc", + ] + } + + mac_app_bundle("AppRTCMobile") { + testonly = true + output_name = "AppRTCMobile" + + sources = [ "objc/AppRTCMobile/mac/main.m" ] + + public_configs = [ "..:common_inherited_config" ] + + info_plist = "objc/AppRTCMobile/mac/Info.plist" + + frameworks = [ "AppKit.framework" ] + + ldflags = [ + "-rpath", + "@executable_path/../Frameworks", + ] + + deps = [ + ":AppRTCMobile_lib", + "../sdk:mac_framework_bundle", + "../sdk:mac_framework_objc+link", + ] + } + } + + config("socketrocket_include_config") { + include_dirs = [ "objc/AppRTCMobile/third_party/SocketRocket" ] + } + + config("socketrocket_warning_config") { + # GN orders flags on a target before flags from configs. The default config + # adds these flags so to cancel them out they need to come from a config and + # cannot be on the target directly. + cflags = [ + "-Wno-deprecated-declarations", + "-Wno-nonnull", + "-Wno-semicolon-before-method-body", + "-Wno-unused-variable", + ] + + cflags_objc = [ + # Enabled for cflags_objc in build/config/compiler/BUILD.gn. + "-Wno-objc-missing-property-synthesis", + ] + } + + rtc_library("socketrocket") { + testonly = true + sources = [ + "objc/AppRTCMobile/third_party/SocketRocket/SRWebSocket.h", + "objc/AppRTCMobile/third_party/SocketRocket/SRWebSocket.m", + ] + configs += [ ":socketrocket_warning_config" ] + public_configs = [ ":socketrocket_include_config" ] + + libs = [ "icucore" ] + frameworks = [ + "CFNetwork.framework", + "Security.framework", + ] + } + + if (rtc_include_tests) { + # TODO(kthelgason): compile xctests on mac when chromium supports it. + if (is_ios) { + rtc_library("apprtcmobile_test_sources") { + # iOS must use WebRTC.framework which is dynamically linked. + testonly = true + include_dirs = [ + "objc/AppRTCMobile", + "objc/AppRTCMobile/ios", + ] + sources = [ + "objc/AppRTCMobile/tests/ARDAppClient_xctest.mm", + "objc/AppRTCMobile/tests/ARDFileCaptureController_xctest.mm", + "objc/AppRTCMobile/tests/ARDSettingsModel_xctest.mm", + ] + deps = [ + ":AppRTCMobile_lib", + ":apprtc_signaling", + "../rtc_base:ssl", + "../sdk:mediaconstraints_objc", + "../sdk:peerconnectionfactory_base_objc", + "../sdk:videocapture_objc", + "//build/config/ios:xctest", + "//third_party/ocmock", + ] + } + + rtc_test("apprtcmobile_tests") { + is_xctest = true + info_plist = "objc/AppRTCMobile/ios/Info.plist" + sources = [ "objc/AppRTCMobile/tests/main.mm" ] + deps = [ + ":AppRTCMobile_lib", + ":apprtcmobile_test_sources", + "../sdk:framework_objc", + "//test:test_support", + ] + ldflags = [ "-all_load" ] + } + } + } +} + +if (is_linux || is_chromeos || is_win) { + if (is_linux || is_chromeos) { + pkg_config("gtk_config") { + packages = [ + # Gtk requires gmodule, but it does not list it as a dependency in some + # misconfigured systems. + "gmodule-2.0", + "gthread-2.0", + "gtk+-3.0", + ] + } + } + + rtc_executable("peerconnection_client") { + testonly = true + sources = [ + "peerconnection/client/conductor.cc", + "peerconnection/client/conductor.h", + "peerconnection/client/defaults.cc", + "peerconnection/client/defaults.h", + "peerconnection/client/peer_connection_client.cc", + "peerconnection/client/peer_connection_client.h", + ] + + deps = [ + "../api:audio_options_api", + "../api:create_peerconnection_factory", + "../api:libjingle_peerconnection_api", + "../api:media_stream_interface", + "../api:rtp_sender_interface", + "../api:scoped_refptr", + "../api/audio:audio_mixer_api", + "../api/audio_codecs:audio_codecs_api", + "../api/task_queue:pending_task_safety_flag", + "../api/units:time_delta", + "../api/video:video_frame", + "../api/video:video_rtp_headers", + "../api/video_codecs:video_codecs_api", + "../media:media_channel", + "../media:rtc_media_base", + "../p2p:rtc_p2p", + "../pc:video_track_source", + "../rtc_base:checks", + "../rtc_base:logging", + "../rtc_base:macromagic", + "../rtc_base:net_helpers", + "../rtc_base:refcount", + "../rtc_base:rtc_certificate_generator", + "../rtc_base:ssl", + "../rtc_base:stringutils", + "../rtc_base:threading", + "../rtc_base/third_party/sigslot", + "../system_wrappers:field_trial", + "../test:field_trial", + "../test:platform_video_capturer", + "../test:rtp_test_utils", + "//third_party/abseil-cpp/absl/memory", + "//third_party/abseil-cpp/absl/types:optional", + ] + if (is_win) { + sources += [ + "peerconnection/client/flag_defs.h", + "peerconnection/client/main.cc", + "peerconnection/client/main_wnd.cc", + "peerconnection/client/main_wnd.h", + ] + configs += [ "//build/config/win:windowed" ] + deps += [ + "../media:rtc_media_base", + "../rtc_base:win32", + "../rtc_base:win32_socket_init", + ] + } + if (is_linux || is_chromeos) { + sources += [ + "peerconnection/client/linux/main.cc", + "peerconnection/client/linux/main_wnd.cc", + "peerconnection/client/linux/main_wnd.h", + ] + cflags = [ "-Wno-deprecated-declarations" ] + libs = [ + "X11", + "Xcomposite", + "Xext", + "Xrender", + ] + configs += [ ":gtk_config" ] + } + + deps += [ + "../api:libjingle_peerconnection_api", + "../api/audio_codecs:builtin_audio_decoder_factory", + "../api/audio_codecs:builtin_audio_encoder_factory", + "../api/video:video_frame", + "../api/video:video_rtp_headers", + "../api/video_codecs:builtin_video_decoder_factory", + "../api/video_codecs:builtin_video_encoder_factory", + "../media:rtc_audio_video", + "../modules/audio_device", + "../modules/audio_processing", + "../modules/audio_processing:api", + "../modules/video_capture:video_capture_module", + "../pc:libjingle_peerconnection", + "../rtc_base:rtc_json", + "../test:video_test_common", + "//third_party/abseil-cpp/absl/flags:flag", + "//third_party/abseil-cpp/absl/flags:parse", + "//third_party/libyuv", + ] + } + + rtc_executable("peerconnection_server") { + testonly = true + sources = [ + "peerconnection/server/data_socket.cc", + "peerconnection/server/data_socket.h", + "peerconnection/server/main.cc", + "peerconnection/server/peer_channel.cc", + "peerconnection/server/peer_channel.h", + "peerconnection/server/utils.cc", + "peerconnection/server/utils.h", + ] + deps = [ + "../rtc_base:checks", + "../rtc_base:stringutils", + "../system_wrappers:field_trial", + "../test:field_trial", + "//third_party/abseil-cpp/absl/flags:flag", + "//third_party/abseil-cpp/absl/flags:parse", + "//third_party/abseil-cpp/absl/flags:usage", + ] + } + rtc_executable("turnserver") { + testonly = true + sources = [ "turnserver/turnserver_main.cc" ] + deps = [ + ":read_auth_file", + "../p2p:p2p_server_utils", + "../p2p:rtc_p2p", + "../pc:rtc_pc", + "../rtc_base:async_udp_socket", + "../rtc_base:ip_address", + "../rtc_base:socket_address", + "../rtc_base:socket_server", + "../rtc_base:threading", + "//third_party/abseil-cpp/absl/strings:strings", + ] + } + rtc_executable("stunserver") { + testonly = true + sources = [ "stunserver/stunserver_main.cc" ] + deps = [ + "../p2p:p2p_server_utils", + "../p2p:rtc_p2p", + "../pc:rtc_pc", + "../rtc_base:async_udp_socket", + "../rtc_base:socket_address", + "../rtc_base:socket_server", + "../rtc_base:threading", + ] + } +} + +if (is_win || is_android) { + rtc_shared_library("webrtc_unity_plugin") { + testonly = true + sources = [ + "unityplugin/simple_peer_connection.cc", + "unityplugin/simple_peer_connection.h", + "unityplugin/unity_plugin_apis.cc", + "unityplugin/unity_plugin_apis.h", + "unityplugin/video_observer.cc", + "unityplugin/video_observer.h", + ] + + if (is_android) { + sources += [ + "unityplugin/class_reference_holder.cc", + "unityplugin/class_reference_holder.h", + "unityplugin/jni_onload.cc", + ] + suppressed_configs += [ "//build/config/android:hide_all_but_jni_onload" ] + } + + if (is_win) { + configs += [ "//build/config/win:windowed" ] + } + deps = [ + "../api:create_peerconnection_factory", + "../api:libjingle_peerconnection_api", + "../api:media_stream_interface", + "../api/audio_codecs:builtin_audio_decoder_factory", + "../api/audio_codecs:builtin_audio_encoder_factory", + "../api/video:video_frame", + "../api/video:video_rtp_headers", + "../media:rtc_audio_video", + "../media:rtc_internal_video_codecs", + "../media:rtc_media", + "../media:rtc_media_base", + "../modules/audio_device", + "../modules/audio_processing", + "../modules/audio_processing:api", + "../modules/video_capture:video_capture_module", + "../pc:libjingle_peerconnection", + "../pc:video_track_source", + "../rtc_base:ssl", + "../test:platform_video_capturer", + "../test:video_test_common", + "//third_party/abseil-cpp/absl/memory", + ] + if (is_android) { + deps += [ + "../modules/utility", + "../sdk/android:libjingle_peerconnection_jni", + "../sdk/android:native_api_jni", + ] + } + } +} + +if (is_android) { + rtc_android_library("webrtc_unity_java") { + sources = [ "unityplugin/java/src/org/webrtc/UnityUtility.java" ] + deps = [ + "../rtc_base:base_java", + "../sdk/android:camera_java", + "../sdk/android:libjingle_peerconnection_java", + "../sdk/android:peerconnection_java", + "../sdk/android:video_api_java", + "../sdk/android:video_java", + "//third_party/androidx:androidx_annotation_annotation_java", + ] + } + + dist_jar("libwebrtc_unity") { + _target_dir_name = get_label_info(":$target_name", "dir") + output = "${root_out_dir}/lib.java${_target_dir_name}/${target_name}.jar" + direct_deps_only = false + use_interface_jars = false + use_unprocessed_jars = false + requires_android = true + deps = [ + ":webrtc_unity_java", + "../rtc_base:base_java", + "../sdk/android:libjingle_peerconnection_java", + "../sdk/android:libjingle_peerconnection_metrics_default_java", + "//third_party/androidx:androidx_annotation_annotation_java", + ] + } + + robolectric_binary("android_examples_junit_tests") { + sources = [ + "androidjunit/src/org/appspot/apprtc/BluetoothManagerTest.java", + "androidjunit/src/org/appspot/apprtc/DirectRTCClientTest.java", + "androidjunit/src/org/appspot/apprtc/TCPChannelClientTest.java", + ] + + deps = [ + ":AppRTCMobile_javalib", + "../sdk/android:peerconnection_java", + "//third_party/androidx:androidx_test_core_java", + "//third_party/google-truth:google_truth_java", + ] + + additional_jar_files = [ [ + "../sdk/android/tests/resources/robolectric.properties", + "robolectric.properties", + ] ] + } +} + +if (!build_with_chromium) { + # Doesn't build within Chrome on Win. + rtc_executable("stun_prober") { + testonly = true + sources = [ "stunprober/main.cc" ] + deps = [ + "../p2p:libstunprober", + "../p2p:rtc_p2p", + "../rtc_base:checks", + "../rtc_base:logging", + "../rtc_base:network", + "../rtc_base:socket_address", + "../rtc_base:ssl", + "../rtc_base:threading", + "../rtc_base:timeutils", + "../test:scoped_key_value_config", + "//third_party/abseil-cpp/absl/flags:flag", + "//third_party/abseil-cpp/absl/flags:parse", + ] + } +} diff --git a/third_party/libwebrtc/examples/DEPS b/third_party/libwebrtc/examples/DEPS new file mode 100644 index 0000000000..114cda384b --- /dev/null +++ b/third_party/libwebrtc/examples/DEPS @@ -0,0 +1,13 @@ +include_rules = [ + "+common_video", + "+logging/rtc_event_log/rtc_event_log_factory.h", + "+media", + "+modules/audio_device", + "+modules/video_capture", + "+modules/audio_processing", + "+p2p", + "+pc", + "+sdk/objc", + "+system_wrappers/include", + "+third_party/libyuv", +] diff --git a/third_party/libwebrtc/examples/OWNERS b/third_party/libwebrtc/examples/OWNERS new file mode 100644 index 0000000000..ff1f425462 --- /dev/null +++ b/third_party/libwebrtc/examples/OWNERS @@ -0,0 +1,4 @@ +magjed@webrtc.org +perkj@webrtc.org +tkchin@webrtc.org +kthelgason@webrtc.org diff --git a/third_party/libwebrtc/examples/aarproject/.gitignore b/third_party/libwebrtc/examples/aarproject/.gitignore new file mode 100644 index 0000000000..e93eb885a9 --- /dev/null +++ b/third_party/libwebrtc/examples/aarproject/.gitignore @@ -0,0 +1,16 @@ +# Default ignores by Android Studio +*.iml +.gradle +# We want to specify our own SDK. +# /local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build +/captures +.externalNativeBuild + +# Additional ignores +/gradlew +/gradlew.bat +/gradle diff --git a/third_party/libwebrtc/examples/aarproject/OWNERS b/third_party/libwebrtc/examples/aarproject/OWNERS new file mode 100644 index 0000000000..cf092a316a --- /dev/null +++ b/third_party/libwebrtc/examples/aarproject/OWNERS @@ -0,0 +1 @@ +xalep@webrtc.org diff --git a/third_party/libwebrtc/examples/aarproject/app/.gitignore b/third_party/libwebrtc/examples/aarproject/app/.gitignore new file mode 100644 index 0000000000..796b96d1c4 --- /dev/null +++ b/third_party/libwebrtc/examples/aarproject/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/third_party/libwebrtc/examples/aarproject/app/build.gradle b/third_party/libwebrtc/examples/aarproject/app/build.gradle new file mode 100644 index 0000000000..94fa851af2 --- /dev/null +++ b/third_party/libwebrtc/examples/aarproject/app/build.gradle @@ -0,0 +1,53 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 31 + defaultConfig { + applicationId "org.appspot.apprtc" + minSdkVersion 21 + targetSdkVersion 31 + versionCode 1 + versionName "1.0" + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + sourceSets { + main { + manifest.srcFile "../../androidapp/AndroidManifest.xml" + java.srcDirs = [ + "../../androidapp/src" + ] + res.srcDirs = [ + "../../androidapp/res" + ] + } + androidTest { + manifest.srcFile "../../androidtests/AndroidManifest.xml" + java.srcDirs = [ + "../../androidtests/src" + ] + // This test doesn't work in Android Studio. + java.exclude('**/CallActivityStubbedInputOutputTest.java') + } + } +} + +dependencies { + if (project.hasProperty('aarDir')) { + implementation fileTree(dir: project.aarDir, include: ['google-webrtc-*.aar']) + } + implementation fileTree(dir: '../../androidapp/third_party/autobanh/lib', include: ['autobanh.jar']) + implementation 'androidx.annotation:annotation:1.2.0' + testImplementation 'junit:junit:4.12' + androidTestImplementation 'com.android.support.test:runner:1.0.1' + androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' +} diff --git a/third_party/libwebrtc/examples/aarproject/app/proguard-rules.pro b/third_party/libwebrtc/examples/aarproject/app/proguard-rules.pro new file mode 100644 index 0000000000..d6cc4c5eba --- /dev/null +++ b/third_party/libwebrtc/examples/aarproject/app/proguard-rules.pro @@ -0,0 +1,25 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in /usr/local/google/home/sakal/Android/Sdk/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/third_party/libwebrtc/examples/aarproject/build.gradle b/third_party/libwebrtc/examples/aarproject/build.gradle new file mode 100644 index 0000000000..969effd3ed --- /dev/null +++ b/third_party/libwebrtc/examples/aarproject/build.gradle @@ -0,0 +1,27 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + + repositories { + google() + mavenCentral() + } + dependencies { + classpath "com.android.tools.build:gradle:7.0.3" + + + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/third_party/libwebrtc/examples/aarproject/gradle.properties b/third_party/libwebrtc/examples/aarproject/gradle.properties new file mode 100644 index 0000000000..2e87c52f83 --- /dev/null +++ b/third_party/libwebrtc/examples/aarproject/gradle.properties @@ -0,0 +1,22 @@ +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx1536m + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true + +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true diff --git a/third_party/libwebrtc/examples/aarproject/local.properties b/third_party/libwebrtc/examples/aarproject/local.properties new file mode 100644 index 0000000000..99cdcd2674 --- /dev/null +++ b/third_party/libwebrtc/examples/aarproject/local.properties @@ -0,0 +1,2 @@ +# Use Android SDK from third_party/android_sdk/public +sdk.dir=../../third_party/android_sdk/public diff --git a/third_party/libwebrtc/examples/aarproject/settings.gradle b/third_party/libwebrtc/examples/aarproject/settings.gradle new file mode 100644 index 0000000000..e7b4def49c --- /dev/null +++ b/third_party/libwebrtc/examples/aarproject/settings.gradle @@ -0,0 +1 @@ +include ':app' diff --git a/third_party/libwebrtc/examples/androidapp/AndroidManifest.xml b/third_party/libwebrtc/examples/androidapp/AndroidManifest.xml new file mode 100644 index 0000000000..05f1bd3da3 --- /dev/null +++ b/third_party/libwebrtc/examples/androidapp/AndroidManifest.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/third_party/libwebrtc/examples/androidapp/OWNERS b/third_party/libwebrtc/examples/androidapp/OWNERS new file mode 100644 index 0000000000..109bea2725 --- /dev/null +++ b/third_party/libwebrtc/examples/androidapp/OWNERS @@ -0,0 +1,2 @@ +magjed@webrtc.org +xalep@webrtc.org diff --git a/third_party/libwebrtc/examples/androidapp/README b/third_party/libwebrtc/examples/androidapp/README new file mode 100644 index 0000000000..97e609117c --- /dev/null +++ b/third_party/libwebrtc/examples/androidapp/README @@ -0,0 +1,23 @@ +This directory contains an example Android client for https://appr.tc + +Prerequisites: +- "Getting the code", "Compiling", and "Using the Bundled Android SDK/NDK" + on http://www.webrtc.org/native-code/android + +Example of building & using the app: + +cd /src +ninja -C out/Default AppRTCMobile +adb install -r out/Default/apks/AppRTCMobile.apk + +In desktop chrome, navigate to https://appr.tc and note the r= room +this redirects to or navigate directly to https://appr.tc/r/ with +your own room number. Launch AppRTC on the device and add same into the room name list. + +You can also run application from a command line to connect to the first room in a list: +adb shell am start -n org.appspot.apprtc/.ConnectActivity -a android.intent.action.VIEW +This should result in the app launching on Android and connecting to the 3-dot-apprtc +page displayed in the desktop browser. +To run loopback test execute following command: +adb shell am start -n org.appspot.apprtc/.ConnectActivity -a android.intent.action.VIEW --ez "org.appspot.apprtc.LOOPBACK" true + diff --git a/third_party/libwebrtc/examples/androidapp/ant.properties b/third_party/libwebrtc/examples/androidapp/ant.properties new file mode 100644 index 0000000000..b0971e891e --- /dev/null +++ b/third_party/libwebrtc/examples/androidapp/ant.properties @@ -0,0 +1,17 @@ +# This file is used to override default values used by the Ant build system. +# +# This file must be checked into Version Control Systems, as it is +# integral to the build system of your project. + +# This file is only used by the Ant script. + +# You can use this to override default values such as +# 'source.dir' for the location of your java source folder and +# 'out.dir' for the location of your output folder. + +# You can also use it define how the release builds are signed by declaring +# the following properties: +# 'key.store' for the location of your keystore and +# 'key.alias' for the name of the key to use. +# The password will be asked during the build when you use the 'release' target. + diff --git a/third_party/libwebrtc/examples/androidapp/build.xml b/third_party/libwebrtc/examples/androidapp/build.xml new file mode 100644 index 0000000000..aa1db6db79 --- /dev/null +++ b/third_party/libwebrtc/examples/androidapp/build.xml @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/third_party/libwebrtc/examples/androidapp/project.properties b/third_party/libwebrtc/examples/androidapp/project.properties new file mode 100644 index 0000000000..a6ca533fe3 --- /dev/null +++ b/third_party/libwebrtc/examples/androidapp/project.properties @@ -0,0 +1,16 @@ +# This file is automatically generated by Android Tools. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file must be checked in Version Control Systems. +# +# To customize properties used by the Ant build system edit +# "ant.properties", and override values to adapt the script to your +# project structure. +# +# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): +#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt + +# Project target. +target=android-22 + +java.compilerargs=-Xlint:all -Werror diff --git a/third_party/libwebrtc/examples/androidapp/res/drawable-hdpi/disconnect.png b/third_party/libwebrtc/examples/androidapp/res/drawable-hdpi/disconnect.png new file mode 100644 index 0000000000..be36174c24 Binary files /dev/null and b/third_party/libwebrtc/examples/androidapp/res/drawable-hdpi/disconnect.png differ diff --git a/third_party/libwebrtc/examples/androidapp/res/drawable-hdpi/ic_action_full_screen.png b/third_party/libwebrtc/examples/androidapp/res/drawable-hdpi/ic_action_full_screen.png new file mode 100644 index 0000000000..22f30d31ca Binary files /dev/null and b/third_party/libwebrtc/examples/androidapp/res/drawable-hdpi/ic_action_full_screen.png differ diff --git a/third_party/libwebrtc/examples/androidapp/res/drawable-hdpi/ic_action_return_from_full_screen.png b/third_party/libwebrtc/examples/androidapp/res/drawable-hdpi/ic_action_return_from_full_screen.png new file mode 100644 index 0000000000..d9436e5248 Binary files /dev/null and b/third_party/libwebrtc/examples/androidapp/res/drawable-hdpi/ic_action_return_from_full_screen.png differ diff --git a/third_party/libwebrtc/examples/androidapp/res/drawable-hdpi/ic_launcher.png b/third_party/libwebrtc/examples/androidapp/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 0000000000..f01a31a717 Binary files /dev/null and b/third_party/libwebrtc/examples/androidapp/res/drawable-hdpi/ic_launcher.png differ diff --git a/third_party/libwebrtc/examples/androidapp/res/drawable-hdpi/ic_loopback_call.png b/third_party/libwebrtc/examples/androidapp/res/drawable-hdpi/ic_loopback_call.png new file mode 100644 index 0000000000..39311853b3 Binary files /dev/null and b/third_party/libwebrtc/examples/androidapp/res/drawable-hdpi/ic_loopback_call.png differ diff --git a/third_party/libwebrtc/examples/androidapp/res/drawable-ldpi/disconnect.png b/third_party/libwebrtc/examples/androidapp/res/drawable-ldpi/disconnect.png new file mode 100644 index 0000000000..be36174c24 Binary files /dev/null and b/third_party/libwebrtc/examples/androidapp/res/drawable-ldpi/disconnect.png differ diff --git a/third_party/libwebrtc/examples/androidapp/res/drawable-ldpi/ic_action_full_screen.png b/third_party/libwebrtc/examples/androidapp/res/drawable-ldpi/ic_action_full_screen.png new file mode 100644 index 0000000000..e4a9ff0a8e Binary files /dev/null and b/third_party/libwebrtc/examples/androidapp/res/drawable-ldpi/ic_action_full_screen.png differ diff --git a/third_party/libwebrtc/examples/androidapp/res/drawable-ldpi/ic_action_return_from_full_screen.png b/third_party/libwebrtc/examples/androidapp/res/drawable-ldpi/ic_action_return_from_full_screen.png new file mode 100644 index 0000000000..f5c80f00e7 Binary files /dev/null and b/third_party/libwebrtc/examples/androidapp/res/drawable-ldpi/ic_action_return_from_full_screen.png differ diff --git a/third_party/libwebrtc/examples/androidapp/res/drawable-ldpi/ic_launcher.png b/third_party/libwebrtc/examples/androidapp/res/drawable-ldpi/ic_launcher.png new file mode 100644 index 0000000000..5492ed770a Binary files /dev/null and b/third_party/libwebrtc/examples/androidapp/res/drawable-ldpi/ic_launcher.png differ diff --git a/third_party/libwebrtc/examples/androidapp/res/drawable-ldpi/ic_loopback_call.png b/third_party/libwebrtc/examples/androidapp/res/drawable-ldpi/ic_loopback_call.png new file mode 100644 index 0000000000..39311853b3 Binary files /dev/null and b/third_party/libwebrtc/examples/androidapp/res/drawable-ldpi/ic_loopback_call.png differ diff --git a/third_party/libwebrtc/examples/androidapp/res/drawable-mdpi/disconnect.png b/third_party/libwebrtc/examples/androidapp/res/drawable-mdpi/disconnect.png new file mode 100644 index 0000000000..be36174c24 Binary files /dev/null and b/third_party/libwebrtc/examples/androidapp/res/drawable-mdpi/disconnect.png differ diff --git a/third_party/libwebrtc/examples/androidapp/res/drawable-mdpi/ic_action_full_screen.png b/third_party/libwebrtc/examples/androidapp/res/drawable-mdpi/ic_action_full_screen.png new file mode 100644 index 0000000000..e4a9ff0a8e Binary files /dev/null and b/third_party/libwebrtc/examples/androidapp/res/drawable-mdpi/ic_action_full_screen.png differ diff --git a/third_party/libwebrtc/examples/androidapp/res/drawable-mdpi/ic_action_return_from_full_screen.png b/third_party/libwebrtc/examples/androidapp/res/drawable-mdpi/ic_action_return_from_full_screen.png new file mode 100644 index 0000000000..f5c80f00e7 Binary files /dev/null and b/third_party/libwebrtc/examples/androidapp/res/drawable-mdpi/ic_action_return_from_full_screen.png differ diff --git a/third_party/libwebrtc/examples/androidapp/res/drawable-mdpi/ic_launcher.png b/third_party/libwebrtc/examples/androidapp/res/drawable-mdpi/ic_launcher.png new file mode 100644 index 0000000000..b8b4b0ec4b Binary files /dev/null and b/third_party/libwebrtc/examples/androidapp/res/drawable-mdpi/ic_launcher.png differ diff --git a/third_party/libwebrtc/examples/androidapp/res/drawable-mdpi/ic_loopback_call.png b/third_party/libwebrtc/examples/androidapp/res/drawable-mdpi/ic_loopback_call.png new file mode 100644 index 0000000000..39311853b3 Binary files /dev/null and b/third_party/libwebrtc/examples/androidapp/res/drawable-mdpi/ic_loopback_call.png differ diff --git a/third_party/libwebrtc/examples/androidapp/res/drawable-xhdpi/disconnect.png b/third_party/libwebrtc/examples/androidapp/res/drawable-xhdpi/disconnect.png new file mode 100644 index 0000000000..be36174c24 Binary files /dev/null and b/third_party/libwebrtc/examples/androidapp/res/drawable-xhdpi/disconnect.png differ diff --git a/third_party/libwebrtc/examples/androidapp/res/drawable-xhdpi/ic_action_full_screen.png b/third_party/libwebrtc/examples/androidapp/res/drawable-xhdpi/ic_action_full_screen.png new file mode 100644 index 0000000000..6d90c071d5 Binary files /dev/null and b/third_party/libwebrtc/examples/androidapp/res/drawable-xhdpi/ic_action_full_screen.png differ diff --git a/third_party/libwebrtc/examples/androidapp/res/drawable-xhdpi/ic_action_return_from_full_screen.png b/third_party/libwebrtc/examples/androidapp/res/drawable-xhdpi/ic_action_return_from_full_screen.png new file mode 100644 index 0000000000..a773b34208 Binary files /dev/null and b/third_party/libwebrtc/examples/androidapp/res/drawable-xhdpi/ic_action_return_from_full_screen.png differ diff --git a/third_party/libwebrtc/examples/androidapp/res/drawable-xhdpi/ic_launcher.png b/third_party/libwebrtc/examples/androidapp/res/drawable-xhdpi/ic_launcher.png new file mode 100644 index 0000000000..a3cd45890c Binary files /dev/null and b/third_party/libwebrtc/examples/androidapp/res/drawable-xhdpi/ic_launcher.png differ diff --git a/third_party/libwebrtc/examples/androidapp/res/drawable-xhdpi/ic_loopback_call.png b/third_party/libwebrtc/examples/androidapp/res/drawable-xhdpi/ic_loopback_call.png new file mode 100644 index 0000000000..39311853b3 Binary files /dev/null and b/third_party/libwebrtc/examples/androidapp/res/drawable-xhdpi/ic_loopback_call.png differ diff --git a/third_party/libwebrtc/examples/androidapp/res/layout/activity_call.xml b/third_party/libwebrtc/examples/androidapp/res/layout/activity_call.xml new file mode 100644 index 0000000000..bf811426f3 --- /dev/null +++ b/third_party/libwebrtc/examples/androidapp/res/layout/activity_call.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + diff --git a/third_party/libwebrtc/examples/androidapp/res/layout/activity_connect.xml b/third_party/libwebrtc/examples/androidapp/res/layout/activity_connect.xml new file mode 100644 index 0000000000..017e5cabff --- /dev/null +++ b/third_party/libwebrtc/examples/androidapp/res/layout/activity_connect.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/third_party/libwebrtc/examples/androidapp/res/layout/fragment_call.xml b/third_party/libwebrtc/examples/androidapp/res/layout/fragment_call.xml new file mode 100644 index 0000000000..90b1e9ca0e --- /dev/null +++ b/third_party/libwebrtc/examples/androidapp/res/layout/fragment_call.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/third_party/libwebrtc/examples/androidapp/res/layout/fragment_hud.xml b/third_party/libwebrtc/examples/androidapp/res/layout/fragment_hud.xml new file mode 100644 index 0000000000..483e7ba456 --- /dev/null +++ b/third_party/libwebrtc/examples/androidapp/res/layout/fragment_hud.xml @@ -0,0 +1,27 @@ + + + + + + + + + diff --git a/third_party/libwebrtc/examples/androidapp/res/menu/connect_menu.xml b/third_party/libwebrtc/examples/androidapp/res/menu/connect_menu.xml new file mode 100644 index 0000000000..a723f54941 --- /dev/null +++ b/third_party/libwebrtc/examples/androidapp/res/menu/connect_menu.xml @@ -0,0 +1,13 @@ + + + + diff --git a/third_party/libwebrtc/examples/androidapp/res/values-v17/styles.xml b/third_party/libwebrtc/examples/androidapp/res/values-v17/styles.xml new file mode 100644 index 0000000000..969b5012e9 --- /dev/null +++ b/third_party/libwebrtc/examples/androidapp/res/values-v17/styles.xml @@ -0,0 +1,10 @@ + + + + diff --git a/third_party/libwebrtc/examples/androidapp/res/values-v21/styles.xml b/third_party/libwebrtc/examples/androidapp/res/values-v21/styles.xml new file mode 100644 index 0000000000..b19af7e38f --- /dev/null +++ b/third_party/libwebrtc/examples/androidapp/res/values-v21/styles.xml @@ -0,0 +1,4 @@ + + +