webrtc_m130/call/BUILD.gn

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

657 lines
19 KiB
Plaintext
Raw Normal View History

# 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.
Reland of Moving webrtc.gni up one level from build/ (patchset #1 id:1 of https://codereview.webrtc.org/2657563002/ ) Reason for revert: Starting to work on a fix (it seems that there are third_party dependencies that depends on the path to the webrtc.gni file) Original issue's description: > Revert of Moving webrtc.gni up one level from build/ (patchset #1 id:1 of https://codereview.webrtc.org/2651543003/ ) > > Reason for revert: > This was causing the following failure: https://build.chromium.org/p/chromium.webrtc.fyi/builders/Android%20Builder/builds/838/steps/generate_build_files/logs/stdio > > Original issue's description: > > Moving webrtc.gni up one level from build/ > > > > BUG=webrtc:7030 > > > > Review-Url: https://codereview.webrtc.org/2651543003 > > Cr-Commit-Position: refs/heads/master@{#16241} > > Committed: https://chromium.googlesource.com/external/webrtc/+/35a32700fc9b5d932ddbd528c12f59c3274e4774 > > TBR=kjellander@webrtc.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=webrtc:7030 > > Review-Url: https://codereview.webrtc.org/2657563002 > Cr-Commit-Position: refs/heads/master@{#16244} > Committed: https://chromium.googlesource.com/external/webrtc/+/69dc7dbe247ead087f3bae0eb7e23f27f0de1ec3 TBR=kjellander@webrtc.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=webrtc:7030 Review-Url: https://codereview.webrtc.org/2654773002 Cr-Commit-Position: refs/heads/master@{#16247}
2017-01-24 06:58:22 -08:00
import("../webrtc.gni")
rtc_library("version") {
sources = [
"version.cc",
"version.h",
]
visibility = [ ":*" ]
}
rtc_library("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",
"packet_receiver.h",
"syncable.cc",
"syncable.h",
]
if (!build_with_mozilla) {
sources += [ "audio_send_stream.cc" ]
}
deps = [
":audio_sender_interface",
":receive_stream_interface",
":rtp_interfaces",
":video_stream_api",
"../api:fec_controller_api",
"../api:field_trials_view",
"../api:frame_transformer_interface",
"../api:network_state_predictor_api",
"../api:rtc_error",
"../api:rtp_headers",
"../api:rtp_parameters",
"../api:scoped_refptr",
"../api:transport_api",
"../api/adaptation:resource_adaptation_api",
"../api/audio:audio_frame_processor",
"../api/audio:audio_mixer_api",
"../api/audio_codecs:audio_codecs_api",
"../api/crypto:frame_encryptor_interface",
"../api/crypto:options",
"../api/metronome",
"../api/neteq:neteq_api",
"../api/task_queue",
"../api/transport:bitrate_settings",
"../api/transport:network_control",
"../modules/async_audio_processing",
"../modules/audio_device",
"../modules/audio_processing",
Reland "Isolating APM API build target: making :api an actual target." This reverts commit 61c6e5643e7ea058e653956980a90e033249c055. Reason for revert: downstream projects prepared for this change Original change's description: > Revert "Isolating APM API build target: making :api an actual target." > > This reverts commit a7f77a7c05b5d26520fd01a773ffb2c8b15b60ff. > > Reason for revert: breaking downstream > > Original change's description: > > Isolating APM API build target: making :api an actual target. > > > > This CL is part of a refactoring work to unblock other CLs > > that would generate a circular dependency when including > > modules/audio_processing. It will also allow to easily move > > the APM interface part under //api. > > > > More in detail, this change moves the APM interface files from > > the build target modules/audio_processing to > > modules/audio_processing:api. It also adds :api as dependency > > where needed. > > > > Bug: webrtc:9535 > > Change-Id: I72829e22d08ba4d75985f0421e6e8bf0216ebecd > > Reviewed-on: https://webrtc-review.googlesource.com/c/109501 > > Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> > > Reviewed-by: Kári Helgason <kthelgason@webrtc.org> > > Reviewed-by: Niels Moller <nisse@webrtc.org> > > Reviewed-by: Sam Zackrisson <saza@webrtc.org> > > Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#25539} > > TBR=saza@webrtc.org,alessiob@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org,kthelgason@webrtc.org > > Change-Id: I974c6237311e7c06970aa62e5f6940f3aa80113d > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:9535 > Reviewed-on: https://webrtc-review.googlesource.com/c/109820 > Reviewed-by: Alessio Bazzica <alessiob@webrtc.org> > Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#25540} TBR=saza@webrtc.org,alessiob@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org,kthelgason@webrtc.org Change-Id: Ic8ed4cc3baf43d639ce13cae256c007728c3ad92 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9535 Reviewed-on: https://webrtc-review.googlesource.com/c/109884 Reviewed-by: Alessio Bazzica <alessiob@webrtc.org> Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25547}
2018-11-07 14:29:54 +00:00
"../modules/audio_processing:api",
"../modules/audio_processing:audio_processing_statistics",
"../modules/rtp_rtcp:rtp_rtcp_format",
"../modules/utility",
"../rtc_base",
"../rtc_base:audio_format_to_string",
"../rtc_base:checks",
"../rtc_base:copy_on_write_buffer",
"../rtc_base:refcount",
"../rtc_base:stringutils",
"../rtc_base/network:sent_packet",
]
absl_deps = [
"//third_party/abseil-cpp/absl/functional:bind_front",
"//third_party/abseil-cpp/absl/types:optional",
]
}
rtc_source_set("audio_sender_interface") {
visibility = [ "*" ]
sources = [ "audio_sender.h" ]
deps = [ "../api/audio:audio_frame_api" ]
}
# TODO(nisse): These RTP targets should be moved elsewhere
# when interfaces have stabilized. See also TODO for `mock_rtp_interfaces`.
rtc_library("rtp_interfaces") {
# Client code SHOULD NOT USE THIS TARGET, but for now it needs to be public
# because there exists client code that uses it.
# TODO(bugs.webrtc.org/9808): Move to private visibility as soon as that
# client code gets updated.
visibility = [ "*" ]
sources = [
"rtp_config.cc",
"rtp_config.h",
"rtp_packet_sink_interface.h",
"rtp_stream_receiver_controller_interface.h",
"rtp_transport_config.h",
"rtp_transport_controller_send_factory_interface.h",
"rtp_transport_controller_send_interface.h",
]
Reland of Create RtcpDemuxer (patchset #1 id:1 of https://codereview.webrtc.org/2957763002/ ) Reason for revert: About to fix problem and reland. Original issue's description: > Revert of Create RtcpDemuxer (patchset #13 id:240001 of https://codereview.webrtc.org/2943693003/ ) > > Reason for revert: > Breaks Chromium FYI bots. > > The problem is in the BUILD.gn file. > > Sample failure: > https://build.chromium.org/p/chromium.webrtc.fyi/builders/Linux%20Builder/builds/17829 > > Sample logs: > use_goma = true > """ to /b/c/b/Linux_Builder/src/out/Release/args.gn. > > /b/c/b/Linux_Builder/src/buildtools/linux64/gn gen //out/Release --check > -> returned 1 > ERROR at //third_party/webrtc/call/BUILD.gn:46:5: Can't load input file. > "//webrtc/base:rtc_base_approved", > ^-------------------------------- > > Original issue's description: > > Create RtcpDemuxer. Capabilities: > > 1. Demux RTCP messages according to the sender-SSRC. > > 2. Demux RTCP messages according to the RSID (resolved to an SSRC, then compared to the sender-RTCP). > > 3. Allow listening in on all RTCP messages passing through the demuxer ("broadcast sinks"). > > > > BUG=webrtc:7135 > > > > Review-Url: https://codereview.webrtc.org/2943693003 > > Cr-Commit-Position: refs/heads/master@{#18763} > > Committed: https://chromium.googlesource.com/external/webrtc/+/cb83bdf01f2ec8b9ed254991edc2be053c9eed24 > > BUG=webrtc:7135 > > Review-Url: https://codereview.webrtc.org/2957763002 > Cr-Commit-Position: refs/heads/master@{#18764} > Committed: https://chromium.googlesource.com/external/webrtc/+/0e7e7869e74a29caf8197d02fb396d70748474ed BUG=webrtc:7135 Review-Url: https://codereview.webrtc.org/2960623002 Cr-Commit-Position: refs/heads/master@{#18768}
2017-06-26 11:23:54 -07:00
deps = [
"../api:array_view",
"../api:fec_controller_api",
"../api:field_trials_view",
"../api:frame_transformer_interface",
"../api:network_state_predictor_api",
"../api:rtp_headers",
"../api:rtp_parameters",
"../api/crypto:options",
"../api/rtc_event_log",
"../api/transport:bitrate_settings",
"../api/transport:network_control",
"../api/units:timestamp",
"../common_video:frame_counts",
"../modules/rtp_rtcp:rtp_rtcp_format",
"../modules/utility",
[Stats] Explicit RTP-RTX and RTP-FEC mappings. Unblocks simulcast stats. --- Background --- The webrtc::VideoSendStream::StreamStats are converted into VideoSenderInfo objects which turn into "outbound-rtp" stats objects in getStats() (or "ssrc" objects in legacy getStats()). StreamStats are created for each type of substream: RTP media streams, RTX streams and FlexFEC streams - each with individual packet counters. The RTX stream is responsible for retransmissions of a referenced media stream and the FlexFEC stream is responsible for FEC of a referenced media stream. RTX/FEC streams do not show up as separate objects in getStats(). Only the media streams become "outbound-rtp" objects, but their packet and byte counters have to include the RTX and FEC counters. --- Overview of this CL --- This CL adds MergeInfoAboutOutboundRtpSubstreams(). It takes StreamStats of all kinds as input, and outputs media-only StreamStats - incorporating the RTX and FEC counters into the relevant media StreamStats. The merged StreamStats objects is a smaller set of objects than the non-merged counterparts, but when aggregating all packet counters together we end up with exact same packet and count as before. Because WebRtcVideoSendStream::GetVideoSenderInfo() currently aggregates the StreamStats into a single VideoSenderInfo (single "outbound-rtp"), this CL should not have any observable side-effects. Prior to this CL: aggregate StreamStats. After this CL: merge StreamStats and then aggregate them. However, when simulcast stats are implemented (WIP CL: https://webrtc-review.googlesource.com/c/src/+/168120) each RTP media stream should turn into an individual "outbound-rtp" object. We will then no longer aggregate all StreamStats into a single "info". This CL unblocks simulcast stats by providing StreamStats objects that could be turned into individual VideoSenderInfos. --- The Changes --- 1. Methods added to RtpConfig to be able to easily tell the relationship between RTP, RTX and FEC ssrcs. 2. StreamStats gets a StreamType (kMedia, kRtx or kFlexfec) that replaces the booleans (is_rtx, is_flexfec). 3. "referenced_media_ssrc" is added to StreamStats, making it possible to tell which kRtx/kFlexFec stream stats need to be merged with which kMedia StreamStats. 4. MergeInfoAboutOutboundRtpSubstreams() added and used. Bug: webrtc:11439 Change-Id: Iaf9002041169a054ddfd32c7ea06bd1dc36c6bca Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170826 Commit-Queue: Henrik Boström <hbos@webrtc.org> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Reviewed-by: Stefan Holmer <stefan@webrtc.org> Cr-Commit-Position: refs/heads/master@{#30869}
2020-03-24 13:30:50 +01:00
"../rtc_base:checks",
"../rtc_base:rtc_task_queue",
"../rtc_base:stringutils",
]
absl_deps = [
[Stats] Explicit RTP-RTX and RTP-FEC mappings. Unblocks simulcast stats. --- Background --- The webrtc::VideoSendStream::StreamStats are converted into VideoSenderInfo objects which turn into "outbound-rtp" stats objects in getStats() (or "ssrc" objects in legacy getStats()). StreamStats are created for each type of substream: RTP media streams, RTX streams and FlexFEC streams - each with individual packet counters. The RTX stream is responsible for retransmissions of a referenced media stream and the FlexFEC stream is responsible for FEC of a referenced media stream. RTX/FEC streams do not show up as separate objects in getStats(). Only the media streams become "outbound-rtp" objects, but their packet and byte counters have to include the RTX and FEC counters. --- Overview of this CL --- This CL adds MergeInfoAboutOutboundRtpSubstreams(). It takes StreamStats of all kinds as input, and outputs media-only StreamStats - incorporating the RTX and FEC counters into the relevant media StreamStats. The merged StreamStats objects is a smaller set of objects than the non-merged counterparts, but when aggregating all packet counters together we end up with exact same packet and count as before. Because WebRtcVideoSendStream::GetVideoSenderInfo() currently aggregates the StreamStats into a single VideoSenderInfo (single "outbound-rtp"), this CL should not have any observable side-effects. Prior to this CL: aggregate StreamStats. After this CL: merge StreamStats and then aggregate them. However, when simulcast stats are implemented (WIP CL: https://webrtc-review.googlesource.com/c/src/+/168120) each RTP media stream should turn into an individual "outbound-rtp" object. We will then no longer aggregate all StreamStats into a single "info". This CL unblocks simulcast stats by providing StreamStats objects that could be turned into individual VideoSenderInfos. --- The Changes --- 1. Methods added to RtpConfig to be able to easily tell the relationship between RTP, RTX and FEC ssrcs. 2. StreamStats gets a StreamType (kMedia, kRtx or kFlexfec) that replaces the booleans (is_rtx, is_flexfec). 3. "referenced_media_ssrc" is added to StreamStats, making it possible to tell which kRtx/kFlexFec stream stats need to be merged with which kMedia StreamStats. 4. MergeInfoAboutOutboundRtpSubstreams() added and used. Bug: webrtc:11439 Change-Id: Iaf9002041169a054ddfd32c7ea06bd1dc36c6bca Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170826 Commit-Queue: Henrik Boström <hbos@webrtc.org> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Reviewed-by: Stefan Holmer <stefan@webrtc.org> Cr-Commit-Position: refs/heads/master@{#30869}
2020-03-24 13:30:50 +01:00
"//third_party/abseil-cpp/absl/algorithm:container",
"//third_party/abseil-cpp/absl/types:optional",
Reland of Create RtcpDemuxer (patchset #1 id:1 of https://codereview.webrtc.org/2957763002/ ) Reason for revert: About to fix problem and reland. Original issue's description: > Revert of Create RtcpDemuxer (patchset #13 id:240001 of https://codereview.webrtc.org/2943693003/ ) > > Reason for revert: > Breaks Chromium FYI bots. > > The problem is in the BUILD.gn file. > > Sample failure: > https://build.chromium.org/p/chromium.webrtc.fyi/builders/Linux%20Builder/builds/17829 > > Sample logs: > use_goma = true > """ to /b/c/b/Linux_Builder/src/out/Release/args.gn. > > /b/c/b/Linux_Builder/src/buildtools/linux64/gn gen //out/Release --check > -> returned 1 > ERROR at //third_party/webrtc/call/BUILD.gn:46:5: Can't load input file. > "//webrtc/base:rtc_base_approved", > ^-------------------------------- > > Original issue's description: > > Create RtcpDemuxer. Capabilities: > > 1. Demux RTCP messages according to the sender-SSRC. > > 2. Demux RTCP messages according to the RSID (resolved to an SSRC, then compared to the sender-RTCP). > > 3. Allow listening in on all RTCP messages passing through the demuxer ("broadcast sinks"). > > > > BUG=webrtc:7135 > > > > Review-Url: https://codereview.webrtc.org/2943693003 > > Cr-Commit-Position: refs/heads/master@{#18763} > > Committed: https://chromium.googlesource.com/external/webrtc/+/cb83bdf01f2ec8b9ed254991edc2be053c9eed24 > > BUG=webrtc:7135 > > Review-Url: https://codereview.webrtc.org/2957763002 > Cr-Commit-Position: refs/heads/master@{#18764} > Committed: https://chromium.googlesource.com/external/webrtc/+/0e7e7869e74a29caf8197d02fb396d70748474ed BUG=webrtc:7135 Review-Url: https://codereview.webrtc.org/2960623002 Cr-Commit-Position: refs/heads/master@{#18768}
2017-06-26 11:23:54 -07:00
]
}
rtc_library("rtp_receiver") {
Revert "Revert "GN rtc_* templates: Set default visibility to webrtc_root + "/*""" This reverts commit c73e1f437889d882cbf2987f7fb3a029a6150613. Reason for revert: The problem with failed deps in chrome content/renderer had already been fixed in https://webrtc-review.googlesource.com/c/src/+/38660 Original change's description: > Revert "GN rtc_* templates: Set default visibility to webrtc_root + "/*"" > > This reverts commit 588c548657b3ddf76e7b3f241263eef7f5799f16. > > Reason for revert: > > Breaks Chrome FYI: > > /b/c/b/Linux_Builder/src/buildtools/linux64/gn gen //out/Release --check > -> returned 1 > ERROR at //build/split_static_library.gni:12:5: Dependency not allowed. > static_library(target_name) { > ^---------------------------- > The item //content/renderer:renderer > can not depend on //third_party/webrtc/media:rtc_internal_video_codecs > because it is not in //third_party/webrtc/media:rtc_internal_video_codecs's visibility list: [ > //third_party/webrtc/* > //third_party/webrtc_overrides/* > ] > > https://logs.chromium.org/v/?s=chromium%2Fbb%2Fchromium.webrtc.fyi%2FLinux_Builder%2F23560%2F%2B%2Frecipes%2Fsteps%2Fgenerate_build_files%2F0%2Fstdout > > Original change's description: > > GN rtc_* templates: Set default visibility to webrtc_root + "/*" > > > > This means that by default, targets are visible to everything under > > the WebRTC root, but not visible to anything else. > > > > API targets are manually tagged with visibility "*", so that targets > > outside the WebRTC tree can see them. > > > > BUG=webrtc:8254 > > > > Change-Id: Icdbee6e0d22d93240ff2fb530c8f9dc48e351509 > > Reviewed-on: https://webrtc-review.googlesource.com/24140 > > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> > > Commit-Queue: Karl Wiberg <kwiberg@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#21548} > > TBR=mbonadei@webrtc.org,kwiberg@webrtc.org > > Change-Id: I06620ce3d6f67482935c22efa231dd6cab91625a > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:8254 > Reviewed-on: https://webrtc-review.googlesource.com/38760 > Reviewed-by: Per Kjellander <perkj@webrtc.org> > Commit-Queue: Per Kjellander <perkj@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#21555} TBR=mbonadei@webrtc.org,kwiberg@webrtc.org,perkj@webrtc.org Change-Id: I6f720078ce21bd172e0a6471bae8c4c011e4a657 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:8254 Reviewed-on: https://webrtc-review.googlesource.com/38860 Reviewed-by: Per Kjellander <perkj@webrtc.org> Commit-Queue: Per Kjellander <perkj@webrtc.org> Cr-Commit-Position: refs/heads/master@{#21558}
2018-01-10 15:54:53 +00:00
visibility = [ "*" ]
sources = [
"rtp_demuxer.cc",
"rtp_demuxer.h",
"rtp_stream_receiver_controller.cc",
"rtp_stream_receiver_controller.h",
"rtx_receive_stream.cc",
"rtx_receive_stream.h",
]
deps = [
":rtp_interfaces",
"../api:array_view",
"../api:rtp_headers",
"../api:sequence_checker",
"../modules/rtp_rtcp",
"../modules/rtp_rtcp:rtp_rtcp_format",
"../rtc_base:checks",
"../rtc_base:logging",
"../rtc_base:stringutils",
"../rtc_base/containers:flat_map",
"../rtc_base/containers:flat_set",
]
absl_deps = [
"//third_party/abseil-cpp/absl/strings:strings",
"//third_party/abseil-cpp/absl/types:optional",
]
}
rtc_library("rtp_sender") {
sources = [
Reland "Move allocation and rtp conversion logic out of payload router." This reverts commit c2406e4eaf7703c6c64d21318186adda791e09fd. Reason for revert: Reland by removing the conflict with the broken CL. Original change's description: > Revert "Move allocation and rtp conversion logic out of payload router." > > This reverts commit 1da4d79ba3275b3fa48cad3b2c0949e0d3b7afe7. > > Reason for revert: Need to revert https://webrtc-review.googlesource.com/c/src/+/88220 > > This causes a merge conflict. So need to revert this first. > > Original change's description: > > Move allocation and rtp conversion logic out of payload router. > > > > Makes it easier to write tests, and allows for moving rtp module > > ownership into the payload router in the future. > > > > The RtpPayloadParams class is split into declaration and definition and > > moved into separate files. > > > > Bug: webrtc:9517 > > Change-Id: I8700628edff19abcacfe8d3a20e4ba7476f712ad > > Reviewed-on: https://webrtc-review.googlesource.com/88564 > > Commit-Queue: Stefan Holmer <stefan@webrtc.org> > > Reviewed-by: Sebastian Jansson <srte@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#23983} > > TBR=sprang@webrtc.org,stefan@webrtc.org,srte@webrtc.org > > Change-Id: I342c4bf483d975c87c706fe7f76f44e2dc60fe4c > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:9517 > Reviewed-on: https://webrtc-review.googlesource.com/88821 > Reviewed-by: JT Teh <jtteh@webrtc.org> > Commit-Queue: JT Teh <jtteh@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#23991} TBR=sprang@webrtc.org,stefan@webrtc.org,srte@webrtc.org,lliuu@webrtc.org,jtteh@webrtc.org,tkchin@webrtc.org Change-Id: I154145cdbc668feee86dbe78860147a6954fee6c No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9517 Reviewed-on: https://webrtc-review.googlesource.com/89020 Commit-Queue: Stefan Holmer <stefan@webrtc.org> Reviewed-by: Stefan Holmer <stefan@webrtc.org> Cr-Commit-Position: refs/heads/master@{#23996}
2018-07-17 10:16:41 +02:00
"rtp_payload_params.cc",
"rtp_payload_params.h",
"rtp_transport_controller_send.cc",
"rtp_transport_controller_send.h",
"rtp_transport_controller_send_factory.h",
"rtp_video_sender.cc",
"rtp_video_sender.h",
"rtp_video_sender_interface.h",
]
deps = [
":bitrate_configurator",
":rtp_interfaces",
"../api:array_view",
"../api:bitrate_allocation",
"../api:fec_controller_api",
"../api:field_trials_view",
"../api:network_state_predictor_api",
"../api:rtp_parameters",
"../api:sequence_checker",
"../api:transport_api",
"../api/rtc_event_log",
"../api/transport:field_trial_based_config",
"../api/transport:goog_cc",
"../api/transport:network_control",
"../api/units:data_rate",
"../api/units:time_delta",
"../api/units:timestamp",
"../api/video:video_frame",
"../api/video:video_layers_allocation",
"../api/video:video_rtp_headers",
"../api/video_codecs:video_codecs_api",
"../logging:rtc_event_bwe",
"../modules/congestion_controller",
"../modules/congestion_controller/rtp:control_handler",
"../modules/congestion_controller/rtp:transport_feedback",
"../modules/pacing",
"../modules/rtp_rtcp",
"../modules/rtp_rtcp:rtp_rtcp_format",
"../modules/rtp_rtcp:rtp_video_header",
"../modules/utility",
"../modules/video_coding:chain_diff_calculator",
"../modules/video_coding:codec_globals_headers",
"../modules/video_coding:frame_dependencies_calculator",
"../modules/video_coding:video_codec_interface",
"../rtc_base",
"../rtc_base:checks",
"../rtc_base:event_tracer",
"../rtc_base:location",
"../rtc_base:logging",
"../rtc_base:macromagic",
"../rtc_base:race_checker",
"../rtc_base:random",
"../rtc_base:rate_limiter",
"../rtc_base:rtc_task_queue",
"../rtc_base:timeutils",
"../rtc_base/synchronization:mutex",
"../rtc_base/task_utils:repeating_task",
]
absl_deps = [
"//third_party/abseil-cpp/absl/algorithm:container",
"//third_party/abseil-cpp/absl/container:inlined_vector",
"//third_party/abseil-cpp/absl/strings:strings",
"//third_party/abseil-cpp/absl/types:optional",
"//third_party/abseil-cpp/absl/types:variant",
]
}
rtc_library("bitrate_configurator") {
sources = [
"rtp_bitrate_configurator.cc",
"rtp_bitrate_configurator.h",
]
deps = [
":rtp_interfaces",
# For api/bitrate_constraints.h
"../api:libjingle_peerconnection_api",
"../api/transport:bitrate_settings",
"../api/units:data_rate",
"../rtc_base:checks",
]
absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}
rtc_library("bitrate_allocator") {
sources = [
"bitrate_allocator.cc",
"bitrate_allocator.h",
]
deps = [
"../api:bitrate_allocation",
"../api:sequence_checker",
"../api/transport:network_control",
"../api/units:data_rate",
"../api/units:time_delta",
"../rtc_base:checks",
"../rtc_base:logging",
"../rtc_base:safe_minmax",
"../rtc_base/system:no_unique_address",
"../system_wrappers",
"../system_wrappers:field_trial",
"../system_wrappers:metrics",
]
absl_deps = [ "//third_party/abseil-cpp/absl/algorithm:container" ]
}
rtc_library("call") {
sources = [
"call.cc",
"call_factory.cc",
"call_factory.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",
]
deps = [
":bitrate_allocator",
":call_interfaces",
":fake_network",
":rtp_interfaces",
":rtp_receiver",
":rtp_sender",
":simulated_network",
":version",
":video_stream_api",
"../api:array_view",
"../api:callfactory_api",
"../api:fec_controller_api",
"../api:field_trials_view",
"../api:rtp_headers",
"../api:rtp_parameters",
"../api:sequence_checker",
"../api:simulated_network_api",
"../api:transport_api",
"../api/rtc_event_log",
"../api/transport:network_control",
"../api/units:time_delta",
"../api/video_codecs:video_codecs_api",
"../audio",
"../logging:rtc_event_audio",
"../logging:rtc_event_rtp_rtcp",
"../logging:rtc_event_video",
"../logging:rtc_stream_config",
"../modules/congestion_controller",
"../modules/pacing",
"../modules/rtp_rtcp",
"../modules/rtp_rtcp:rtp_rtcp_format",
"../modules/utility",
"../modules/video_coding",
"../rtc_base:checks",
"../rtc_base:copy_on_write_buffer",
"../rtc_base:event_tracer",
"../rtc_base:location",
"../rtc_base:logging",
"../rtc_base:macromagic",
"../rtc_base:rate_limiter",
"../rtc_base:rtc_task_queue",
"../rtc_base:safe_minmax",
"../rtc_base:stringutils",
"../rtc_base:timeutils",
"../rtc_base/experiments:field_trial_parser",
"../rtc_base/network:sent_packet",
"../rtc_base/system:no_unique_address",
"../rtc_base/task_utils:pending_task_safety_flag",
"../system_wrappers",
"../system_wrappers:field_trial",
"../system_wrappers:metrics",
"../video",
"../video:decode_synchronizer",
"adaptation:resource_adaptation",
]
absl_deps = [
"//third_party/abseil-cpp/absl/functional:bind_front",
"//third_party/abseil-cpp/absl/types:optional",
]
}
rtc_source_set("receive_stream_interface") {
sources = [ "receive_stream.h" ]
deps = [
"../api:frame_transformer_interface",
"../api:rtp_parameters",
"../api:scoped_refptr",
"../api/crypto:frame_decryptor_interface",
"../api/transport/rtp:rtp_source",
"../modules/rtp_rtcp:rtp_rtcp_format",
]
}
rtc_library("video_stream_api") {
sources = [
"video_receive_stream.cc",
"video_receive_stream.h",
"video_send_stream.cc",
"video_send_stream.h",
]
deps = [
":receive_stream_interface",
":rtp_interfaces",
"../api:frame_transformer_interface",
"../api:rtp_headers",
"../api:rtp_parameters",
"../api:scoped_refptr",
"../api:transport_api",
"../api/adaptation:resource_adaptation_api",
"../api/crypto:frame_encryptor_interface",
"../api/crypto:options",
"../api/video:recordable_encoded_frame",
"../api/video:video_frame",
"../api/video:video_rtp_headers",
"../api/video:video_stream_encoder",
"../api/video_codecs:video_codecs_api",
"../common_video",
"../common_video:frame_counts",
"../modules/rtp_rtcp:rtp_rtcp_format",
"../rtc_base:checks",
"../rtc_base:stringutils",
]
absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}
rtc_library("simulated_network") {
sources = [
"simulated_network.cc",
"simulated_network.h",
]
deps = [
"../api:sequence_checker",
"../api:simulated_network_api",
"../api/units:data_rate",
"../api/units:data_size",
"../api/units:time_delta",
"../api/units:timestamp",
"../rtc_base:checks",
"../rtc_base:macromagic",
"../rtc_base:race_checker",
"../rtc_base:random",
"../rtc_base/synchronization:mutex",
]
absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}
rtc_source_set("simulated_packet_receiver") {
sources = [ "simulated_packet_receiver.h" ]
deps = [
":call_interfaces",
"../api:simulated_network_api",
]
}
rtc_library("fake_network") {
sources = [
"fake_network_pipe.cc",
"fake_network_pipe.h",
]
deps = [
":call_interfaces",
":simulated_network",
":simulated_packet_receiver",
"../api:rtp_parameters",
"../api:sequence_checker",
"../api:simulated_network_api",
"../api:transport_api",
"../modules/utility",
"../rtc_base:checks",
"../rtc_base:logging",
"../rtc_base:macromagic",
"../rtc_base/synchronization:mutex",
"../system_wrappers",
]
}
if (rtc_include_tests) {
if (!build_with_chromium) {
rtc_library("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",
"rtp_bitrate_configurator_unittest.cc",
"rtp_demuxer_unittest.cc",
"rtp_payload_params_unittest.cc",
"rtp_video_sender_unittest.cc",
"rtx_receive_stream_unittest.cc",
]
deps = [
":bitrate_allocator",
":bitrate_configurator",
":call",
":call_interfaces",
":mock_rtp_interfaces",
":rtp_interfaces",
":rtp_receiver",
":rtp_sender",
":simulated_network",
"../api:array_view",
"../api:create_frame_generator",
"../api:mock_audio_mixer",
"../api:rtp_headers",
"../api:rtp_parameters",
"../api:transport_api",
"../api/audio_codecs:builtin_audio_decoder_factory",
"../api/rtc_event_log",
"../api/task_queue:default_task_queue_factory",
"../api/test/video:function_video_factory",
"../api/transport:field_trial_based_config",
"../api/video:builtin_video_bitrate_allocator_factory",
"../api/video:video_frame",
"../api/video:video_rtp_headers",
"../audio",
"../modules:module_api",
"../modules/audio_device:mock_audio_device",
"../modules/audio_mixer",
"../modules/audio_mixer:audio_mixer_impl",
"../modules/audio_processing:mocks",
"../modules/congestion_controller",
"../modules/pacing",
"../modules/rtp_rtcp",
"../modules/rtp_rtcp:mock_rtp_rtcp",
"../modules/rtp_rtcp:rtp_rtcp_format",
"../modules/utility:mock_process_thread",
"../modules/video_coding",
"../modules/video_coding:codec_globals_headers",
"../modules/video_coding:video_codec_interface",
"../rtc_base:checks",
"../rtc_base:logging",
"../rtc_base:macromagic",
"../rtc_base:random",
"../rtc_base:rate_limiter",
"../rtc_base:rtc_event",
"../rtc_base:safe_conversions",
"../rtc_base:task_queue_for_test",
"../rtc_base:timeutils",
"../rtc_base/synchronization:mutex",
"../system_wrappers",
"../test:audio_codec_mocks",
"../test:direct_transport",
"../test:encoder_settings",
"../test:explicit_key_value_config",
"../test:fake_video_codecs",
"../test:field_trial",
"../test:mock_frame_transformer",
"../test:mock_transport",
"../test:scoped_key_value_config",
"../test:test_common",
"../test:test_support",
"../test:video_test_common",
"../test/scenario",
"../test/time_controller:time_controller",
"../video",
"adaptation:resource_adaptation_test_utilities",
"//testing/gmock",
"//testing/gtest",
]
absl_deps = [
"//third_party/abseil-cpp/absl/container:inlined_vector",
"//third_party/abseil-cpp/absl/memory",
"//third_party/abseil-cpp/absl/strings",
"//third_party/abseil-cpp/absl/types:optional",
"//third_party/abseil-cpp/absl/types:variant",
]
}
rtc_library("call_perf_tests") {
testonly = true
sources = [
"call_perf_tests.cc",
"rampup_tests.cc",
"rampup_tests.h",
]
deps = [
":call_interfaces",
":simulated_network",
":video_stream_api",
"../api:rtc_event_log_output_file",
"../api:simulated_network_api",
"../api/audio_codecs:builtin_audio_encoder_factory",
"../api/rtc_event_log",
"../api/rtc_event_log:rtc_event_log_factory",
"../api/task_queue",
"../api/task_queue:default_task_queue_factory",
"../api/video:builtin_video_bitrate_allocator_factory",
"../api/video:video_bitrate_allocation",
"../api/video_codecs:video_codecs_api",
"../media:rtc_internal_video_codecs",
"../media:rtc_simulcast_encoder_adapter",
"../modules/audio_coding",
"../modules/audio_device",
"../modules/audio_device:audio_device_impl",
"../modules/audio_mixer:audio_mixer_impl",
"../modules/rtp_rtcp",
"../modules/rtp_rtcp:rtp_rtcp_format",
"../rtc_base",
"../rtc_base:checks",
"../rtc_base:logging",
"../rtc_base:macromagic",
"../rtc_base:platform_thread",
"../rtc_base:rtc_event",
"../rtc_base:stringutils",
"../rtc_base:task_queue_for_test",
"../rtc_base:threading",
"../rtc_base:timeutils",
"../rtc_base/synchronization:mutex",
"../rtc_base/task_utils:pending_task_safety_flag",
"../rtc_base/task_utils:repeating_task",
"../system_wrappers",
"../system_wrappers:metrics",
"../test:direct_transport",
"../test:encoder_settings",
"../test:fake_video_codecs",
"../test:field_trial",
"../test:fileutils",
"../test:null_transport",
"../test:perf_test",
"../test:test_common",
"../test:test_support",
"../test:video_test_common",
"../video",
"//testing/gtest",
]
absl_deps = [ "//third_party/abseil-cpp/absl/flags:flag" ]
}
}
# 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",
"../api:frame_transformer_interface",
"../api:libjingle_peerconnection_api",
"../api/crypto:frame_encryptor_interface",
"../api/crypto:options",
"../api/transport:bitrate_settings",
"../modules/pacing",
"../rtc_base",
"../rtc_base:rate_limiter",
"../rtc_base/network:sent_packet",
"../test:test_support",
]
}
rtc_source_set("mock_bitrate_allocator") {
testonly = true
Remove voe::TransmitMixer TransmitMixer's functionality is moved into the AudioTransportProxy owned by AudioState. This removes the need for an AudioTransport implementation in VoEBaseImpl, which means that the proxy is no longer a proxy, hence AudioTransportProxy is renamed to AudioTransportImpl. In the short term, AudioState needs to know which AudioDeviceModule is used, so it is added in AudioState::Config. AudioTransportImpl needs to know which AudioSendStream:s are currently enabled to send, so AudioState maintains a map of them, which is reduced into a simple vector for AudioTransportImpl. To encode and transmit audio, AudioSendStream::OnAudioData(std::unique_ptr<AudioFrame> audio_frame) is introduced, which is used in both the Chromium and standalone use cases. This removes the need for two different instances of voe::Channel::ProcessAndEncodeAudio(), so there is now only one, taking an AudioFrame as argument. Callers need to allocate their own AudioFrame:s, which is wasteful but not a regression since this was already happening in the voe::Channel functions. Most of the logic changed resides in AudioTransportImpl::RecordedDataIsAvailable(), where two strange things were found: 1. The clock drift parameter was ineffective since apm->echo_cancellation()->enable_drift_compensation(false) is called during initialization. 2. The output parameter 'new_mic_volume' was never set - instead it was returned as a result, causing the ADM to never update the analog mic gain (https://cs.chromium.org/chromium/src/third_party/webrtc/voice_engine/voe_base_impl.cc?q=voe_base_impl.cc&dr&l=100). Besides this, tests are updated, and some dead code is removed which was found in the process. Bug: webrtc:4690, webrtc:8591 Change-Id: I789d5296bf5efb7299a5ee05a4f3ce6abf9124b2 Reviewed-on: https://webrtc-review.googlesource.com/26681 Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org> Reviewed-by: Oskar Sundbom <ossu@webrtc.org> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Cr-Commit-Position: refs/heads/master@{#21301}
2017-12-15 16:42:15 +01:00
sources = [ "test/mock_bitrate_allocator.h" ]
deps = [
":bitrate_allocator",
"../test:test_support",
]
}
Remove voe::TransmitMixer TransmitMixer's functionality is moved into the AudioTransportProxy owned by AudioState. This removes the need for an AudioTransport implementation in VoEBaseImpl, which means that the proxy is no longer a proxy, hence AudioTransportProxy is renamed to AudioTransportImpl. In the short term, AudioState needs to know which AudioDeviceModule is used, so it is added in AudioState::Config. AudioTransportImpl needs to know which AudioSendStream:s are currently enabled to send, so AudioState maintains a map of them, which is reduced into a simple vector for AudioTransportImpl. To encode and transmit audio, AudioSendStream::OnAudioData(std::unique_ptr<AudioFrame> audio_frame) is introduced, which is used in both the Chromium and standalone use cases. This removes the need for two different instances of voe::Channel::ProcessAndEncodeAudio(), so there is now only one, taking an AudioFrame as argument. Callers need to allocate their own AudioFrame:s, which is wasteful but not a regression since this was already happening in the voe::Channel functions. Most of the logic changed resides in AudioTransportImpl::RecordedDataIsAvailable(), where two strange things were found: 1. The clock drift parameter was ineffective since apm->echo_cancellation()->enable_drift_compensation(false) is called during initialization. 2. The output parameter 'new_mic_volume' was never set - instead it was returned as a result, causing the ADM to never update the analog mic gain (https://cs.chromium.org/chromium/src/third_party/webrtc/voice_engine/voe_base_impl.cc?q=voe_base_impl.cc&dr&l=100). Besides this, tests are updated, and some dead code is removed which was found in the process. Bug: webrtc:4690, webrtc:8591 Change-Id: I789d5296bf5efb7299a5ee05a4f3ce6abf9124b2 Reviewed-on: https://webrtc-review.googlesource.com/26681 Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org> Reviewed-by: Oskar Sundbom <ossu@webrtc.org> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Cr-Commit-Position: refs/heads/master@{#21301}
2017-12-15 16:42:15 +01:00
rtc_source_set("mock_call_interfaces") {
testonly = true
sources = [ "test/mock_audio_send_stream.h" ]
Remove voe::TransmitMixer TransmitMixer's functionality is moved into the AudioTransportProxy owned by AudioState. This removes the need for an AudioTransport implementation in VoEBaseImpl, which means that the proxy is no longer a proxy, hence AudioTransportProxy is renamed to AudioTransportImpl. In the short term, AudioState needs to know which AudioDeviceModule is used, so it is added in AudioState::Config. AudioTransportImpl needs to know which AudioSendStream:s are currently enabled to send, so AudioState maintains a map of them, which is reduced into a simple vector for AudioTransportImpl. To encode and transmit audio, AudioSendStream::OnAudioData(std::unique_ptr<AudioFrame> audio_frame) is introduced, which is used in both the Chromium and standalone use cases. This removes the need for two different instances of voe::Channel::ProcessAndEncodeAudio(), so there is now only one, taking an AudioFrame as argument. Callers need to allocate their own AudioFrame:s, which is wasteful but not a regression since this was already happening in the voe::Channel functions. Most of the logic changed resides in AudioTransportImpl::RecordedDataIsAvailable(), where two strange things were found: 1. The clock drift parameter was ineffective since apm->echo_cancellation()->enable_drift_compensation(false) is called during initialization. 2. The output parameter 'new_mic_volume' was never set - instead it was returned as a result, causing the ADM to never update the analog mic gain (https://cs.chromium.org/chromium/src/third_party/webrtc/voice_engine/voe_base_impl.cc?q=voe_base_impl.cc&dr&l=100). Besides this, tests are updated, and some dead code is removed which was found in the process. Bug: webrtc:4690, webrtc:8591 Change-Id: I789d5296bf5efb7299a5ee05a4f3ce6abf9124b2 Reviewed-on: https://webrtc-review.googlesource.com/26681 Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org> Reviewed-by: Oskar Sundbom <ossu@webrtc.org> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Cr-Commit-Position: refs/heads/master@{#21301}
2017-12-15 16:42:15 +01:00
deps = [
":call_interfaces",
"../test:test_support",
Remove voe::TransmitMixer TransmitMixer's functionality is moved into the AudioTransportProxy owned by AudioState. This removes the need for an AudioTransport implementation in VoEBaseImpl, which means that the proxy is no longer a proxy, hence AudioTransportProxy is renamed to AudioTransportImpl. In the short term, AudioState needs to know which AudioDeviceModule is used, so it is added in AudioState::Config. AudioTransportImpl needs to know which AudioSendStream:s are currently enabled to send, so AudioState maintains a map of them, which is reduced into a simple vector for AudioTransportImpl. To encode and transmit audio, AudioSendStream::OnAudioData(std::unique_ptr<AudioFrame> audio_frame) is introduced, which is used in both the Chromium and standalone use cases. This removes the need for two different instances of voe::Channel::ProcessAndEncodeAudio(), so there is now only one, taking an AudioFrame as argument. Callers need to allocate their own AudioFrame:s, which is wasteful but not a regression since this was already happening in the voe::Channel functions. Most of the logic changed resides in AudioTransportImpl::RecordedDataIsAvailable(), where two strange things were found: 1. The clock drift parameter was ineffective since apm->echo_cancellation()->enable_drift_compensation(false) is called during initialization. 2. The output parameter 'new_mic_volume' was never set - instead it was returned as a result, causing the ADM to never update the analog mic gain (https://cs.chromium.org/chromium/src/third_party/webrtc/voice_engine/voe_base_impl.cc?q=voe_base_impl.cc&dr&l=100). Besides this, tests are updated, and some dead code is removed which was found in the process. Bug: webrtc:4690, webrtc:8591 Change-Id: I789d5296bf5efb7299a5ee05a4f3ce6abf9124b2 Reviewed-on: https://webrtc-review.googlesource.com/26681 Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org> Reviewed-by: Oskar Sundbom <ossu@webrtc.org> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Cr-Commit-Position: refs/heads/master@{#21301}
2017-12-15 16:42:15 +01:00
]
}
rtc_library("fake_network_pipe_unittests") {
testonly = true
sources = [
"fake_network_pipe_unittest.cc",
"simulated_network_unittest.cc",
]
deps = [
":fake_network",
":simulated_network",
"../api/units:data_rate",
"../system_wrappers",
"../test:test_support",
"//testing/gtest",
]
absl_deps = [ "//third_party/abseil-cpp/absl/algorithm:container" ]
}
}