From dd2eebef5e578877b2ddaccef4aafa360c7e288f Mon Sep 17 00:00:00 2001 From: Artem Titov Date: Mon, 20 Aug 2018 13:27:45 +0200 Subject: [PATCH] Deprecate two DirectTransport ctors and remove their direct usage. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Because DirectTransport is switched on SimulatedPacketReceiverInterface we can't create it from some specific config in ctor, so all ctors, that accept specific config are deprecated and you should pass concrete implementation of underlying implememntation instead. Bug: webrtc:9630 Change-Id: I7f241f310c993d8136b40898e55a6915924d61bd Reviewed-on: https://webrtc-review.googlesource.com/94841 Reviewed-by: Sebastian Jansson Reviewed-by: Patrik Höglund Commit-Queue: Artem Titov Cr-Commit-Position: refs/heads/master@{#24344} --- call/BUILD.gn | 1 + call/bitrate_estimator_tests.cc | 14 ++++++- test/direct_transport.h | 8 ++++ video/BUILD.gn | 3 ++ .../end_to_end_tests/call_operation_tests.cc | 39 ++++++++++++++++--- video/end_to_end_tests/multi_stream_tester.cc | 18 +++++++-- video/end_to_end_tests/network_state_tests.cc | 9 ++++- video/end_to_end_tests/ssrc_tests.cc | 15 ++++++- video/end_to_end_tests/stats_tests.cc | 14 ++++++- .../transport_feedback_tests.cc | 11 +++++- video/video_quality_test.cc | 8 +++- 11 files changed, 122 insertions(+), 18 deletions(-) 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) {