webrtc_m130/call/BUILD.gn
Sebastian Jansson 09408115cd Moving demux from FakeNetworkPipe to DirectTransport.
This CL moves the responsibility for demuxing from FakeNetworkPipe
to DirectTransport. This makes the interface for FakeNetworkPipe more
consistent. It exposes fewer different interfaces for different usages.

It also means that any time degradations applied to the packets due in
FakeNetworkPipe in tests will now be propagated to Call in a more
realistic manner. Previously the time was set to uninitialized which
meant that Call filled in values based on the system clock.

Bug: webrtc:9054
Change-Id: Ie534062f5ae9ad992c06b19e43804138a35702f0
Reviewed-on: https://webrtc-review.googlesource.com/64260
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23017}
2018-04-25 10:13:03 +00:00

415 lines
11 KiB
Plaintext

# 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")
rtc_source_set("call_interfaces") {
sources = [
"audio_receive_stream.cc",
"audio_receive_stream.h",
"audio_send_stream.h",
"audio_state.cc",
"audio_state.h",
"call.h",
"call_config.cc",
"call_config.h",
"flexfec_receive_stream.cc",
"flexfec_receive_stream.h",
"syncable.cc",
"syncable.h",
]
if (!build_with_mozilla) {
sources += [ "audio_send_stream.cc" ]
}
deps = [
":rtp_interfaces",
":video_stream_api",
"..:webrtc_common",
"../:typedefs",
"../api:fec_controller_api",
"../api:libjingle_peerconnection_api",
"../api:optional",
"../api:transport_api",
"../api/audio:audio_mixer_api",
"../api/audio_codecs:audio_codecs_api",
"../modules/audio_device:audio_device",
"../modules/audio_processing:audio_processing",
"../modules/audio_processing:audio_processing_statistics",
"../rtc_base:audio_format_to_string",
"../rtc_base:rtc_base",
"../rtc_base:rtc_base_approved",
]
}
# TODO(nisse): These RTP targets should be moved elsewhere
# when interfaces have stabilized. See also TODO for |mock_rtp_interfaces|.
rtc_source_set("rtp_interfaces") {
sources = [
"bitrate_constraints.cc",
"bitrate_constraints.h",
"rtcp_packet_sink_interface.h",
"rtp_config.cc",
"rtp_config.h",
"rtp_packet_sink_interface.h",
"rtp_stream_receiver_controller_interface.h",
"rtp_transport_controller_send_interface.h",
]
deps = [
"../api:array_view",
"../api:optional",
"../rtc_base:rtc_base_approved",
]
}
rtc_source_set("rtp_receiver") {
visibility = [ "*" ]
sources = [
"rtcp_demuxer.cc",
"rtcp_demuxer.h",
"rtp_demuxer.cc",
"rtp_demuxer.h",
"rtp_rtcp_demuxer_helper.cc",
"rtp_rtcp_demuxer_helper.h",
"rtp_stream_receiver_controller.cc",
"rtp_stream_receiver_controller.h",
"rtx_receive_stream.cc",
"rtx_receive_stream.h",
"ssrc_binding_observer.h",
]
deps = [
":rtp_interfaces",
"..:webrtc_common",
"../api:array_view",
"../api:libjingle_peerconnection_api",
"../api:optional",
"../modules/rtp_rtcp",
"../modules/rtp_rtcp:rtp_rtcp_format",
"../rtc_base:checks",
"../rtc_base:rtc_base_approved",
]
}
rtc_source_set("rtp_sender") {
sources = [
"rtp_transport_controller_send.cc",
"rtp_transport_controller_send.h",
]
deps = [
":bitrate_configurator",
":rtp_interfaces",
"..:webrtc_common",
"../modules/congestion_controller",
"../modules/congestion_controller/network_control",
"../modules/congestion_controller/rtp:congestion_controller",
"../modules/pacing",
"../modules/utility",
"../rtc_base:rtc_base",
"../rtc_base:rtc_base_approved",
"../system_wrappers:field_trial_api",
]
}
rtc_source_set("bitrate_configurator") {
sources = [
"rtp_bitrate_configurator.cc",
"rtp_bitrate_configurator.h",
]
deps = [
":rtp_interfaces",
"../rtc_base:checks",
"../rtc_base:rtc_base_approved",
]
}
rtc_source_set("bitrate_allocator") {
sources = [
"bitrate_allocator.cc",
"bitrate_allocator.h",
]
deps = [
"../modules/bitrate_controller",
"../rtc_base:checks",
"../rtc_base:rtc_base_approved",
"../rtc_base:sequenced_task_checker",
"../system_wrappers",
"../system_wrappers:field_trial_api",
"../system_wrappers:metrics_api",
]
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_static_library("call") {
sources = [
"call.cc",
"callfactory.cc",
"callfactory.h",
"degraded_call.cc",
"degraded_call.h",
"flexfec_receive_stream_impl.cc",
"flexfec_receive_stream_impl.h",
"receive_time_calculator.cc",
"receive_time_calculator.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 = [
":bitrate_allocator",
":call_interfaces",
":fake_network",
":rtp_interfaces",
":rtp_receiver",
":rtp_sender",
":video_stream_api",
"..:webrtc_common",
"../api:callfactory_api",
"../api:optional",
"../api:transport_api",
"../audio",
"../logging:rtc_event_audio",
"../logging:rtc_event_log_api",
"../logging:rtc_event_rtp_rtcp",
"../logging:rtc_event_video",
"../logging:rtc_stream_config",
"../modules/bitrate_controller",
"../modules/congestion_controller",
"../modules/congestion_controller/network_control",
"../modules/pacing",
"../modules/rtp_rtcp",
"../modules/rtp_rtcp:rtp_rtcp_format",
"../modules/utility",
"../modules/video_coding:video_coding",
"../rtc_base:checks",
"../rtc_base:rate_limiter",
"../rtc_base:rtc_base_approved",
"../rtc_base:rtc_task_queue",
"../rtc_base:safe_minmax",
"../rtc_base:sequenced_task_checker",
"../rtc_base/synchronization:rw_lock_wrapper",
"../system_wrappers",
"../system_wrappers:field_trial_api",
"../system_wrappers:metrics_api",
"../video",
]
}
rtc_source_set("video_stream_api") {
sources = [
"video_config.cc",
"video_config.h",
"video_receive_stream.cc",
"video_receive_stream.h",
"video_send_stream.cc",
"video_send_stream.h",
]
deps = [
":rtp_interfaces",
"../:typedefs",
"../:webrtc_common",
"../api:libjingle_peerconnection_api",
"../api:optional",
"../api:transport_api",
"../api:video_frame_api",
"../api/video_codecs:video_codecs_api",
"../common_video:common_video",
"../modules/rtp_rtcp:rtp_rtcp_format",
"../rtc_base:checks",
"../rtc_base:rtc_base_approved",
]
}
rtc_source_set("fake_network") {
sources = [
"fake_network_pipe.cc",
"fake_network_pipe.h",
]
deps = [
":call_interfaces",
"..:typedefs",
"..:webrtc_common",
"../api:transport_api",
"../modules:module_api",
"../rtc_base:rtc_base_approved",
"../rtc_base:sequenced_task_checker",
"../system_wrappers",
]
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 (rtc_include_tests) {
rtc_source_set("call_tests") {
testonly = true
sources = [
"bitrate_allocator_unittest.cc",
"bitrate_estimator_tests.cc",
"call_unittest.cc",
"flexfec_receive_stream_unittest.cc",
"receive_time_calculator_unittest.cc",
"rtcp_demuxer_unittest.cc",
"rtp_bitrate_configurator_unittest.cc",
"rtp_demuxer_unittest.cc",
"rtp_rtcp_demuxer_helper_unittest.cc",
"rtx_receive_stream_unittest.cc",
]
deps = [
":bitrate_allocator",
":bitrate_configurator",
":call",
":call_interfaces",
":mock_rtp_interfaces",
":rtp_interfaces",
":rtp_receiver",
":rtp_sender",
"..:webrtc_common",
"../api:array_view",
"../api:libjingle_peerconnection_api",
"../api:mock_audio_mixer",
"../api/audio_codecs:builtin_audio_decoder_factory",
"../audio:audio",
"../logging:rtc_event_log_api",
"../logging:rtc_event_log_impl_base",
"../modules/audio_device:mock_audio_device",
"../modules/audio_mixer",
"../modules/audio_mixer:audio_mixer_impl",
"../modules/audio_processing:mocks",
"../modules/bitrate_controller",
"../modules/congestion_controller",
"../modules/pacing",
"../modules/pacing:mock_paced_sender",
"../modules/rtp_rtcp",
"../modules/rtp_rtcp:mock_rtp_rtcp",
"../modules/rtp_rtcp:rtp_rtcp_format",
"../modules/utility:mock_process_thread",
"../rtc_base:checks",
"../rtc_base:rtc_base_approved",
"../system_wrappers",
"../test:audio_codec_mocks",
"../test:direct_transport",
"../test:test_common",
"../test:test_support",
"../test:video_test_common",
"//testing/gtest",
]
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_source_set("call_perf_tests") {
testonly = true
sources = [
"call_perf_tests.cc",
"rampup_tests.cc",
"rampup_tests.h",
]
deps = [
":call_interfaces",
":video_stream_api",
"..:webrtc_common",
"../api/audio_codecs:builtin_audio_encoder_factory",
"../logging:rtc_event_log_api",
"../modules/audio_coding",
"../modules/audio_device",
"../modules/audio_device:audio_device_impl",
"../modules/audio_mixer:audio_mixer_impl",
"../modules/rtp_rtcp",
"../rtc_base:checks",
"../rtc_base:rtc_base_approved",
"../system_wrappers",
"../system_wrappers:metrics_default",
"../system_wrappers:runtime_enabled_features_default",
"../test:direct_transport",
"../test:field_trial",
"../test:fileutils",
"../test:perf_test",
"../test:test_common",
"../test:test_support",
"../test:video_test_common",
"../video",
"//testing/gtest",
]
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" ]
}
}
# TODO(eladalon): This should be moved, as with the TODO for |rtp_interfaces|.
rtc_source_set("mock_rtp_interfaces") {
testonly = true
sources = [
"test/mock_rtp_packet_sink_interface.h",
"test/mock_rtp_transport_controller_send.h",
]
deps = [
":rtp_interfaces",
"../modules/congestion_controller",
"../modules/pacing",
"../rtc_base:rate_limiter",
"../rtc_base:rtc_base",
"../test:test_support",
]
}
rtc_source_set("mock_bitrate_allocator") {
testonly = true
sources = [
"test/mock_bitrate_allocator.h",
]
deps = [
":bitrate_allocator",
"//test:test_support",
]
}
rtc_source_set("mock_call_interfaces") {
testonly = true
sources = [
"test/mock_audio_send_stream.h",
]
deps = [
":call_interfaces",
"//test:test_support",
]
}
rtc_test("fake_network_unittests") {
deps = [
":call_interfaces",
":fake_network",
"../modules/rtp_rtcp",
"../rtc_base:rtc_base_approved",
"../system_wrappers",
"../test:test_common",
"../test:test_main",
"//testing/gtest",
]
sources = [
"test/fake_network_pipe_unittest.cc",
]
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" ]
}
}
}