Files
platform-external-webrtc/examples/BUILD.gn
Magnus Jedvert d65e143801 Update video_quality_analysis to align videos instead of using barcodes
This CL is a follow-up to the previous CL
https://webrtc-review.googlesource.com/c/src/+/94773 that added generic
logic for aligning videos. This will allow us to easily extend
video_quality_analysis with new sophisticated video quality metrics.
Also, we can use any kind of video that does not necessarily need to
contain bar codes. Removing the need to decode barcodes also leads to a
big speedup for the tests.

Bug: webrtc:9642
Change-Id: I74b0d630b3e1ed44781ad024115ded3143e28f50
Reviewed-on: https://webrtc-review.googlesource.com/94845
Reviewed-by: Paulina Hensman <phensman@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24423}
2018-08-24 09:26:14 +00:00

930 lines
30 KiB
Plaintext

# 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")
}
group("examples") {
# This target shall build all targets in examples.
testonly = true
deps = []
if (is_android) {
deps += [
":AppRTCMobile",
":AppRTCMobile_stubbed_video_io_test_apk",
":AppRTCMobile_test_apk",
":libwebrtc_unity",
]
# TODO(sakal): We include some code from the tests. Remove this dependency
# and remove this if-clause.
if (rtc_include_tests) {
deps += [ "androidnativeapi:androidnativeapi" ]
}
}
if (!build_with_chromium) {
deps += [ ":stun_prober" ]
}
if (is_ios || (is_mac && target_cpu != "x86")) {
deps += [ ":AppRTCMobile" ]
}
if (is_linux || is_win) {
deps += [
":peerconnection_client",
":peerconnection_server",
":relayserver",
":stunserver",
":turnserver",
]
}
if (is_android || is_win) {
deps += [ ":webrtc_unity_plugin" ]
}
}
if (is_android) {
rtc_android_apk("AppRTCMobile") {
testonly = true
apk_name = "AppRTCMobile"
android_manifest = "androidapp/AndroidManifest.xml"
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_for_lint = "androidapp/AndroidManifest.xml"
java_files = [
"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/RoomParametersFetcher.java",
"androidapp/src/org/appspot/apprtc/RtcEventLog.java",
"androidapp/src/org/appspot/apprtc/RecordedAudioToFileController.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",
]
deps = [
":AppRTCMobile_resources",
"../modules/audio_device:audio_device_java",
"../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/jsr-305:jsr_305_javalib",
]
}
android_resources("AppRTCMobile_resources") {
testonly = true
resource_dirs = [ "androidapp/res" ]
custom_package = "org.appspot.apprtc"
}
rtc_instrumentation_test_apk("AppRTCMobile_test_apk") {
apk_name = "AppRTCMobileTest"
android_manifest = "androidtests/AndroidManifest.xml"
java_files = [
"androidtests/src/org/appspot/apprtc/test/PeerConnectionClientTest.java",
]
apk_under_test = ":AppRTCMobile"
deps = [
":AppRTCMobile_javalib",
"../sdk/android:libjingle_peerconnection_java",
"../sdk/android:video_java",
"//third_party/android_support_test_runner:runner_java",
"//third_party/junit",
]
}
rtc_instrumentation_test_apk("AppRTCMobile_stubbed_video_io_test_apk") {
apk_name = "AppRTCMobileTestStubbedVideoIO"
android_manifest = "androidtests/AndroidManifest.xml"
java_files = [ "androidtests/src/org/appspot/apprtc/test/CallActivityStubbedInputOutputTest.java" ]
apk_under_test = ":AppRTCMobile"
deps = [
":AppRTCMobile_javalib",
"../sdk/android:libjingle_peerconnection_java",
"//third_party/android_support_test_runner:rules_java",
"//third_party/android_support_test_runner:runner_java",
"//third_party/espresso:espresso_all_java",
"//third_party/hamcrest:hamcrest_java",
"//third_party/junit",
]
data = [
"../build/android/adb_reverse_forwarder.py",
"../examples/androidtests/video_quality_loopback_test.py",
"../resources/reference_video_640x360_30fps.y4m",
"../rtc_tools/compare_videos.py",
"../rtc_tools/testing/prebuilt_apprtc.zip",
"../rtc_tools/testing/golang/linux/go.tar.gz",
"../rtc_tools/testing/build_apprtc.py",
"../rtc_tools/testing/utils.py",
"../tools_webrtc/video_quality_toolchain/linux/ffmpeg",
"../tools_webrtc/video_quality_toolchain/linux/frame_analyzer",
"../tools_webrtc/video_quality_toolchain/linux/zxing",
]
}
}
if (is_ios || (is_mac && target_cpu != "x86")) {
config("apprtc_common_config") {
include_dirs = [ "objc/AppRTCMobile/common" ]
}
rtc_static_library("apprtc_common") {
testonly = true
sources = [
"objc/AppRTCMobile/common/ARDUtilities.h",
"objc/AppRTCMobile/common/ARDUtilities.m",
]
public_configs = [ ":apprtc_common_config" ]
if (is_ios) {
# iOS must use WebRTC.framework which is dynamically linked.
# 'gn check' is disabled in order to avoid confusion and
# errors caused by multiple implementations.
check_includes = false
deps = [
"../sdk:framework_objc",
"../system_wrappers:field_trial_default",
"../system_wrappers:runtime_enabled_features_default",
]
} else {
deps = [
"../sdk:common_objc",
"../system_wrappers:field_trial_default",
"../system_wrappers:metrics_default",
"../system_wrappers:runtime_enabled_features_default",
]
}
}
config("apprtc_signaling_config") {
include_dirs = [ "objc/AppRTCMobile" ]
}
rtc_static_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/ARDBitrateTracker.h",
"objc/AppRTCMobile/ARDBitrateTracker.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/RTCMediaConstraints+JSON.h",
"objc/AppRTCMobile/RTCMediaConstraints+JSON.m",
"objc/AppRTCMobile/RTCSessionDescription+JSON.h",
"objc/AppRTCMobile/RTCSessionDescription+JSON.m",
]
public_configs = [ ":apprtc_signaling_config" ]
deps = [
":apprtc_common",
":socketrocket",
]
if (is_ios) {
# iOS must use WebRTC.framework which is dynamically linked.
# 'gn check' is disabled in order to avoid confusion and
# errors caused by multiple implementations.
check_includes = false
deps += [
":AppRTCMobile_ios_frameworks",
"../sdk:framework_objc",
]
} else {
deps += [
"../sdk:common_objc",
"../sdk:mediaconstraints_objc",
"../sdk:peerconnectionfactory_base_objc",
"../sdk:videocapture_objc",
"../sdk:videocodec_objc",
"../sdk:videoframebuffer_objc",
"../sdk:videosource_objc",
]
}
libs = [ "QuartzCore.framework" ]
}
if (is_ios) {
rtc_static_library("AppRTCMobile_lib") {
# iOS must use WebRTC.framework which is dynamically linked.
# 'gn check' is disabled in order to avoid confusion and
# errors caused by multiple implementations.
check_includes = false
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",
]
deps = [
":AppRTCMobile_ios_frameworks",
":apprtc_common",
":apprtc_signaling",
"../sdk:framework_objc",
]
}
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_ios_frameworks",
":AppRTCMobile_lib",
"../sdk:framework_objc",
]
if (rtc_apprtcmobile_broadcast_extension) {
deps += [
":AppRTCMobileBroadcastSetupUI_extension_bundle",
":AppRTCMobileBroadcastUpload_extension_bundle",
]
}
if (target_cpu == "x86") {
deps += [ "//testing/iossim:iossim" ]
}
}
if (rtc_apprtcmobile_broadcast_extension) {
bundle_data("AppRTCMobileBroadcastUpload_extension_bundle") {
testonly = true
public_deps = [
":AppRTCMobileBroadcastUpload",
]
sources = [
"$root_out_dir/AppRTCMobileBroadcastUpload.appex",
]
outputs = [
"{{bundle_plugins_dir}}/{{source_file_part}}",
]
}
bundle_data("AppRTCMobileBroadcastSetupUI_extension_bundle") {
testonly = true
public_deps = [
":AppRTCMobileBroadcastSetupUI",
]
sources = [
"$root_out_dir/AppRTCMobileBroadcastSetupUI.appex",
]
outputs = [
"{{bundle_plugins_dir}}/{{source_file_part}}",
]
}
rtc_static_library("AppRTCMobileBroadcastUpload_lib") {
check_includes = false
testonly = true
sources = [
"objc/AppRTCMobile/ios/broadcast_extension/ARDBroadcastSampleHandler.h",
"objc/AppRTCMobile/ios/broadcast_extension/ARDBroadcastSampleHandler.m",
]
deps = [
":AppRTCMobile_ios_frameworks",
":apprtc_signaling",
"../sdk:framework_objc",
]
libs = [ "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"
libs = [ "ReplayKit.framework" ]
deps = [
":AppRTCMobile_ios_bundle_data",
]
}
}
bundle_data("AppRTCMobile_ios_frameworks") {
deps = [
"../sdk:framework_objc+link",
]
sources = [
"$root_build_dir/WebRTC.framework",
]
outputs = [
"{{bundle_resources_dir}}/Frameworks/{{source_file_part}}",
]
}
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_static_library("ObjCNativeAPIDemo_lib") {
testonly = true
sources = [
"objcnativeapi/objc/NADAppDelegate.h",
"objcnativeapi/objc/NADAppDelegate.m",
"objcnativeapi/objc/NADViewController.h",
"objcnativeapi/objc/NADViewController.mm",
"objcnativeapi/objc/objccallclient.h",
"objcnativeapi/objc/objccallclient.mm",
]
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
deps = [
"../api:libjingle_peerconnection_api",
"../api/audio_codecs:builtin_audio_decoder_factory",
"../api/audio_codecs:builtin_audio_encoder_factory",
"../logging:rtc_event_log_impl_base",
"../media:rtc_audio_video",
"../modules/audio_processing:audio_processing",
"../pc:libjingle_peerconnection",
"../rtc_base:rtc_base",
"../sdk:default_codec_factory_objc",
"../sdk:framework_objc",
"../sdk:native_api",
"../sdk:ui_objc",
"../sdk:videotoolbox_objc",
"../system_wrappers:field_trial_default",
"../system_wrappers:metrics_default",
"../system_wrappers:runtime_enabled_features_default",
"//third_party/abseil-cpp/absl/memory",
]
if (current_cpu == "arm64") {
deps += [ "../sdk:metal_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:iossim" ]
}
}
}
if (is_mac) {
rtc_static_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:default_codec_factory_objc",
"../sdk:metal_objc",
"../sdk:peerconnectionfactory_base_objc",
"../sdk:ui_objc",
"../sdk:videocapture_objc",
"../sdk:videocodec_objc",
"../sdk:videocodec_objc",
"../sdk:videotoolbox_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"
libs = [ "AppKit.framework" ]
deps = [
":AppRTCMobile_lib",
]
}
}
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_static_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 = [
"CFNetwork.framework",
"icucore",
]
}
if (rtc_include_tests) {
# TODO(kthelgason): compile xctests on mac when chromium supports it.
if (is_ios) {
rtc_source_set("apprtcmobile_test_sources") {
# iOS must use WebRTC.framework which is dynamically linked.
# 'gn check' is disabled in order to avoid confusion and
# errors caused by multiple implementations.
check_includes = false
testonly = true
include_dirs = [
"objc/AppRTCMobile",
"objc/AppRTCMobile/ios",
]
testonly = true
sources = [
"objc/AppRTCMobile/tests/ARDAppClient_xctest.mm",
"objc/AppRTCMobile/tests/ARDFileCaptureController_xctest.mm",
"objc/AppRTCMobile/tests/ARDSettingsModel_xctest.mm",
]
deps = [
":AppRTCMobile_ios_frameworks",
":AppRTCMobile_lib",
":apprtc_signaling",
"../rtc_base:rtc_base",
"../sdk:framework_objc",
"//build/config/ios:xctest",
"//third_party/ocmock",
]
}
rtc_ios_xctest_test("apprtcmobile_tests") {
info_plist = "objc/AppRTCMobile/ios/Info.plist"
sources = [
"objc/AppRTCMobile/ios/main.m",
]
deps = [
":AppRTCMobile_lib",
":apprtcmobile_test_sources",
"../sdk:framework_objc",
]
ldflags = [ "-all_load" ]
}
}
}
}
if (is_linux || is_win) {
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",
]
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
deps = [
"../api:libjingle_peerconnection_api",
"../api/video:video_frame_i420",
"../rtc_base:checks",
"../rtc_base:stringutils",
"../rtc_base/third_party/sigslot",
]
if (is_win) {
sources += [
"peerconnection/client/flagdefs.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" ]
}
if (is_linux) {
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",
]
deps += [ "//build/config/linux/gtk" ]
}
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_codecs:builtin_video_decoder_factory",
"../api/video_codecs:builtin_video_encoder_factory",
"../media:rtc_audio_video",
"../modules/audio_device:audio_device",
"../modules/audio_processing:audio_processing",
"../modules/video_capture:video_capture_module",
"../pc:libjingle_peerconnection",
"../rtc_base:rtc_base",
"../rtc_base:rtc_base_approved",
"../rtc_base:rtc_json",
"../system_wrappers:field_trial_default",
"../system_wrappers:metrics_default",
"../system_wrappers:runtime_enabled_features_default",
"//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 = [
"..:webrtc_common",
"../rtc_base:rtc_base_approved",
"../rtc_base:stringutils",
"../rtc_tools:command_line_parser",
]
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
}
rtc_executable("relayserver") {
testonly = true
sources = [
"relayserver/relayserver_main.cc",
]
deps = [
"../p2p:rtc_p2p",
"../pc:rtc_pc",
"../rtc_base:rtc_base",
"../rtc_base:rtc_base_approved",
"../system_wrappers:field_trial_default",
"../system_wrappers:metrics_default",
"../system_wrappers:runtime_enabled_features_default",
]
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
}
rtc_executable("turnserver") {
testonly = true
sources = [
"turnserver/turnserver_main.cc",
]
deps = [
"../p2p:rtc_p2p",
"../pc:rtc_pc",
"../rtc_base:rtc_base",
"../rtc_base:rtc_base_approved",
"../system_wrappers:field_trial_default",
"../system_wrappers:metrics_default",
"../system_wrappers:runtime_enabled_features_default",
]
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
}
rtc_executable("stunserver") {
testonly = true
sources = [
"stunserver/stunserver_main.cc",
]
deps = [
"../p2p:rtc_p2p",
"../pc:rtc_pc",
"../rtc_base:rtc_base",
"../rtc_base:rtc_base_approved",
"../system_wrappers:field_trial_default",
"../system_wrappers:metrics_default",
"../system_wrappers:runtime_enabled_features_default",
]
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
}
}
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/classreferenceholder.cc",
"unityplugin/classreferenceholder.h",
"unityplugin/jni_onload.cc",
]
suppressed_configs += [ "//build/config/android:hide_all_but_jni_onload" ]
}
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
if (is_win) {
configs += [ "//build/config/win:windowed" ]
}
deps = [
"../api:libjingle_peerconnection_api",
"../api/audio_codecs:builtin_audio_decoder_factory",
"../api/audio_codecs:builtin_audio_encoder_factory",
"../api/video:video_frame",
"../media:rtc_audio_video",
"../media:rtc_internal_video_codecs",
"../media:rtc_media",
"../media:rtc_media_base",
"../modules/audio_device:audio_device",
"../modules/audio_processing:audio_processing",
"../modules/video_capture:video_capture_module",
"../pc:libjingle_peerconnection",
"../rtc_base:rtc_base",
"../system_wrappers:field_trial_default",
"../system_wrappers:metrics_default",
"../system_wrappers:runtime_enabled_features_default",
"//third_party/abseil-cpp/absl/memory",
]
if (is_android) {
deps += [
"../modules/utility:utility",
"../sdk/android:libjingle_peerconnection_jni",
]
}
}
}
if (is_android) {
rtc_android_library("webrtc_unity_java") {
java_files = [ "unityplugin/java/src/org/webrtc/UnityUtility.java" ]
deps = [
"../rtc_base:base_java",
"../sdk/android:libjingle_peerconnection_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",
"../modules/audio_device:audio_device_java",
"../rtc_base:base_java",
"../sdk/android:libjingle_peerconnection_java",
"../sdk/android:libjingle_peerconnection_metrics_default_java",
]
}
}
if (!build_with_chromium) {
# Doesn't build within Chrome on Win.
rtc_executable("stun_prober") {
testonly = true
sources = [
"stunprober/main.cc",
]
if (!build_with_chromium && is_clang) {
# Suppress warnings from Chrome's Clang plugins.
# See http://code.google.com/p/webrtc/issues/detail?id=163 for details.
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
deps = [
"../p2p:libstunprober",
"../p2p:rtc_p2p",
"../rtc_base:checks",
"../rtc_base:rtc_base",
"../rtc_base:rtc_base_approved",
"../rtc_base:stringutils",
"../system_wrappers:field_trial_default",
]
}
}