|  | # Copyright (c) 2015 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") | 
|  | } | 
|  |  | 
|  | group("api") { | 
|  | visibility = [ "*" ] | 
|  | deps = [] | 
|  |  | 
|  | if (!build_with_mozilla) { | 
|  | deps += [ ":libjingle_peerconnection_api" ] | 
|  | } | 
|  | } | 
|  |  | 
|  | rtc_source_set("call_api") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ "call/audio_sink.h" ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("callfactory_api") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ "call/call_factory_interface.h" ] | 
|  | deps = [ | 
|  | "../call:rtp_interfaces", | 
|  | "../rtc_base/system:rtc_export", | 
|  | ] | 
|  | } | 
|  |  | 
|  | if (!build_with_chromium) { | 
|  | rtc_library("create_peerconnection_factory") { | 
|  | visibility = [ "*" ] | 
|  | allow_poison = [ "default_task_queue" ] | 
|  | sources = [ | 
|  | "create_peerconnection_factory.cc", | 
|  | "create_peerconnection_factory.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":callfactory_api", | 
|  | ":libjingle_peerconnection_api", | 
|  | ":scoped_refptr", | 
|  | "../api/rtc_event_log:rtc_event_log_factory", | 
|  | "../media:rtc_audio_video", | 
|  | "../media:rtc_media_base", | 
|  | "../modules/audio_device:audio_device_api", | 
|  | "../modules/audio_processing:api", | 
|  | "../pc:peer_connection_factory", | 
|  | "../pc:webrtc_sdp", | 
|  | "../rtc_base", | 
|  | "../rtc_base:threading", | 
|  | "../stats:rtc_stats", | 
|  | "audio:audio_mixer_api", | 
|  | "audio_codecs:audio_codecs_api", | 
|  | "task_queue:default_task_queue_factory", | 
|  | "transport:field_trial_based_config", | 
|  | "video_codecs:video_codecs_api", | 
|  | ] | 
|  | } | 
|  | } | 
|  |  | 
|  | rtc_library("rtp_headers") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ | 
|  | "rtp_headers.cc", | 
|  | "rtp_headers.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":array_view", | 
|  | "units:timestamp", | 
|  | "video:video_rtp_headers", | 
|  | ] | 
|  | absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] | 
|  | } | 
|  |  | 
|  | rtc_library("rtp_packet_info") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ | 
|  | "rtp_packet_info.cc", | 
|  | "rtp_packet_info.h", | 
|  | "rtp_packet_infos.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":array_view", | 
|  | ":make_ref_counted", | 
|  | ":refcountedbase", | 
|  | ":rtp_headers", | 
|  | ":scoped_refptr", | 
|  | "../rtc_base/system:rtc_export", | 
|  | "units:time_delta", | 
|  | "units:timestamp", | 
|  | ] | 
|  | absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("video_track_source_constraints") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ "video_track_source_constraints.h" ] | 
|  | absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] | 
|  | } | 
|  |  | 
|  | rtc_library("media_stream_interface") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ | 
|  | "media_stream_interface.cc", | 
|  | "media_stream_interface.h", | 
|  | "media_stream_track.h", | 
|  | "notifier.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":audio_options_api", | 
|  | ":make_ref_counted", | 
|  | ":rtp_parameters", | 
|  | ":scoped_refptr", | 
|  | ":sequence_checker", | 
|  | ":video_track_source_constraints", | 
|  | "../modules/audio_processing:audio_processing_statistics", | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base:refcount", | 
|  | "../rtc_base/system:no_unique_address", | 
|  | "../rtc_base/system:rtc_export", | 
|  | "video:recordable_encoded_frame", | 
|  | "video:video_frame", | 
|  | ] | 
|  | absl_deps = [ | 
|  | "//third_party/abseil-cpp/absl/strings", | 
|  | "//third_party/abseil-cpp/absl/types:optional", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("candidate") { | 
|  | visibility = [ "*" ] | 
|  |  | 
|  | sources = [ | 
|  | "candidate.cc", | 
|  | "candidate.h", | 
|  | ] | 
|  | deps = [ | 
|  | "../rtc_base", | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base:ip_address", | 
|  | "../rtc_base:logging", | 
|  | "../rtc_base:network_constants", | 
|  | "../rtc_base:socket_address", | 
|  | "../rtc_base:stringutils", | 
|  | "../rtc_base/system:rtc_export", | 
|  | ] | 
|  | absl_deps = [ "//third_party/abseil-cpp/absl/strings" ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("turn_customizer") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ "turn_customizer.h" ] | 
|  | deps = [ "transport:stun_types" ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("ice_transport_interface") { | 
|  | visibility = [ "*" ] | 
|  |  | 
|  | sources = [ "ice_transport_interface.h" ] | 
|  | deps = [ | 
|  | ":async_dns_resolver", | 
|  | ":packet_socket_factory", | 
|  | ":rtc_error", | 
|  | ":scoped_refptr", | 
|  | "../rtc_base:refcount", | 
|  | "rtc_event_log:rtc_event_log", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("dtls_transport_interface") { | 
|  | visibility = [ "*" ] | 
|  |  | 
|  | sources = [ | 
|  | "dtls_transport_interface.cc", | 
|  | "dtls_transport_interface.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":ice_transport_interface", | 
|  | ":rtc_error", | 
|  | ":scoped_refptr", | 
|  | "../rtc_base", | 
|  | "../rtc_base:refcount", | 
|  | "../rtc_base/system:rtc_export", | 
|  | ] | 
|  | absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] | 
|  | } | 
|  |  | 
|  | rtc_library("dtmf_sender_interface") { | 
|  | visibility = [ "*" ] | 
|  |  | 
|  | sources = [ "dtmf_sender_interface.h" ] | 
|  | deps = [ | 
|  | ":media_stream_interface", | 
|  | "../rtc_base:refcount", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("rtp_sender_interface") { | 
|  | visibility = [ "*" ] | 
|  |  | 
|  | sources = [ | 
|  | "rtp_sender_interface.cc", | 
|  | "rtp_sender_interface.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":dtls_transport_interface", | 
|  | ":dtmf_sender_interface", | 
|  | ":frame_transformer_interface", | 
|  | ":media_stream_interface", | 
|  | ":rtc_error", | 
|  | ":rtp_parameters", | 
|  | ":scoped_refptr", | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base:refcount", | 
|  | "../rtc_base/system:rtc_export", | 
|  | "crypto:frame_encryptor_interface", | 
|  | "video_codecs:video_codecs_api", | 
|  | ] | 
|  | absl_deps = [ "//third_party/abseil-cpp/absl/functional:any_invocable" ] | 
|  | } | 
|  |  | 
|  | rtc_library("libjingle_peerconnection_api") { | 
|  | visibility = [ "*" ] | 
|  | cflags = [] | 
|  | sources = [ | 
|  | "crypto_params.h", | 
|  | "data_channel_interface.cc", | 
|  | "data_channel_interface.h", | 
|  | "jsep.cc", | 
|  | "jsep.h", | 
|  | "jsep_ice_candidate.cc", | 
|  | "jsep_ice_candidate.h", | 
|  | "jsep_session_description.h", | 
|  | "legacy_stats_types.cc", | 
|  | "legacy_stats_types.h", | 
|  | "peer_connection_interface.cc", | 
|  | "peer_connection_interface.h", | 
|  | "rtp_receiver_interface.cc", | 
|  | "rtp_receiver_interface.h", | 
|  | "rtp_transceiver_interface.cc", | 
|  | "rtp_transceiver_interface.h", | 
|  | "sctp_transport_interface.cc", | 
|  | "sctp_transport_interface.h", | 
|  | "set_local_description_observer_interface.h", | 
|  | "set_remote_description_observer_interface.h", | 
|  | "uma_metrics.h", | 
|  | "video_track_source_proxy_factory.h", | 
|  |  | 
|  | # Remove when downstream has been updated | 
|  | "dtmf_sender_interface.h", | 
|  | "rtp_sender_interface.h", | 
|  | ] | 
|  | public_deps = [  # no-presubmit-check TODO(webrtc:8603) | 
|  | # Remove when downstream has been updated | 
|  | ":dtmf_sender_interface", | 
|  | ":rtp_sender_interface", | 
|  | ] | 
|  | deps = [ | 
|  | ":array_view", | 
|  | ":async_dns_resolver", | 
|  | ":audio_options_api", | 
|  | ":callfactory_api", | 
|  | ":candidate", | 
|  | ":dtls_transport_interface", | 
|  | ":fec_controller_api", | 
|  | ":field_trials", | 
|  | ":field_trials_view", | 
|  | ":frame_transformer_interface", | 
|  | ":ice_transport_interface", | 
|  | ":libjingle_logging_api", | 
|  | ":make_ref_counted", | 
|  | ":media_stream_interface", | 
|  | ":network_state_predictor_api", | 
|  | ":packet_socket_factory", | 
|  | ":priority", | 
|  | ":rtc_error", | 
|  | ":rtc_stats_api", | 
|  | ":rtp_packet_info", | 
|  | ":rtp_parameters", | 
|  | ":rtp_sender_interface", | 
|  | ":rtp_transceiver_direction", | 
|  | ":scoped_refptr", | 
|  | ":sequence_checker", | 
|  | ":turn_customizer", | 
|  | "../call:rtp_interfaces", | 
|  | "../p2p:rtc_p2p", | 
|  | "../rtc_base:copy_on_write_buffer", | 
|  | "../rtc_base:logging", | 
|  | "../rtc_base:network_constants", | 
|  | "../rtc_base:refcount", | 
|  | "../rtc_base:stringutils", | 
|  | "adaptation:resource_adaptation_api", | 
|  | "audio:audio_mixer_api", | 
|  | "audio_codecs:audio_codecs_api", | 
|  | "crypto:frame_decryptor_interface", | 
|  | "crypto:frame_encryptor_interface", | 
|  | "crypto:options", | 
|  | "metronome", | 
|  | "neteq:neteq_api", | 
|  | "rtc_event_log", | 
|  | "task_queue", | 
|  | "transport:bitrate_settings", | 
|  | "transport:enums", | 
|  | "transport:network_control", | 
|  | "transport:sctp_transport_factory_interface", | 
|  | "transport/rtp:rtp_source", | 
|  | "units:data_rate", | 
|  | "units:timestamp", | 
|  | "video:encoded_image", | 
|  | "video:video_bitrate_allocator_factory", | 
|  | "video:video_frame", | 
|  | "video:video_rtp_headers", | 
|  | "video_codecs:video_codecs_api", | 
|  |  | 
|  | # Basically, don't add stuff here. You might break sensitive downstream | 
|  | # targets like pnacl. API should not depend on anything outside of this | 
|  | # file, really. All these should arguably go away in time. | 
|  | "../media:rtc_media_base", | 
|  | "../media:rtc_media_config", | 
|  | "../modules/audio_processing:audio_processing_statistics", | 
|  | "../rtc_base", | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base:ip_address", | 
|  | "../rtc_base:socket_address", | 
|  | "../rtc_base:threading", | 
|  | "../rtc_base/system:rtc_export", | 
|  | ] | 
|  | absl_deps = [ | 
|  | "//third_party/abseil-cpp/absl/algorithm:container", | 
|  | "//third_party/abseil-cpp/absl/base:core_headers", | 
|  | "//third_party/abseil-cpp/absl/functional:any_invocable", | 
|  | "//third_party/abseil-cpp/absl/memory", | 
|  | "//third_party/abseil-cpp/absl/strings", | 
|  | "//third_party/abseil-cpp/absl/types:optional", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("frame_transformer_interface") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ "frame_transformer_interface.h" ] | 
|  | deps = [ | 
|  | ":make_ref_counted", | 
|  | ":scoped_refptr", | 
|  | "../rtc_base:refcount", | 
|  | "video:encoded_frame", | 
|  | "video:video_frame_metadata", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("rtc_error") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ | 
|  | "rtc_error.cc", | 
|  | "rtc_error.h", | 
|  | ] | 
|  | deps = [ | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base:logging", | 
|  | "../rtc_base:macromagic", | 
|  | "../rtc_base/system:rtc_export", | 
|  | ] | 
|  | absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("packet_socket_factory") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ | 
|  | "async_resolver_factory.h", | 
|  | "packet_socket_factory.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":async_dns_resolver", | 
|  | ":wrapping_async_dns_resolver", | 
|  | "../rtc_base:async_resolver_interface", | 
|  | "../rtc_base:rtc_base", | 
|  | "../rtc_base:socket_address", | 
|  | "../rtc_base/system:rtc_export", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("async_dns_resolver") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ "async_dns_resolver.h" ] | 
|  | deps = [ | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base:socket_address", | 
|  | "../rtc_base/system:rtc_export", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("wrapping_async_dns_resolver") { | 
|  | visibility = [ | 
|  | ":*", | 
|  | "../p2p:rtc_p2p", | 
|  | ] | 
|  | sources = [ | 
|  | "wrapping_async_dns_resolver.cc", | 
|  | "wrapping_async_dns_resolver.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":async_dns_resolver", | 
|  | ":sequence_checker", | 
|  | "../rtc_base:async_resolver_interface", | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base:macromagic", | 
|  | "../rtc_base:socket_address", | 
|  | "../rtc_base:threading", | 
|  | "../rtc_base/third_party/sigslot", | 
|  | ] | 
|  | absl_deps = [ "//third_party/abseil-cpp/absl/memory" ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("scoped_refptr") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ "scoped_refptr.h" ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("make_ref_counted") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ "make_ref_counted.h" ] | 
|  | deps = [ "../rtc_base:refcount" ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("video_quality_test_fixture_api") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ "test/video_quality_test_fixture.h" ] | 
|  | deps = [ | 
|  | ":fec_controller_api", | 
|  | ":libjingle_peerconnection_api", | 
|  | ":network_state_predictor_api", | 
|  | ":rtp_parameters", | 
|  | ":simulated_network_api", | 
|  | "../call:fake_network", | 
|  | "../call:rtp_interfaces", | 
|  | "../test:test_common", | 
|  | "../test:video_test_common", | 
|  | "../video/config:encoder_config", | 
|  | "transport:bitrate_settings", | 
|  | "transport:network_control", | 
|  | "video_codecs:video_codecs_api", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("video_quality_analyzer_api") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ "test/video_quality_analyzer_interface.h" ] | 
|  |  | 
|  | deps = [ | 
|  | ":array_view", | 
|  | ":stats_observer_interface", | 
|  | "video:encoded_image", | 
|  | "video:video_frame", | 
|  | "video:video_rtp_headers", | 
|  | "video_codecs:video_codecs_api", | 
|  | ] | 
|  | absl_deps = [ | 
|  | "//third_party/abseil-cpp/absl/strings", | 
|  | "//third_party/abseil-cpp/absl/types:optional", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("track_id_stream_info_map") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ "test/track_id_stream_info_map.h" ] | 
|  | absl_deps = [ "//third_party/abseil-cpp/absl/strings" ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("rtp_transceiver_direction") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ "rtp_transceiver_direction.h" ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("priority") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ "priority.h" ] | 
|  | } | 
|  |  | 
|  | rtc_library("rtp_parameters") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ | 
|  | "media_types.cc", | 
|  | "media_types.h", | 
|  | "rtp_parameters.cc", | 
|  | "rtp_parameters.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":array_view", | 
|  | ":priority", | 
|  | ":rtp_transceiver_direction", | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base:stringutils", | 
|  | "../rtc_base/system:rtc_export", | 
|  | "video:resolution", | 
|  | "video_codecs:scalability_mode", | 
|  | ] | 
|  | absl_deps = [ | 
|  | "//third_party/abseil-cpp/absl/container:inlined_vector", | 
|  | "//third_party/abseil-cpp/absl/strings", | 
|  | "//third_party/abseil-cpp/absl/types:optional", | 
|  | ] | 
|  | } | 
|  |  | 
|  | if (is_android) { | 
|  | java_cpp_enum("priority_enums") { | 
|  | sources = [ "priority.h" ] | 
|  | } | 
|  | } | 
|  |  | 
|  | rtc_source_set("audio_quality_analyzer_api") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ "test/audio_quality_analyzer_interface.h" ] | 
|  |  | 
|  | deps = [ | 
|  | ":stats_observer_interface", | 
|  | ":track_id_stream_info_map", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("stats_observer_interface") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ "test/stats_observer_interface.h" ] | 
|  |  | 
|  | deps = [ ":rtc_stats_api" ] | 
|  |  | 
|  | absl_deps = [ "//third_party/abseil-cpp/absl/strings" ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("peer_network_dependencies") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ "test/peer_network_dependencies.h" ] | 
|  | deps = [ | 
|  | ":packet_socket_factory", | 
|  | "../rtc_base", | 
|  | "../rtc_base:threading", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("peer_connection_quality_test_fixture_api") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ "test/peerconnection_quality_test_fixture.h" ] | 
|  |  | 
|  | deps = [ | 
|  | ":array_view", | 
|  | ":audio_quality_analyzer_api", | 
|  | ":callfactory_api", | 
|  | ":fec_controller_api", | 
|  | ":frame_generator_api", | 
|  | ":function_view", | 
|  | ":libjingle_peerconnection_api", | 
|  | ":media_stream_interface", | 
|  | ":network_state_predictor_api", | 
|  | ":packet_socket_factory", | 
|  | ":peer_network_dependencies", | 
|  | ":rtp_parameters", | 
|  | ":simulated_network_api", | 
|  | ":stats_observer_interface", | 
|  | ":track_id_stream_info_map", | 
|  | ":video_quality_analyzer_api", | 
|  | "../media:media_constants", | 
|  | "../media:rtc_media_base", | 
|  | "../modules/audio_processing:api", | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base:rtc_base", | 
|  | "../rtc_base:stringutils", | 
|  | "../rtc_base:threading", | 
|  | "../test:fileutils", | 
|  | "audio:audio_mixer_api", | 
|  | "rtc_event_log", | 
|  | "task_queue", | 
|  | "test/pclf:media_configuration", | 
|  | "test/pclf:media_quality_test_params", | 
|  | "test/pclf:peer_configurer", | 
|  | "test/video:video_frame_writer", | 
|  | "transport:network_control", | 
|  | "units:time_delta", | 
|  | "video:video_frame", | 
|  | "video_codecs:video_codecs_api", | 
|  | ] | 
|  | absl_deps = [ | 
|  | "//third_party/abseil-cpp/absl/base:core_headers", | 
|  | "//third_party/abseil-cpp/absl/memory", | 
|  | "//third_party/abseil-cpp/absl/strings", | 
|  | "//third_party/abseil-cpp/absl/types:optional", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("frame_generator_api") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ | 
|  | "test/frame_generator_interface.cc", | 
|  | "test/frame_generator_interface.h", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | ":scoped_refptr", | 
|  | "video:video_frame", | 
|  | ] | 
|  | absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] | 
|  | } | 
|  |  | 
|  | rtc_library("test_dependency_factory") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ | 
|  | "test/test_dependency_factory.cc", | 
|  | "test/test_dependency_factory.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":video_quality_test_fixture_api", | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base:platform_thread_types", | 
|  | ] | 
|  | } | 
|  |  | 
|  | if (rtc_include_tests) { | 
|  | # TODO(srte): Move to network_emulation sub directory. | 
|  | rtc_library("create_network_emulation_manager") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ | 
|  | "test/create_network_emulation_manager.cc", | 
|  | "test/create_network_emulation_manager.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":network_emulation_manager_api", | 
|  | "../test/network:emulated_network", | 
|  | ] | 
|  | } | 
|  |  | 
|  | if (!build_with_chromium) { | 
|  | rtc_library("create_video_quality_test_fixture_api") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ | 
|  | "test/create_video_quality_test_fixture.cc", | 
|  | "test/create_video_quality_test_fixture.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":fec_controller_api", | 
|  | ":network_state_predictor_api", | 
|  | ":scoped_refptr", | 
|  | ":video_quality_test_fixture_api", | 
|  | "../video:video_quality_test", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("create_peerconnection_quality_test_fixture") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ | 
|  | "test/create_peerconnection_quality_test_fixture.cc", | 
|  | "test/create_peerconnection_quality_test_fixture.h", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | ":audio_quality_analyzer_api", | 
|  | ":peer_connection_quality_test_fixture_api", | 
|  | ":time_controller", | 
|  | ":video_quality_analyzer_api", | 
|  | "../test/pc/e2e:peerconnection_quality_test", | 
|  | "test/metrics:global_metrics_logger_and_exporter", | 
|  | ] | 
|  | } | 
|  | } | 
|  | } | 
|  |  | 
|  | rtc_library("create_frame_generator") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ | 
|  | "test/create_frame_generator.cc", | 
|  | "test/create_frame_generator.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":frame_generator_api", | 
|  | "../rtc_base:checks", | 
|  | "../system_wrappers", | 
|  | "../test:frame_generator_impl", | 
|  | ] | 
|  | absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] | 
|  | } | 
|  |  | 
|  | rtc_library("create_peer_connection_quality_test_frame_generator") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ | 
|  | "test/create_peer_connection_quality_test_frame_generator.cc", | 
|  | "test/create_peer_connection_quality_test_frame_generator.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":create_frame_generator", | 
|  | ":frame_generator_api", | 
|  | "../rtc_base:checks", | 
|  | "../test:fileutils", | 
|  | "test/pclf:media_configuration", | 
|  | ] | 
|  | absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("libjingle_logging_api") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ "rtc_event_log_output.h" ] | 
|  | absl_deps = [ "//third_party/abseil-cpp/absl/strings:strings" ] | 
|  | } | 
|  |  | 
|  | rtc_library("rtc_event_log_output_file") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ | 
|  | "rtc_event_log_output_file.cc", | 
|  | "rtc_event_log_output_file.h", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | ":libjingle_logging_api", | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base:logging", | 
|  | "../rtc_base/system:file_wrapper", | 
|  | "rtc_event_log", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("rtc_stats_api") { | 
|  | visibility = [ "*" ] | 
|  | cflags = [] | 
|  | sources = [ | 
|  | "stats/rtc_stats.h", | 
|  | "stats/rtc_stats_collector_callback.h", | 
|  | "stats/rtc_stats_report.h", | 
|  | "stats/rtcstats_objects.h", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | ":make_ref_counted", | 
|  | ":scoped_refptr", | 
|  | "../api:refcountedbase", | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base:refcount", | 
|  | "../rtc_base/system:rtc_export", | 
|  | "units:timestamp", | 
|  | ] | 
|  |  | 
|  | absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] | 
|  | } | 
|  |  | 
|  | rtc_library("audio_options_api") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ | 
|  | "audio_options.cc", | 
|  | "audio_options.h", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | ":array_view", | 
|  | "../rtc_base:stringutils", | 
|  | "../rtc_base/system:rtc_export", | 
|  | ] | 
|  | absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] | 
|  | } | 
|  |  | 
|  | rtc_library("transport_api") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ | 
|  | "call/transport.cc", | 
|  | "call/transport.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":refcountedbase", | 
|  | ":scoped_refptr", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("bitrate_allocation") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ "call/bitrate_allocation.h" ] | 
|  | deps = [ | 
|  | "units:data_rate", | 
|  | "units:time_delta", | 
|  | ] | 
|  | } | 
|  |  | 
|  | # TODO(srte): Move to network_emulation sub directory. | 
|  | rtc_source_set("simulated_network_api") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ "test/simulated_network.h" ] | 
|  | deps = [ | 
|  | "../rtc_base", | 
|  | "../rtc_base:macromagic", | 
|  | "../rtc_base:random", | 
|  | ] | 
|  | absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] | 
|  | } | 
|  |  | 
|  | # TODO(srte): Move to network_emulation sub directory. | 
|  | rtc_source_set("network_emulation_manager_api") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ | 
|  | "test/network_emulation_manager.cc", | 
|  | "test/network_emulation_manager.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":array_view", | 
|  | ":packet_socket_factory", | 
|  | ":peer_network_dependencies", | 
|  | ":simulated_network_api", | 
|  | ":time_controller", | 
|  | "../call:simulated_network", | 
|  | "../rtc_base", | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base:network_constants", | 
|  | "../rtc_base:threading", | 
|  | "test/network_emulation", | 
|  | "units:data_rate", | 
|  | "units:data_size", | 
|  | "units:timestamp", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("time_controller") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ | 
|  | "test/time_controller.cc", | 
|  | "test/time_controller.h", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | "../rtc_base", | 
|  | "../rtc_base:threading", | 
|  | "../rtc_base/synchronization:yield_policy", | 
|  | "../system_wrappers", | 
|  | "task_queue", | 
|  | "units:time_delta", | 
|  | "units:timestamp", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("fec_controller_api") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ | 
|  | "fec_controller.h", | 
|  | "fec_controller_override.h", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | "../modules:module_fec_api", | 
|  | "video:video_frame_type", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("network_state_predictor_api") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ "network_state_predictor.h" ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("array_view") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ "array_view.h" ] | 
|  | deps = [ | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base:type_traits", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("refcountedbase") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ "ref_counted_base.h" ] | 
|  | deps = [ | 
|  | "../rtc_base:macromagic", | 
|  | "../rtc_base:refcount", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("ice_transport_factory") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ | 
|  | "ice_transport_factory.cc", | 
|  | "ice_transport_factory.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":ice_transport_interface", | 
|  | ":libjingle_peerconnection_api", | 
|  | ":make_ref_counted", | 
|  | ":packet_socket_factory", | 
|  | ":scoped_refptr", | 
|  | "../p2p:rtc_p2p", | 
|  | "../rtc_base", | 
|  | "../rtc_base:threading", | 
|  | "../rtc_base/system:rtc_export", | 
|  | "rtc_event_log:rtc_event_log", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("neteq_simulator_api") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ | 
|  | "test/neteq_simulator.cc", | 
|  | "test/neteq_simulator.h", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("function_view") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ "function_view.h" ] | 
|  | deps = [ "../rtc_base:checks" ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("sequence_checker") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ "sequence_checker.h" ] | 
|  | deps = [ | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base:macromagic", | 
|  | "../rtc_base/synchronization:sequence_checker_internal", | 
|  | ] | 
|  | } | 
|  |  | 
|  | if (rtc_include_tests) { | 
|  | if (rtc_enable_protobuf && !build_with_chromium) { | 
|  | rtc_library("audioproc_f_api") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ | 
|  | "test/audioproc_float.cc", | 
|  | "test/audioproc_float.h", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | "../modules/audio_processing", | 
|  | "../modules/audio_processing:api", | 
|  | "../modules/audio_processing:audioproc_f_impl", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("neteq_simulator_factory") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ | 
|  | "test/neteq_simulator_factory.cc", | 
|  | "test/neteq_simulator_factory.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":neteq_simulator_api", | 
|  | "../modules/audio_coding:neteq_test_factory", | 
|  | "../rtc_base:checks", | 
|  | "neteq:neteq_api", | 
|  | ] | 
|  | absl_deps = [ | 
|  | "//third_party/abseil-cpp/absl/flags:flag", | 
|  | "//third_party/abseil-cpp/absl/flags:parse", | 
|  | "//third_party/abseil-cpp/absl/strings", | 
|  | "//third_party/abseil-cpp/absl/types:optional", | 
|  | ] | 
|  | } | 
|  | } | 
|  |  | 
|  | rtc_source_set("simulcast_test_fixture_api") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ "test/simulcast_test_fixture.h" ] | 
|  | } | 
|  |  | 
|  | rtc_library("create_simulcast_test_fixture_api") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ | 
|  | "test/create_simulcast_test_fixture.cc", | 
|  | "test/create_simulcast_test_fixture.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":simulcast_test_fixture_api", | 
|  | "../modules/video_coding:simulcast_test_fixture_impl", | 
|  | "video_codecs:video_codecs_api", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("videocodec_test_stats_api") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ | 
|  | "test/videocodec_test_stats.cc", | 
|  | "test/videocodec_test_stats.h", | 
|  | ] | 
|  | deps = [ | 
|  | "../api/units:data_rate", | 
|  | "../api/units:frequency", | 
|  | "../rtc_base:stringutils", | 
|  | "video:video_frame_type", | 
|  | ] | 
|  | absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] | 
|  | } | 
|  |  | 
|  | rtc_library("videocodec_test_fixture_api") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ "test/videocodec_test_fixture.h" ] | 
|  | deps = [ | 
|  | ":videocodec_test_stats_api", | 
|  | "../modules/video_coding:video_codec_interface", | 
|  | "video_codecs:video_codecs_api", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("video_codec_tester_api") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ "test/video_codec_tester.h" ] | 
|  | deps = [ | 
|  | ":videocodec_test_stats_api", | 
|  | "../modules/video_coding/svc:scalability_mode_util", | 
|  | "video:encoded_image", | 
|  | "video:resolution", | 
|  | "video:video_frame", | 
|  | ] | 
|  | absl_deps = [ | 
|  | "//third_party/abseil-cpp/absl/functional:any_invocable", | 
|  | "//third_party/abseil-cpp/absl/types:optional", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("create_videocodec_test_fixture_api") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ | 
|  | "test/create_videocodec_test_fixture.cc", | 
|  | "test/create_videocodec_test_fixture.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":videocodec_test_fixture_api", | 
|  | "../modules/video_coding:video_codecs_test_framework", | 
|  | "../modules/video_coding:videocodec_test_impl", | 
|  | "video_codecs:video_codecs_api", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("create_video_codec_tester_api") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ | 
|  | "test/create_video_codec_tester.cc", | 
|  | "test/create_video_codec_tester.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":video_codec_tester_api", | 
|  | "../modules/video_coding:videocodec_test_impl", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("mock_audio_mixer") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ "test/mock_audio_mixer.h" ] | 
|  |  | 
|  | deps = [ | 
|  | "../test:test_support", | 
|  | "audio:audio_mixer_api", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("mock_audio_sink") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ "test/mock_audio_sink.h" ] | 
|  |  | 
|  | deps = [ | 
|  | "../api:media_stream_interface", | 
|  | "../test:test_support", | 
|  | ] | 
|  | absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("mock_data_channel") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ "test/mock_data_channel.h" ] | 
|  |  | 
|  | deps = [ | 
|  | ":libjingle_peerconnection_api", | 
|  | "../test:test_support", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("mock_dtmf_sender") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ "test/mock_dtmf_sender.h" ] | 
|  |  | 
|  | deps = [ | 
|  | ":dtmf_sender_interface", | 
|  | ":libjingle_peerconnection_api", | 
|  | "../test:test_support", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("mock_fec_controller_override") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ "test/mock_fec_controller_override.h" ] | 
|  | deps = [ | 
|  | ":fec_controller_api", | 
|  | "../test:test_support", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("mock_frame_encryptor") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ "test/mock_frame_encryptor.h" ] | 
|  | deps = [ | 
|  | # For api/crypto/frame_encryptor_interface.h | 
|  | ":libjingle_peerconnection_api", | 
|  | "../test:test_support", | 
|  | "crypto:frame_encryptor_interface", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("mock_frame_decryptor") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ "test/mock_frame_decryptor.h" ] | 
|  | deps = [ | 
|  | ":libjingle_peerconnection_api", | 
|  | "../test:test_support", | 
|  | "crypto:frame_decryptor_interface", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("mock_encoder_selector") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ "test/mock_encoder_selector.h" ] | 
|  | deps = [ | 
|  | ":libjingle_peerconnection_api", | 
|  | "../api/video_codecs:video_codecs_api", | 
|  | "../test:test_support", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("fake_frame_encryptor") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ | 
|  | "test/fake_frame_encryptor.cc", | 
|  | "test/fake_frame_encryptor.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":array_view", | 
|  | ":libjingle_peerconnection_api", | 
|  | ":make_ref_counted", | 
|  | ":rtp_parameters", | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base:refcount", | 
|  | "crypto:frame_encryptor_interface", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("fake_frame_decryptor") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ | 
|  | "test/fake_frame_decryptor.cc", | 
|  | "test/fake_frame_decryptor.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":array_view", | 
|  | ":libjingle_peerconnection_api", | 
|  | ":make_ref_counted", | 
|  | ":rtp_parameters", | 
|  | "../rtc_base:checks", | 
|  | "crypto:frame_decryptor_interface", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("mock_media_stream_interface") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ "test/mock_media_stream_interface.h" ] | 
|  |  | 
|  | deps = [ | 
|  | ":media_stream_interface", | 
|  | "../test:test_support", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("mock_packet_socket_factory") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ "test/mock_packet_socket_factory.h" ] | 
|  |  | 
|  | deps = [ | 
|  | ":packet_socket_factory", | 
|  | "../test:test_support", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("mock_peerconnectioninterface") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ "test/mock_peerconnectioninterface.h" ] | 
|  |  | 
|  | deps = [ | 
|  | ":libjingle_peerconnection_api", | 
|  | "../api:scoped_refptr", | 
|  | "../rtc_base:refcount", | 
|  | "../test:test_support", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("mock_peer_connection_factory_interface") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ "test/mock_peer_connection_factory_interface.h" ] | 
|  |  | 
|  | deps = [ | 
|  | ":libjingle_peerconnection_api", | 
|  | "../test:test_support", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("mock_session_description_interface") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ "test/mock_session_description_interface.h" ] | 
|  | deps = [ | 
|  | ":libjingle_peerconnection_api", | 
|  | "../test:test_support", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("mock_async_dns_resolver") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ "test/mock_async_dns_resolver.h" ] | 
|  | deps = [ | 
|  | ":async_dns_resolver", | 
|  | "../test:test_support", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("mock_rtp") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ | 
|  | "test/mock_rtp_transceiver.h", | 
|  | "test/mock_rtpreceiver.h", | 
|  | "test/mock_rtpsender.h", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | ":libjingle_peerconnection_api", | 
|  | ":rtp_sender_interface", | 
|  | "../api/crypto:frame_decryptor_interface", | 
|  | "../test:test_support", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("mock_transformable_video_frame") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ "test/mock_transformable_video_frame.h" ] | 
|  |  | 
|  | deps = [ | 
|  | ":frame_transformer_interface", | 
|  | "../test:test_support", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("mock_video_bitrate_allocator") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ "test/mock_video_bitrate_allocator.h" ] | 
|  |  | 
|  | deps = [ | 
|  | "../api/video:video_bitrate_allocator", | 
|  | "../test:test_support", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("mock_video_bitrate_allocator_factory") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ "test/mock_video_bitrate_allocator_factory.h" ] | 
|  |  | 
|  | deps = [ | 
|  | "../api/video:video_bitrate_allocator_factory", | 
|  | "../test:test_support", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("mock_video_codec_factory") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ | 
|  | "test/mock_video_decoder_factory.h", | 
|  | "test/mock_video_encoder_factory.h", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | "../api/video_codecs:video_codecs_api", | 
|  | "../test:test_support", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("mock_video_decoder") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ "test/mock_video_decoder.h" ] | 
|  |  | 
|  | deps = [ | 
|  | "../api/video_codecs:video_codecs_api", | 
|  | "../test:test_support", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("mock_video_encoder") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ "test/mock_video_encoder.h" ] | 
|  |  | 
|  | deps = [ | 
|  | "../api/video_codecs:video_codecs_api", | 
|  | "../test:test_support", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("mock_video_track") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ "test/mock_video_track.h" ] | 
|  |  | 
|  | deps = [ | 
|  | "../api:media_stream_interface", | 
|  | "../api:scoped_refptr", | 
|  | "../rtc_base:refcount", | 
|  | "../test:test_support", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("create_time_controller") { | 
|  | visibility = [ "*" ] | 
|  | testonly = true | 
|  | sources = [ | 
|  | "test/create_time_controller.cc", | 
|  | "test/create_time_controller.h", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | ":callfactory_api", | 
|  | ":time_controller", | 
|  | "../call", | 
|  | "../call:call_interfaces", | 
|  | "../call:rtp_interfaces", | 
|  | "../test/time_controller", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("rtc_api_unittests") { | 
|  | testonly = true | 
|  |  | 
|  | sources = [ | 
|  | "array_view_unittest.cc", | 
|  | "field_trials_unittest.cc", | 
|  | "function_view_unittest.cc", | 
|  | "rtc_error_unittest.cc", | 
|  | "rtc_event_log_output_file_unittest.cc", | 
|  | "rtp_packet_info_unittest.cc", | 
|  | "rtp_packet_infos_unittest.cc", | 
|  | "rtp_parameters_unittest.cc", | 
|  | "scoped_refptr_unittest.cc", | 
|  | "sequence_checker_unittest.cc", | 
|  | "test/create_time_controller_unittest.cc", | 
|  | "test/peerconnection_quality_test_fixture_unittest.cc", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | ":array_view", | 
|  | ":create_time_controller", | 
|  | ":field_trials", | 
|  | ":field_trials_view", | 
|  | ":function_view", | 
|  | ":libjingle_peerconnection_api", | 
|  | ":peer_connection_quality_test_fixture_api", | 
|  | ":rtc_error", | 
|  | ":rtc_event_log_output_file", | 
|  | ":rtp_packet_info", | 
|  | ":rtp_parameters", | 
|  | ":scoped_refptr", | 
|  | ":sequence_checker", | 
|  | ":time_controller", | 
|  | "../rtc_base:buffer", | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base:gunit_helpers", | 
|  | "../rtc_base:platform_thread", | 
|  | "../rtc_base:rtc_event", | 
|  | "../rtc_base:rtc_task_queue", | 
|  | "../rtc_base:task_queue_for_test", | 
|  | "../rtc_base/containers:flat_set", | 
|  | "../rtc_base/task_utils:repeating_task", | 
|  | "../system_wrappers:field_trial", | 
|  | "../test:field_trial", | 
|  | "../test:fileutils", | 
|  | "../test:rtc_expect_death", | 
|  | "../test:test_support", | 
|  | "task_queue:task_queue_default_factory_unittests", | 
|  | "test/pclf:media_configuration", | 
|  | "test/video:video_frame_writer", | 
|  | "transport:field_trial_based_config", | 
|  | "units:time_delta", | 
|  | "units:timestamp", | 
|  | "units:units_unittests", | 
|  | "video:frame_buffer_unittest", | 
|  | "video:rtp_video_frame_assembler_unittests", | 
|  | "video:video_unittests", | 
|  | ] | 
|  | absl_deps = [ | 
|  | "//third_party/abseil-cpp/absl/strings", | 
|  | "//third_party/abseil-cpp/absl/types:optional", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("compile_all_headers") { | 
|  | testonly = true | 
|  |  | 
|  | sources = [ "test/compile_all_headers.cc" ] | 
|  |  | 
|  | deps = [ | 
|  | ":fake_frame_decryptor", | 
|  | ":fake_frame_encryptor", | 
|  | ":mock_async_dns_resolver", | 
|  | ":mock_audio_mixer", | 
|  | ":mock_audio_sink", | 
|  | ":mock_data_channel", | 
|  | ":mock_dtmf_sender", | 
|  | ":mock_frame_decryptor", | 
|  | ":mock_frame_encryptor", | 
|  | ":mock_media_stream_interface", | 
|  | ":mock_packet_socket_factory", | 
|  | ":mock_peer_connection_factory_interface", | 
|  | ":mock_peerconnectioninterface", | 
|  | ":mock_rtp", | 
|  | ":mock_session_description_interface", | 
|  | ":mock_transformable_video_frame", | 
|  | ":mock_video_bitrate_allocator", | 
|  | ":mock_video_bitrate_allocator_factory", | 
|  | ":mock_video_codec_factory", | 
|  | ":mock_video_decoder", | 
|  | ":mock_video_encoder", | 
|  | ":mock_video_track", | 
|  | ":rtc_api_unittests", | 
|  | "units:units_unittests", | 
|  | ] | 
|  | } | 
|  | } | 
|  |  | 
|  | rtc_source_set("field_trials_registry") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ | 
|  | "field_trials_registry.cc", | 
|  | "field_trials_registry.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":field_trials_view", | 
|  | "../experiments:registered_field_trials", | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base/containers:flat_set", | 
|  | "../rtc_base/system:rtc_export", | 
|  | ] | 
|  | absl_deps = [ | 
|  | "//third_party/abseil-cpp/absl/algorithm:container", | 
|  | "//third_party/abseil-cpp/absl/strings", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("field_trials_view") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ "field_trials_view.h" ] | 
|  | deps = [ "../rtc_base/system:rtc_export" ] | 
|  | absl_deps = [ "//third_party/abseil-cpp/absl/strings" ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("webrtc_key_value_config") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ "webrtc_key_value_config.h" ] | 
|  | deps = [ ":field_trials_view" ] | 
|  | } | 
|  |  | 
|  | rtc_library("field_trials") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ | 
|  | "field_trials.cc", | 
|  | "field_trials.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":field_trials_registry", | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base/containers:flat_map", | 
|  | "../system_wrappers:field_trial", | 
|  | ] | 
|  | absl_deps = [ "//third_party/abseil-cpp/absl/strings" ] | 
|  | } | 
|  |  | 
|  | rtc_library("frame_transformer_factory") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ | 
|  | "frame_transformer_factory.cc", | 
|  | "frame_transformer_factory.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":frame_transformer_interface", | 
|  | ":scoped_refptr", | 
|  | "../modules/rtp_rtcp", | 
|  | "../rtc_base:refcount", | 
|  | "video:encoded_frame", | 
|  | "video:video_frame_metadata", | 
|  | ] | 
|  | } |