Introduce SimulatedNetworkReceiverInterface.
Introduce SimulatedNetworkReceiverInterface and switch DirectTransport
on this interface. Also switch part of related users on
DefaultNetworkSimulationConfig.
This two changes united into single CL to prevent work duplication.
Most changes were done because of stop including fake_network_pipe.h
into direct_transport.h, so splitting this into 2 CLs will require
first fix all imports of fake_network_pipe.h and then replace them
on new API imports again.
Bug: webrtc:9630
Change-Id: I87d4a6ff1bab72d04a9871a40441f4fbe028f4e6
Reviewed-on: https://webrtc-review.googlesource.com/94762
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24336}diff --git a/video/BUILD.gn b/video/BUILD.gn
index 5f9455c..5901fb9 100644
--- a/video/BUILD.gn
+++ b/video/BUILD.gn
@@ -424,6 +424,7 @@
":video",
":video_mocks",
":video_stream_encoder_impl",
+ "../api:simulated_network_api",
"../api/video:video_frame",
"../api/video:video_frame_i420",
"../api/video_codecs:video_codecs_api",
diff --git a/video/end_to_end_tests/bandwidth_tests.cc b/video/end_to_end_tests/bandwidth_tests.cc
index 3b1df3c..e33feca 100644
--- a/video/end_to_end_tests/bandwidth_tests.cc
+++ b/video/end_to_end_tests/bandwidth_tests.cc
@@ -8,6 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
+#include "api/test/simulated_network.h"
#include "modules/rtp_rtcp/include/rtp_rtcp.h"
#include "rtc_base/rate_limiter.h"
#include "system_wrappers/include/sleep.h"
@@ -164,7 +165,7 @@
test::SingleThreadedTaskQueueForTesting* task_queue) override {
receive_transport_ = new test::PacketTransport(
task_queue, nullptr, this, test::PacketTransport::kReceiver,
- payload_type_map_, FakeNetworkPipe::Config());
+ payload_type_map_, DefaultNetworkSimulationConfig());
return receive_transport_;
}
diff --git a/video/end_to_end_tests/fec_tests.cc b/video/end_to_end_tests/fec_tests.cc
index 4493bde..043f0cb 100644
--- a/video/end_to_end_tests/fec_tests.cc
+++ b/video/end_to_end_tests/fec_tests.cc
@@ -8,6 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
+#include "api/test/simulated_network.h"
#include "modules/rtp_rtcp/source/byte_io.h"
#include "modules/video_coding/codecs/vp8/include/vp8.h"
#include "test/call_test.h"
@@ -239,7 +240,7 @@
Call* sender_call) override {
// At low RTT (< kLowRttNackMs) -> NACK only, no FEC.
const int kNetworkDelayMs = 100;
- FakeNetworkPipe::Config config;
+ DefaultNetworkSimulationConfig config;
config.queue_delay_ms = kNetworkDelayMs;
return new test::PacketTransport(task_queue, sender_call, this,
test::PacketTransport::kSender,
@@ -424,7 +425,7 @@
// At low RTT (< kLowRttNackMs) -> NACK only, no FEC.
// Configure some network delay.
const int kNetworkDelayMs = 50;
- FakeNetworkPipe::Config config;
+ DefaultNetworkSimulationConfig config;
config.queue_delay_ms = kNetworkDelayMs;
return new test::PacketTransport(task_queue, sender_call, this,
test::PacketTransport::kSender,
diff --git a/video/end_to_end_tests/multi_codec_receive_tests.cc b/video/end_to_end_tests/multi_codec_receive_tests.cc
index d4ab3ee..3999c83 100644
--- a/video/end_to_end_tests/multi_codec_receive_tests.cc
+++ b/video/end_to_end_tests/multi_codec_receive_tests.cc
@@ -8,6 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
+#include "api/test/simulated_network.h"
#include "modules/video_coding/codecs/h264/include/h264.h"
#include "modules/video_coding/codecs/vp8/include/vp8.h"
#include "modules/video_coding/codecs/vp9/include/vp9.h"
@@ -149,13 +150,13 @@
send_transport_.reset(new test::PacketTransport(
&task_queue_, sender_call_.get(), &observer_,
test::PacketTransport::kSender, kPayloadTypeMap,
- FakeNetworkPipe::Config()));
+ DefaultNetworkSimulationConfig()));
send_transport_->SetReceiver(receiver_call_->Receiver());
receive_transport_.reset(new test::PacketTransport(
&task_queue_, receiver_call_.get(), &observer_,
test::PacketTransport::kReceiver, kPayloadTypeMap,
- FakeNetworkPipe::Config()));
+ DefaultNetworkSimulationConfig()));
receive_transport_->SetReceiver(sender_call_->Receiver());
});
}
diff --git a/video/end_to_end_tests/probing_tests.cc b/video/end_to_end_tests/probing_tests.cc
index 4d0009f..0520c6f 100644
--- a/video/end_to_end_tests/probing_tests.cc
+++ b/video/end_to_end_tests/probing_tests.cc
@@ -8,6 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
+#include "api/test/simulated_network.h"
#include "test/call_test.h"
#include "test/field_trial.h"
#include "test/gtest.h"
@@ -220,7 +221,7 @@
Call* sender_call) override {
send_transport_ = new test::PacketTransport(
task_queue, sender_call, this, test::PacketTransport::kSender,
- CallTest::payload_type_map_, FakeNetworkPipe::Config());
+ CallTest::payload_type_map_, DefaultNetworkSimulationConfig());
return send_transport_;
}
@@ -239,7 +240,7 @@
// bitrate).
if (stats.send_bandwidth_bps >= 250000 &&
stats.send_bandwidth_bps <= 350000) {
- FakeNetworkPipe::Config config;
+ DefaultNetworkSimulationConfig config;
config.link_capacity_kbps = 200;
send_transport_->SetConfig(config);
@@ -254,7 +255,7 @@
break;
case 1:
if (stats.send_bandwidth_bps <= 210000) {
- FakeNetworkPipe::Config config;
+ DefaultNetworkSimulationConfig config;
config.link_capacity_kbps = 5000;
send_transport_->SetConfig(config);
diff --git a/video/end_to_end_tests/receive_time_tests.cc b/video/end_to_end_tests/receive_time_tests.cc
index 9e025cb..c676d66 100644
--- a/video/end_to_end_tests/receive_time_tests.cc
+++ b/video/end_to_end_tests/receive_time_tests.cc
@@ -8,6 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
+#include "api/test/simulated_network.h"
#include "rtc_base/criticalsection.h"
#include "rtc_base/timeutils.h"
#include "test/call_test.h"
@@ -93,7 +94,8 @@
Call* sender_call) override {
return send_transport_ = new test::PacketTransport(
task_queue, sender_call, this, test::PacketTransport::kSender,
- test::CallTest::payload_type_map_, FakeNetworkPipe::Config());
+ test::CallTest::payload_type_map_,
+ DefaultNetworkSimulationConfig());
}
void PerformTest() override {
observation_complete_.Wait(test::CallTest::kDefaultTimeoutMs);
diff --git a/video/end_to_end_tests/retransmission_tests.cc b/video/end_to_end_tests/retransmission_tests.cc
index 7145b02..8f30f14 100644
--- a/video/end_to_end_tests/retransmission_tests.cc
+++ b/video/end_to_end_tests/retransmission_tests.cc
@@ -8,6 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
+#include "api/test/simulated_network.h"
#include "modules/video_coding/codecs/vp8/include/vp8.h"
#include "system_wrappers/include/sleep.h"
#include "test/call_test.h"
@@ -137,7 +138,7 @@
test::SingleThreadedTaskQueueForTesting* task_queue) override {
test::PacketTransport* receive_transport = new test::PacketTransport(
task_queue, nullptr, this, test::PacketTransport::kReceiver,
- payload_type_map_, FakeNetworkPipe::Config());
+ payload_type_map_, DefaultNetworkSimulationConfig());
receive_transport_ = receive_transport;
return receive_transport;
}
diff --git a/video/end_to_end_tests/rtp_rtcp_tests.cc b/video/end_to_end_tests/rtp_rtcp_tests.cc
index c8eb802..c974065 100644
--- a/video/end_to_end_tests/rtp_rtcp_tests.cc
+++ b/video/end_to_end_tests/rtp_rtcp_tests.cc
@@ -8,6 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
+#include "api/test/simulated_network.h"
#include "modules/video_coding/codecs/vp8/include/vp8.h"
#include "test/call_test.h"
#include "test/gtest.h"
@@ -277,10 +278,10 @@
send_transport = absl::make_unique<test::PacketTransport>(
&task_queue_, sender_call_.get(), &observer,
test::PacketTransport::kSender, payload_type_map_,
- FakeNetworkPipe::Config());
+ DefaultNetworkSimulationConfig());
receive_transport = absl::make_unique<test::PacketTransport>(
&task_queue_, nullptr, &observer, test::PacketTransport::kReceiver,
- payload_type_map_, FakeNetworkPipe::Config());
+ payload_type_map_, DefaultNetworkSimulationConfig());
send_transport->SetReceiver(receiver_call_->Receiver());
receive_transport->SetReceiver(sender_call_->Receiver());
@@ -465,7 +466,7 @@
task_queue_.SendTask([&]() {
CreateCalls();
- FakeNetworkPipe::Config lossy_delayed_link;
+ DefaultNetworkSimulationConfig lossy_delayed_link;
lossy_delayed_link.loss_percent = 2;
lossy_delayed_link.queue_delay_ms = 50;
@@ -474,7 +475,7 @@
test::PacketTransport::kSender, payload_type_map_, lossy_delayed_link);
send_transport->SetReceiver(receiver_call_->Receiver());
- FakeNetworkPipe::Config flawless_link;
+ DefaultNetworkSimulationConfig flawless_link;
receive_transport = absl::make_unique<test::PacketTransport>(
&task_queue_, nullptr, &observer, test::PacketTransport::kReceiver,
payload_type_map_, flawless_link);
diff --git a/video/end_to_end_tests/stats_tests.cc b/video/end_to_end_tests/stats_tests.cc
index ae25911..c1b45b0 100644
--- a/video/end_to_end_tests/stats_tests.cc
+++ b/video/end_to_end_tests/stats_tests.cc
@@ -8,6 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
+#include "api/test/simulated_network.h"
#include "modules/rtp_rtcp/source/rtp_utility.h"
#include "modules/video_coding/include/video_coding_defines.h"
#include "system_wrappers/include/metrics.h"
@@ -228,7 +229,7 @@
test::PacketTransport* CreateSendTransport(
test::SingleThreadedTaskQueueForTesting* task_queue,
Call* sender_call) override {
- FakeNetworkPipe::Config network_config;
+ DefaultNetworkSimulationConfig network_config;
network_config.loss_percent = 5;
return new test::PacketTransport(task_queue, sender_call, this,
test::PacketTransport::kSender,
@@ -707,7 +708,7 @@
std::unique_ptr<test::DirectTransport> receiver_transport;
task_queue_.SendTask([this, &sender_transport, &receiver_transport]() {
- FakeNetworkPipe::Config config;
+ DefaultNetworkSimulationConfig config;
config.queue_delay_ms = kSendDelayMs;
CreateCalls();
sender_transport = absl::make_unique<test::DirectTransport>(
diff --git a/video/picture_id_tests.cc b/video/picture_id_tests.cc
index 3c43d7d..60f11ca 100644
--- a/video/picture_id_tests.cc
+++ b/video/picture_id_tests.cc
@@ -7,6 +7,8 @@
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
+
+#include "api/test/simulated_network.h"
#include "media/engine/internalencoderfactory.h"
#include "media/engine/simulcast_encoder_adapter.h"
#include "modules/rtp_rtcp/source/rtp_format.h"
@@ -290,7 +292,7 @@
send_transport_.reset(new test::PacketTransport(
&task_queue_, sender_call_.get(), observer_.get(),
test::PacketTransport::kSender, payload_type_map_,
- FakeNetworkPipe::Config()));
+ DefaultNetworkSimulationConfig()));
CreateSendConfig(kNumSimulcastStreams, 0, 0, send_transport_.get());
GetVideoSendConfig()->encoder_settings.encoder_factory = encoder_factory;
diff --git a/video/video_send_stream_tests.cc b/video/video_send_stream_tests.cc
index 4bf5b99..7a2ded0 100644
--- a/video/video_send_stream_tests.cc
+++ b/video/video_send_stream_tests.cc
@@ -11,6 +11,7 @@
#include <memory>
#include <vector>
+#include "api/test/simulated_network.h"
#include "call/call.h"
#include "call/rtp_transport_controller_send.h"
#include "common_video/include/frame_callback.h"
@@ -524,7 +525,7 @@
// At low RTT (< kLowRttNackMs) -> NACK only, no FEC.
// Configure some network delay.
const int kNetworkDelayMs = 100;
- FakeNetworkPipe::Config config;
+ DefaultNetworkSimulationConfig config;
config.loss_percent = 5;
config.queue_delay_ms = kNetworkDelayMs;
return new test::PacketTransport(
@@ -711,7 +712,7 @@
// At low RTT (< kLowRttNackMs) -> NACK only, no FEC.
// Therefore we need some network delay.
const int kNetworkDelayMs = 100;
- FakeNetworkPipe::Config config;
+ DefaultNetworkSimulationConfig config;
config.loss_percent = 5;
config.queue_delay_ms = kNetworkDelayMs;
return new test::PacketTransport(
@@ -1455,7 +1456,7 @@
test::SingleThreadedTaskQueueForTesting* task_queue,
Call* sender_call) override {
const int kNetworkDelayMs = 50;
- FakeNetworkPipe::Config config;
+ DefaultNetworkSimulationConfig config;
config.loss_percent = 10;
config.link_capacity_kbps = kCapacityKbps;
config.queue_delay_ms = kNetworkDelayMs;