diff --git a/call/BUILD.gn b/call/BUILD.gn index 3ec2a2c1ae..e71ca5b079 100644 --- a/call/BUILD.gn +++ b/call/BUILD.gn @@ -319,6 +319,7 @@ if (rtc_include_tests) { ":rtp_interfaces", ":rtp_receiver", ":rtp_sender", + ":simulated_network", "..:webrtc_common", "../api:array_view", "../api:libjingle_peerconnection_api", diff --git a/call/bitrate_estimator_tests.cc b/call/bitrate_estimator_tests.cc index b3f7856ca3..1dcac63569 100644 --- a/call/bitrate_estimator_tests.cc +++ b/call/bitrate_estimator_tests.cc @@ -13,6 +13,8 @@ #include #include "call/call.h" +#include "call/fake_network_pipe.h" +#include "call/simulated_network.h" #include "rtc_base/checks.h" #include "rtc_base/event.h" #include "rtc_base/logging.h" @@ -106,10 +108,18 @@ class BitrateEstimatorTest : public test::CallTest { CreateCalls(); send_transport_.reset(new test::DirectTransport( - &task_queue_, sender_call_.get(), payload_type_map_)); + &task_queue_, + absl::make_unique( + Clock::GetRealTimeClock(), absl::make_unique( + DefaultNetworkSimulationConfig())), + sender_call_.get(), payload_type_map_)); send_transport_->SetReceiver(receiver_call_->Receiver()); receive_transport_.reset(new test::DirectTransport( - &task_queue_, receiver_call_.get(), payload_type_map_)); + &task_queue_, + absl::make_unique( + Clock::GetRealTimeClock(), absl::make_unique( + DefaultNetworkSimulationConfig())), + receiver_call_.get(), payload_type_map_)); receive_transport_->SetReceiver(sender_call_->Receiver()); VideoSendStream::Config video_send_config(send_transport_.get()); diff --git a/test/direct_transport.h b/test/direct_transport.h index eabaa94e89..f47f1b9bfb 100644 --- a/test/direct_transport.h +++ b/test/direct_transport.h @@ -42,10 +42,18 @@ class Demuxer { // same task-queue - the one that's passed in via the constructor. class DirectTransport : public Transport { public: + // Deprecated. DO NOT USE. Use the constructor that takes an + // explicit pipe instead.Because there can be different ways to simulated + // underlying network passing implementation specific config to the transport + // constructor makes no sense. DirectTransport(SingleThreadedTaskQueueForTesting* task_queue, Call* send_call, const std::map& payload_type_map); + // Deprecated. DO NOT USE. Use the constructor that takes an + // explicit pipe instead.Because there can be different ways to simulated + // underlying network passing implementation specific config to the transport + // constructor makes no sense. DirectTransport(SingleThreadedTaskQueueForTesting* task_queue, const DefaultNetworkSimulationConfig& config, Call* send_call, diff --git a/video/BUILD.gn b/video/BUILD.gn index 5901fb98b0..d2a52fb536 100644 --- a/video/BUILD.gn +++ b/video/BUILD.gn @@ -206,6 +206,7 @@ if (rtc_include_tests) { "../api:fec_controller_api", "../api:video_quality_test_fixture_api", "../call:fake_network", + "../call:simulated_network", "../logging:rtc_event_log_api", "../logging:rtc_event_log_impl_output", "../media:rtc_audio_video", @@ -429,10 +430,12 @@ if (rtc_include_tests) { "../api/video:video_frame_i420", "../api/video_codecs:video_codecs_api", "../call:call_interfaces", + "../call:fake_network", "../call:mock_bitrate_allocator", "../call:mock_rtp_interfaces", "../call:rtp_receiver", "../call:rtp_sender", + "../call:simulated_network", "../call:video_stream_api", "../common_video", "../logging:rtc_event_log_api", diff --git a/video/end_to_end_tests/call_operation_tests.cc b/video/end_to_end_tests/call_operation_tests.cc index 1861058fbb..87f0ba3ee9 100644 --- a/video/end_to_end_tests/call_operation_tests.cc +++ b/video/end_to_end_tests/call_operation_tests.cc @@ -8,6 +8,9 @@ * be found in the AUTHORS file in the root of the source tree. */ +#include "api/test/simulated_network.h" +#include "call/fake_network_pipe.h" +#include "call/simulated_network.h" #include "system_wrappers/include/sleep.h" #include "test/call_test.h" #include "test/field_trial.h" @@ -111,9 +114,17 @@ TEST_P(CallOperationEndToEndTest, RendersSingleDelayedFrame) { CreateCalls(); sender_transport = absl::make_unique( - &task_queue_, sender_call_.get(), payload_type_map_); + &task_queue_, + absl::make_unique( + Clock::GetRealTimeClock(), absl::make_unique( + DefaultNetworkSimulationConfig())), + sender_call_.get(), payload_type_map_); receiver_transport = absl::make_unique( - &task_queue_, receiver_call_.get(), payload_type_map_); + &task_queue_, + absl::make_unique( + Clock::GetRealTimeClock(), absl::make_unique( + DefaultNetworkSimulationConfig())), + receiver_call_.get(), payload_type_map_); sender_transport->SetReceiver(receiver_call_->Receiver()); receiver_transport->SetReceiver(sender_call_->Receiver()); @@ -171,9 +182,17 @@ TEST_P(CallOperationEndToEndTest, TransmitsFirstFrame) { CreateCalls(); sender_transport = absl::make_unique( - &task_queue_, sender_call_.get(), payload_type_map_); + &task_queue_, + absl::make_unique( + Clock::GetRealTimeClock(), absl::make_unique( + DefaultNetworkSimulationConfig())), + sender_call_.get(), payload_type_map_); receiver_transport = absl::make_unique( - &task_queue_, receiver_call_.get(), payload_type_map_); + &task_queue_, + absl::make_unique( + Clock::GetRealTimeClock(), absl::make_unique( + DefaultNetworkSimulationConfig())), + receiver_call_.get(), payload_type_map_); sender_transport->SetReceiver(receiver_call_->Receiver()); receiver_transport->SetReceiver(sender_call_->Receiver()); @@ -238,9 +257,17 @@ TEST_P(CallOperationEndToEndTest, ObserversEncodedFrames) { CreateCalls(); sender_transport = absl::make_unique( - &task_queue_, sender_call_.get(), payload_type_map_); + &task_queue_, + absl::make_unique( + Clock::GetRealTimeClock(), absl::make_unique( + DefaultNetworkSimulationConfig())), + sender_call_.get(), payload_type_map_); receiver_transport = absl::make_unique( - &task_queue_, receiver_call_.get(), payload_type_map_); + &task_queue_, + absl::make_unique( + Clock::GetRealTimeClock(), absl::make_unique( + DefaultNetworkSimulationConfig())), + receiver_call_.get(), payload_type_map_); sender_transport->SetReceiver(receiver_call_->Receiver()); receiver_transport->SetReceiver(sender_call_->Receiver()); diff --git a/video/end_to_end_tests/multi_stream_tester.cc b/video/end_to_end_tests/multi_stream_tester.cc index 57387aa417..c4f99e68c1 100644 --- a/video/end_to_end_tests/multi_stream_tester.cc +++ b/video/end_to_end_tests/multi_stream_tester.cc @@ -14,6 +14,9 @@ #include #include +#include "api/test/simulated_network.h" +#include "call/fake_network_pipe.h" +#include "call/simulated_network.h" #include "logging/rtc_event_log/rtc_event_log.h" #include "modules/video_coding/codecs/vp8/include/vp8.h" #include "test/call_test.h" @@ -138,13 +141,22 @@ void MultiStreamTester::UpdateReceiveConfig( test::DirectTransport* MultiStreamTester::CreateSendTransport( test::SingleThreadedTaskQueueForTesting* task_queue, Call* sender_call) { - return new test::DirectTransport(task_queue, sender_call, payload_type_map_); + return new test::DirectTransport( + task_queue, + absl::make_unique(Clock::GetRealTimeClock(), + absl::make_unique( + DefaultNetworkSimulationConfig())), + sender_call, payload_type_map_); } test::DirectTransport* MultiStreamTester::CreateReceiveTransport( test::SingleThreadedTaskQueueForTesting* task_queue, Call* receiver_call) { - return new test::DirectTransport(task_queue, receiver_call, - payload_type_map_); + return new test::DirectTransport( + task_queue, + absl::make_unique(Clock::GetRealTimeClock(), + absl::make_unique( + DefaultNetworkSimulationConfig())), + receiver_call, payload_type_map_); } } // namespace webrtc diff --git a/video/end_to_end_tests/network_state_tests.cc b/video/end_to_end_tests/network_state_tests.cc index 8d681612ba..59c2b51027 100644 --- a/video/end_to_end_tests/network_state_tests.cc +++ b/video/end_to_end_tests/network_state_tests.cc @@ -8,6 +8,9 @@ * be found in the AUTHORS file in the root of the source tree. */ +#include "api/test/simulated_network.h" +#include "call/fake_network_pipe.h" +#include "call/simulated_network.h" #include "system_wrappers/include/sleep.h" #include "test/call_test.h" #include "test/encoder_proxy_factory.h" @@ -114,7 +117,11 @@ void NetworkStateEndToEndTest::VerifyNewVideoReceiveStreamsRespectNetworkState( CreateCalls(); receiver_call_->SignalChannelNetworkState(network_to_bring_up, kNetworkUp); sender_transport = absl::make_unique( - &task_queue_, sender_call_.get(), payload_type_map_); + &task_queue_, + absl::make_unique( + Clock::GetRealTimeClock(), absl::make_unique( + DefaultNetworkSimulationConfig())), + sender_call_.get(), payload_type_map_); sender_transport->SetReceiver(receiver_call_->Receiver()); CreateSendConfig(1, 0, 0, sender_transport.get()); CreateMatchingReceiveConfigs(transport); diff --git a/video/end_to_end_tests/ssrc_tests.cc b/video/end_to_end_tests/ssrc_tests.cc index 69aafec5c8..c03b49477d 100644 --- a/video/end_to_end_tests/ssrc_tests.cc +++ b/video/end_to_end_tests/ssrc_tests.cc @@ -8,6 +8,9 @@ * be found in the AUTHORS file in the root of the source tree. */ +#include "api/test/simulated_network.h" +#include "call/fake_network_pipe.h" +#include "call/simulated_network.h" #include "test/call_test.h" #include "test/gtest.h" #include "test/rtcp_packet_parser.h" @@ -78,9 +81,17 @@ TEST_F(SsrcEndToEndTest, UnknownRtpPacketGivesUnknownSsrcReturnCode) { CreateCalls(); send_transport = absl::make_unique( - &task_queue_, sender_call_.get(), payload_type_map_); + &task_queue_, + absl::make_unique( + Clock::GetRealTimeClock(), absl::make_unique( + DefaultNetworkSimulationConfig())), + sender_call_.get(), payload_type_map_); receive_transport = absl::make_unique( - &task_queue_, receiver_call_.get(), payload_type_map_); + &task_queue_, + absl::make_unique( + Clock::GetRealTimeClock(), absl::make_unique( + DefaultNetworkSimulationConfig())), + receiver_call_.get(), payload_type_map_); input_observer = absl::make_unique(receiver_call_->Receiver()); send_transport->SetReceiver(input_observer.get()); diff --git a/video/end_to_end_tests/stats_tests.cc b/video/end_to_end_tests/stats_tests.cc index c1b45b0bc7..3f40cdea3e 100644 --- a/video/end_to_end_tests/stats_tests.cc +++ b/video/end_to_end_tests/stats_tests.cc @@ -9,6 +9,8 @@ */ #include "api/test/simulated_network.h" +#include "call/fake_network_pipe.h" +#include "call/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" @@ -712,10 +714,18 @@ TEST_F(StatsEndToEndTest, CallReportsRttForSender) { config.queue_delay_ms = kSendDelayMs; CreateCalls(); sender_transport = absl::make_unique( - &task_queue_, config, sender_call_.get(), payload_type_map_); + &task_queue_, + absl::make_unique( + Clock::GetRealTimeClock(), + absl::make_unique(config)), + sender_call_.get(), payload_type_map_); config.queue_delay_ms = kReceiveDelayMs; receiver_transport = absl::make_unique( - &task_queue_, config, receiver_call_.get(), payload_type_map_); + &task_queue_, + absl::make_unique( + Clock::GetRealTimeClock(), + absl::make_unique(config)), + receiver_call_.get(), payload_type_map_); sender_transport->SetReceiver(receiver_call_->Receiver()); receiver_transport->SetReceiver(sender_call_->Receiver()); diff --git a/video/end_to_end_tests/transport_feedback_tests.cc b/video/end_to_end_tests/transport_feedback_tests.cc index 525e661e73..d7a53e0192 100644 --- a/video/end_to_end_tests/transport_feedback_tests.cc +++ b/video/end_to_end_tests/transport_feedback_tests.cc @@ -8,6 +8,9 @@ * be found in the AUTHORS file in the root of the source tree. */ +#include "call/call.h" +#include "call/fake_network_pipe.h" +#include "call/simulated_network.h" #include "test/call_test.h" #include "test/field_trial.h" #include "test/gtest.h" @@ -49,7 +52,13 @@ TEST_P(TransportFeedbackEndToEndTest, AssignsTransportSequenceNumbers) { const uint32_t& first_media_ssrc, const std::map& ssrc_map, const std::map& payload_type_map) - : DirectTransport(task_queue, sender_call, payload_type_map), + : DirectTransport(task_queue, + absl::make_unique( + Clock::GetRealTimeClock(), + absl::make_unique( + DefaultNetworkSimulationConfig())), + sender_call, + payload_type_map), done_(false, false), parser_(RtpHeaderParser::Create()), first_media_ssrc_(first_media_ssrc), diff --git a/video/video_quality_test.cc b/video/video_quality_test.cc index c5bd57e0ee..df23a8ba60 100644 --- a/video/video_quality_test.cc +++ b/video/video_quality_test.cc @@ -17,6 +17,8 @@ #include #include +#include "call/fake_network_pipe.h" +#include "call/simulated_network.h" #include "logging/rtc_event_log/output/rtc_event_log_output_file.h" #include "media/engine/internalencoderfactory.h" #include "media/engine/vp8_encoder_simulcast_proxy.h" @@ -800,7 +802,11 @@ VideoQualityTest::CreateSendTransport() { std::unique_ptr VideoQualityTest::CreateReceiveTransport() { return absl::make_unique( - &task_queue_, params_.pipe, receiver_call_.get(), payload_type_map_); + &task_queue_, + absl::make_unique( + Clock::GetRealTimeClock(), + absl::make_unique(params_.pipe)), + receiver_call_.get(), payload_type_map_); } void VideoQualityTest::RunWithAnalyzer(const Params& params) {