blob: 4f44c48d26b2150b5b0d8a55ed6bc2ca30875d27 [file] [log] [blame]
# Copyright 2017 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/chromecast_build.gni")
component("webrtc_component") {
configs += [ "//third_party/webrtc:common_config" ]
public_configs = [ "//third_party/webrtc:common_inherited_config" ]
public_deps = [
":init_webrtc",
":metrics",
":task_queue_factory",
"//third_party/webrtc/api:callfactory_api",
"//third_party/webrtc/api:ice_transport_factory",
"//third_party/webrtc/api:libjingle_logging_api",
"//third_party/webrtc/api:libjingle_peerconnection_api",
"//third_party/webrtc/api:media_stream_interface",
"//third_party/webrtc/api:packet_socket_factory",
"//third_party/webrtc/api:rtc_error",
"//third_party/webrtc/api:rtc_stats_api",
"//third_party/webrtc/api:rtp_parameters",
"//third_party/webrtc/api:scoped_refptr",
"//third_party/webrtc/api/audio:aec3_config",
"//third_party/webrtc/api/audio:aec3_config_json",
"//third_party/webrtc/api/audio:aec3_factory",
"//third_party/webrtc/api/audio_codecs:audio_codecs_api",
"//third_party/webrtc/api/audio_codecs/L16:audio_decoder_L16",
"//third_party/webrtc/api/audio_codecs/L16:audio_encoder_L16",
"//third_party/webrtc/api/audio_codecs/g711:audio_decoder_g711",
"//third_party/webrtc/api/audio_codecs/g711:audio_encoder_g711",
"//third_party/webrtc/api/audio_codecs/g722:audio_decoder_g722",
"//third_party/webrtc/api/audio_codecs/g722:audio_encoder_g722",
"//third_party/webrtc/api/audio_codecs/isac:audio_decoder_isac",
"//third_party/webrtc/api/audio_codecs/isac:audio_encoder_isac",
"//third_party/webrtc/api/audio_codecs/opus:audio_decoder_multiopus",
"//third_party/webrtc/api/audio_codecs/opus:audio_decoder_opus",
"//third_party/webrtc/api/audio_codecs/opus:audio_encoder_multiopus",
"//third_party/webrtc/api/audio_codecs/opus:audio_encoder_opus",
"//third_party/webrtc/api/rtc_event_log:rtc_event_log_factory",
"//third_party/webrtc/api/video:video_bitrate_allocation",
"//third_party/webrtc/api/video:video_frame",
"//third_party/webrtc/api/video:video_frame_i420",
"//third_party/webrtc/api/video:video_rtp_headers",
"//third_party/webrtc/api/video_codecs:builtin_video_decoder_factory",
"//third_party/webrtc/api/video_codecs:rtc_software_fallback_wrappers",
"//third_party/webrtc/api/video_codecs:video_codecs_api",
"//third_party/webrtc/common_video",
"//third_party/webrtc/common_video:common_video",
"//third_party/webrtc/media:rtc_audio_video",
"//third_party/webrtc/media:rtc_internal_video_codecs",
"//third_party/webrtc/media:rtc_media",
"//third_party/webrtc/media:rtc_media_base",
"//third_party/webrtc/media:rtc_simulcast_encoder_adapter",
"//third_party/webrtc/media:rtc_vp9_profile",
"//third_party/webrtc/modules/audio_device",
"//third_party/webrtc/modules/audio_device:audio_device_api",
"//third_party/webrtc/modules/audio_processing",
"//third_party/webrtc/modules/audio_processing:api",
"//third_party/webrtc/modules/audio_processing:audio_processing_statistics",
"//third_party/webrtc/modules/audio_processing/aec_dump",
"//third_party/webrtc/modules/audio_processing/aec_dump:aec_dump",
"//third_party/webrtc/modules/desktop_capture",
"//third_party/webrtc/modules/desktop_capture:primitives",
"//third_party/webrtc/modules/video_coding:video_codec_interface",
"//third_party/webrtc/modules/video_coding:webrtc_h264",
"//third_party/webrtc/p2p:libstunprober",
"//third_party/webrtc/p2p:rtc_p2p",
"//third_party/webrtc/pc:libjingle_peerconnection",
"//third_party/webrtc/pc:peerconnection",
"//third_party/webrtc/pc:rtc_pc",
"//third_party/webrtc/pc:rtc_pc_base",
"//third_party/webrtc/rtc_base",
"//third_party/webrtc/rtc_base:async_resolver_interface",
"//third_party/webrtc/rtc_base:ip_address",
"//third_party/webrtc/rtc_base:rtc_base",
"//third_party/webrtc/rtc_base:rtc_base_approved",
"//third_party/webrtc/rtc_base:rtc_task_queue",
"//third_party/webrtc/rtc_base:socket_address",
"//third_party/webrtc/rtc_base:threading",
"//third_party/webrtc/rtc_base:timeutils",
"//third_party/webrtc/rtc_base/third_party/base64",
"//third_party/webrtc/rtc_base/third_party/sigslot",
"//third_party/webrtc/rtc_base/third_party/sigslot:sigslot",
"//third_party/webrtc/stats",
"//third_party/webrtc/stats:rtc_stats",
"//third_party/webrtc/stats:rtc_stats_test_utils",
"//third_party/webrtc/system_wrappers",
]
if (is_chromecast) {
public_deps += [
"//third_party/webrtc/api/audio:audio_frame_api",
"//third_party/webrtc/api/task_queue",
"//third_party/webrtc/api/video:encoded_image",
"//third_party/webrtc/media:rtc_h264_profile_id",
"//third_party/webrtc/media:rtc_media_engine_defaults",
"//third_party/webrtc/modules/audio_device:audio_device_default",
"//third_party/webrtc/modules/audio_mixer:audio_mixer_impl",
"//third_party/webrtc/modules/video_coding:codec_globals_headers",
]
}
if (is_chromecast || is_nacl) {
# For chromecast and NaCL, provide a default field trial implementation.
public_deps += [ "//third_party/webrtc/system_wrappers:field_trial" ]
} else {
# Other Chromium flavors get a custom implementation.
# See the default value of "rtc_exclude_field_trial_default"
# in https://cs.chromium.org/chromium/src/third_party/webrtc/webrtc.gni
# for how that is done.
public_deps += [ ":field_trial" ]
}
}
source_set("init_webrtc") {
visibility = [ ":*" ]
sources = [
"init_webrtc.cc",
"init_webrtc.h",
]
configs += [
"//third_party/webrtc:common_config",
"//third_party/webrtc:library_impl_config",
]
public_configs = [
"//third_party/webrtc:common_inherited_config",
# TODO(mbonadei): Abseil config propagation is needed because
# WebRTC's BUILD.gn files don't use `public_deps`, there are
# good reasons for this, but they may disappear in the future.
# In that case it is ok to remove these two lines.
"//third_party/abseil-cpp:absl_include_config",
"//third_party/abseil-cpp:absl_define_config",
]
deps = [
"//base",
"//third_party/webrtc/rtc_base",
"//third_party/webrtc/rtc_base/system:rtc_export",
"//third_party/webrtc/system_wrappers",
]
}
source_set("metrics") {
# TODO(mbonadei): Migrate WebRTC deps to webrtc_component and uncomment.
# visibility = [ ":*" ]
sources = [ "metrics.cc" ]
deps = [ "//base" ]
}
source_set("field_trial") {
# TODO(mbonadei): Migrate WebRTC deps to webrtc_component and uncomment.
# visibility = [ ":*" ]
sources = [ "field_trial.cc" ]
deps = [ "//base" ]
}
source_set("task_queue_factory") {
visibility = [ ":*" ]
sources = [
"task_queue_factory.cc",
"task_queue_factory.h",
]
configs += [ "//third_party/webrtc:library_impl_config" ]
deps = [
"//base",
"//third_party/webrtc/api/task_queue",
"//third_party/webrtc/rtc_base/system:rtc_export",
]
}