From 9c47b00e24da2941eb095df5a4459c6d98a8a88d Mon Sep 17 00:00:00 2001 From: nisse Date: Tue, 28 Mar 2017 04:59:41 -0700 Subject: [PATCH] Don't hardcode MediaType::ANY in FakeNetworkPipe. Instead let each test set the appropriate media type. This simplifies demuxing in Call and later in RtpTransportController. BUG=webrtc:7135 Review-Url: https://codereview.webrtc.org/2774463003 Cr-Commit-Position: refs/heads/master@{#17418} --- webrtc/audio/test/low_bandwidth_audio_test.cc | 4 +- webrtc/call/bitrate_estimator_tests.cc | 6 ++- webrtc/call/call.cc | 8 +-- webrtc/call/call_perf_tests.cc | 9 +++- webrtc/call/rampup_tests.cc | 1 + webrtc/media/engine/fakewebrtccall.cc | 9 ++-- webrtc/test/call_test.cc | 2 + webrtc/test/call_test.h | 1 + webrtc/test/direct_transport.cc | 8 +-- webrtc/test/direct_transport.h | 15 ++++-- webrtc/test/fake_network_pipe.cc | 9 ++-- webrtc/test/fake_network_pipe.h | 7 ++- webrtc/test/fake_network_pipe_unittest.cc | 52 +++++++++---------- webrtc/test/layer_filtering_transport.cc | 2 +- webrtc/test/rtp_rtcp_observer.h | 3 +- webrtc/video/end_to_end_tests.cc | 51 ++++++++++++------ webrtc/video/replay.cc | 4 +- webrtc/video/video_quality_test.cc | 3 +- webrtc/video/video_send_stream_tests.cc | 9 ++-- 19 files changed, 128 insertions(+), 75 deletions(-) diff --git a/webrtc/audio/test/low_bandwidth_audio_test.cc b/webrtc/audio/test/low_bandwidth_audio_test.cc index c1b1a02235..50d7e674e8 100644 --- a/webrtc/audio/test/low_bandwidth_audio_test.cc +++ b/webrtc/audio/test/low_bandwidth_audio_test.cc @@ -80,12 +80,14 @@ test::PacketTransport* AudioQualityTest::CreateSendTransport( Call* sender_call) { return new test::PacketTransport( sender_call, this, test::PacketTransport::kSender, + MediaType::AUDIO, GetNetworkPipeConfig()); } test::PacketTransport* AudioQualityTest::CreateReceiveTransport() { return new test::PacketTransport(nullptr, this, - test::PacketTransport::kReceiver, GetNetworkPipeConfig()); + test::PacketTransport::kReceiver, MediaType::AUDIO, + GetNetworkPipeConfig()); } void AudioQualityTest::ModifyAudioConfigs( diff --git a/webrtc/call/bitrate_estimator_tests.cc b/webrtc/call/bitrate_estimator_tests.cc index bb4960f658..00a3b9e833 100644 --- a/webrtc/call/bitrate_estimator_tests.cc +++ b/webrtc/call/bitrate_estimator_tests.cc @@ -108,9 +108,11 @@ class BitrateEstimatorTest : public test::CallTest { receiver_call_.reset(Call::Create(config)); sender_call_.reset(Call::Create(config)); - send_transport_.reset(new test::DirectTransport(sender_call_.get())); + send_transport_.reset( + new test::DirectTransport(sender_call_.get(), MediaType::VIDEO)); send_transport_->SetReceiver(receiver_call_->Receiver()); - receive_transport_.reset(new test::DirectTransport(receiver_call_.get())); + receive_transport_.reset( + new test::DirectTransport(receiver_call_.get(), MediaType::VIDEO)); receive_transport_->SetReceiver(sender_call_->Receiver()); video_send_config_ = VideoSendStream::Config(send_transport_.get()); diff --git a/webrtc/call/call.cc b/webrtc/call/call.cc index 94acc9ff9d..6e4063825f 100644 --- a/webrtc/call/call.cc +++ b/webrtc/call/call.cc @@ -1221,6 +1221,8 @@ PacketReceiver::DeliveryStatus Call::DeliverRtp(MediaType media_type, const PacketTime& packet_time) { TRACE_EVENT0("webrtc", "Call::DeliverRtp"); + RTC_DCHECK(media_type == MediaType::AUDIO || media_type == MediaType::VIDEO); + ReadLockScoped read_lock(*receive_crit_); // TODO(nisse): We should parse the RTP header only here, and pass // on parsed_packet to the receive streams. @@ -1234,7 +1236,7 @@ PacketReceiver::DeliveryStatus Call::DeliverRtp(MediaType media_type, uint32_t ssrc = parsed_packet->Ssrc(); - if (media_type == MediaType::ANY || media_type == MediaType::AUDIO) { + if (media_type == MediaType::AUDIO) { auto it = audio_receive_ssrcs_.find(ssrc); if (it != audio_receive_ssrcs_.end()) { received_bytes_per_second_counter_.Add(static_cast(length)); @@ -1244,7 +1246,7 @@ PacketReceiver::DeliveryStatus Call::DeliverRtp(MediaType media_type, return DELIVERY_OK; } } - if (media_type == MediaType::ANY || media_type == MediaType::VIDEO) { + if (media_type == MediaType::VIDEO) { auto it = video_receive_ssrcs_.find(ssrc); if (it != video_receive_ssrcs_.end()) { received_bytes_per_second_counter_.Add(static_cast(length)); @@ -1260,7 +1262,7 @@ PacketReceiver::DeliveryStatus Call::DeliverRtp(MediaType media_type, return DELIVERY_OK; } } - if (media_type == MediaType::ANY || media_type == MediaType::VIDEO) { + if (media_type == MediaType::VIDEO) { received_bytes_per_second_counter_.Add(static_cast(length)); // TODO(brandtr): Update here when FlexFEC supports protecting audio. received_video_bytes_per_second_counter_.Add(static_cast(length)); diff --git a/webrtc/call/call_perf_tests.cc b/webrtc/call/call_perf_tests.cc index bd5ab0ff25..d62bec1490 100644 --- a/webrtc/call/call_perf_tests.cc +++ b/webrtc/call/call_perf_tests.cc @@ -193,6 +193,7 @@ void CallPerfTest::TestAudioVideoSync(FecMode fec, audio_net_config.loss_percent = 5; test::PacketTransport audio_send_transport(sender_call_.get(), &observer, test::PacketTransport::kSender, + MediaType::AUDIO, audio_net_config); MediaTypePacketReceiver audio_receiver(receiver_call_->Receiver(), MediaType::AUDIO); @@ -200,6 +201,7 @@ void CallPerfTest::TestAudioVideoSync(FecMode fec, test::PacketTransport video_send_transport(sender_call_.get(), &observer, test::PacketTransport::kSender, + MediaType::VIDEO, FakeNetworkPipe::Config()); MediaTypePacketReceiver video_receiver(receiver_call_->Receiver(), MediaType::VIDEO); @@ -207,6 +209,7 @@ void CallPerfTest::TestAudioVideoSync(FecMode fec, test::PacketTransport receive_transport( receiver_call_.get(), &observer, test::PacketTransport::kReceiver, + MediaType::VIDEO, FakeNetworkPipe::Config()); receive_transport.SetReceiver(sender_call_->Receiver()); @@ -343,12 +346,14 @@ void CallPerfTest::TestCaptureNtpTime(const FakeNetworkPipe::Config& net_config, private: test::PacketTransport* CreateSendTransport(Call* sender_call) override { return new test::PacketTransport( - sender_call, this, test::PacketTransport::kSender, net_config_); + sender_call, this, test::PacketTransport::kSender, MediaType::VIDEO, + net_config_); } test::PacketTransport* CreateReceiveTransport() override { return new test::PacketTransport( - nullptr, this, test::PacketTransport::kReceiver, net_config_); + nullptr, this, test::PacketTransport::kReceiver, MediaType::VIDEO, + net_config_); } void OnFrame(const VideoFrame& video_frame) override { diff --git a/webrtc/call/rampup_tests.cc b/webrtc/call/rampup_tests.cc index 292edc6083..cc417276db 100644 --- a/webrtc/call/rampup_tests.cc +++ b/webrtc/call/rampup_tests.cc @@ -92,6 +92,7 @@ void RampUpTester::OnVideoStreamsCreated( test::PacketTransport* RampUpTester::CreateSendTransport(Call* sender_call) { send_transport_ = new test::PacketTransport(sender_call, this, test::PacketTransport::kSender, + MediaType::AUDIO, forward_transport_config_); return send_transport_; } diff --git a/webrtc/media/engine/fakewebrtccall.cc b/webrtc/media/engine/fakewebrtccall.cc index 9a05ae67e4..f442a3cc61 100644 --- a/webrtc/media/engine/fakewebrtccall.cc +++ b/webrtc/media/engine/fakewebrtccall.cc @@ -520,19 +520,20 @@ FakeCall::DeliveryStatus FakeCall::DeliverPacket( size_t length, const webrtc::PacketTime& packet_time) { EXPECT_GE(length, 12u); + RTC_DCHECK(media_type == webrtc::MediaType::AUDIO || + media_type == webrtc::MediaType::VIDEO); + uint32_t ssrc; if (!GetRtpSsrc(packet, length, &ssrc)) return DELIVERY_PACKET_ERROR; - if (media_type == webrtc::MediaType::ANY || - media_type == webrtc::MediaType::VIDEO) { + if (media_type == webrtc::MediaType::VIDEO) { for (auto receiver : video_receive_streams_) { if (receiver->GetConfig().rtp.remote_ssrc == ssrc) return DELIVERY_OK; } } - if (media_type == webrtc::MediaType::ANY || - media_type == webrtc::MediaType::AUDIO) { + if (media_type == webrtc::MediaType::AUDIO) { for (auto receiver : audio_receive_streams_) { if (receiver->GetConfig().rtp.remote_ssrc == ssrc) { receiver->DeliverRtp(packet, length, packet_time); diff --git a/webrtc/test/call_test.cc b/webrtc/test/call_test.cc index ad55421f66..290a9431de 100644 --- a/webrtc/test/call_test.cc +++ b/webrtc/test/call_test.cc @@ -458,11 +458,13 @@ void BaseTest::OnCallsCreated(Call* sender_call, Call* receiver_call) { test::PacketTransport* BaseTest::CreateSendTransport(Call* sender_call) { return new PacketTransport(sender_call, this, test::PacketTransport::kSender, + MediaType::VIDEO, FakeNetworkPipe::Config()); } test::PacketTransport* BaseTest::CreateReceiveTransport() { return new PacketTransport(nullptr, this, test::PacketTransport::kReceiver, + MediaType::VIDEO, FakeNetworkPipe::Config()); } diff --git a/webrtc/test/call_test.h b/webrtc/test/call_test.h index 78fbbfbe43..c2ea47aee7 100644 --- a/webrtc/test/call_test.h +++ b/webrtc/test/call_test.h @@ -172,6 +172,7 @@ class BaseTest : public RtpRtcpObserver { virtual Call::Config GetReceiverCallConfig(); virtual void OnCallsCreated(Call* sender_call, Call* receiver_call); + // The default implementation creates MediaType::VIDEO transports. virtual test::PacketTransport* CreateSendTransport(Call* sender_call); virtual test::PacketTransport* CreateReceiveTransport(); diff --git a/webrtc/test/direct_transport.cc b/webrtc/test/direct_transport.cc index 922874d111..90531eadfa 100644 --- a/webrtc/test/direct_transport.cc +++ b/webrtc/test/direct_transport.cc @@ -15,17 +15,17 @@ namespace webrtc { namespace test { -DirectTransport::DirectTransport(Call* send_call) - : DirectTransport(FakeNetworkPipe::Config(), send_call) {} +DirectTransport::DirectTransport(Call* send_call, MediaType media_type) + : DirectTransport(FakeNetworkPipe::Config(), send_call, media_type) {} DirectTransport::DirectTransport(const FakeNetworkPipe::Config& config, - Call* send_call) + Call* send_call, MediaType media_type) : send_call_(send_call), packet_event_(false, false), thread_(NetworkProcess, this, "NetworkProcess"), clock_(Clock::GetRealTimeClock()), shutting_down_(false), - fake_network_(clock_, config) { + fake_network_(clock_, config, media_type) { thread_.Start(); if (send_call_) { send_call_->SignalChannelNetworkState(MediaType::AUDIO, kNetworkUp); diff --git a/webrtc/test/direct_transport.h b/webrtc/test/direct_transport.h index eb552c57c8..20a6857182 100644 --- a/webrtc/test/direct_transport.h +++ b/webrtc/test/direct_transport.h @@ -18,11 +18,11 @@ #include "webrtc/base/criticalsection.h" #include "webrtc/base/event.h" #include "webrtc/base/platform_thread.h" +#include "webrtc/call/call.h" #include "webrtc/test/fake_network_pipe.h" namespace webrtc { -class Call; class Clock; class PacketReceiver; @@ -30,8 +30,17 @@ namespace test { class DirectTransport : public Transport { public: - explicit DirectTransport(Call* send_call); - DirectTransport(const FakeNetworkPipe::Config& config, Call* send_call); + DirectTransport(Call* send_call, MediaType media_type); + DirectTransport(const FakeNetworkPipe::Config& config, Call* send_call, + MediaType media_type); + // These deprecated variants always use MediaType::VIDEO. + RTC_DEPRECATED explicit DirectTransport(Call* send_call) + : DirectTransport(send_call, MediaType::VIDEO) {} + + RTC_DEPRECATED DirectTransport(const FakeNetworkPipe::Config& config, + Call* send_call) + : DirectTransport(config, send_call, MediaType::VIDEO) {} + ~DirectTransport(); void SetConfig(const FakeNetworkPipe::Config& config); diff --git a/webrtc/test/fake_network_pipe.cc b/webrtc/test/fake_network_pipe.cc index 8f2fee6c2c..103416779a 100644 --- a/webrtc/test/fake_network_pipe.cc +++ b/webrtc/test/fake_network_pipe.cc @@ -28,13 +28,16 @@ constexpr int64_t kDefaultProcessIntervalMs = 5; } FakeNetworkPipe::FakeNetworkPipe(Clock* clock, - const FakeNetworkPipe::Config& config) - : FakeNetworkPipe(clock, config, 1) {} + const FakeNetworkPipe::Config& config, + MediaType media_type) + : FakeNetworkPipe(clock, config, media_type, 1) {} FakeNetworkPipe::FakeNetworkPipe(Clock* clock, const FakeNetworkPipe::Config& config, + MediaType media_type, uint64_t seed) : clock_(clock), + media_type_(media_type), packet_receiver_(NULL), random_(seed), config_(), @@ -199,7 +202,7 @@ void FakeNetworkPipe::Process() { while (!packets_to_deliver.empty()) { NetworkPacket* packet = packets_to_deliver.front(); packets_to_deliver.pop(); - packet_receiver_->DeliverPacket(MediaType::ANY, packet->data(), + packet_receiver_->DeliverPacket(media_type_, packet->data(), packet->data_length(), PacketTime()); delete packet; } diff --git a/webrtc/test/fake_network_pipe.h b/webrtc/test/fake_network_pipe.h index 0c73e85e1e..adf76c3a7b 100644 --- a/webrtc/test/fake_network_pipe.h +++ b/webrtc/test/fake_network_pipe.h @@ -25,6 +25,7 @@ namespace webrtc { class Clock; class PacketReceiver; +enum class MediaType; class NetworkPacket { public: @@ -82,9 +83,10 @@ class FakeNetworkPipe { int avg_burst_loss_length = -1; }; - FakeNetworkPipe(Clock* clock, const FakeNetworkPipe::Config& config); + FakeNetworkPipe(Clock* clock, const FakeNetworkPipe::Config& config, + MediaType media_type); FakeNetworkPipe(Clock* clock, - const FakeNetworkPipe::Config& config, + const FakeNetworkPipe::Config& config, MediaType media_type, uint64_t seed); ~FakeNetworkPipe(); @@ -110,6 +112,7 @@ class FakeNetworkPipe { private: Clock* const clock_; + const MediaType media_type_; rtc::CriticalSection lock_; PacketReceiver* packet_receiver_; std::queue capacity_link_; diff --git a/webrtc/test/fake_network_pipe_unittest.cc b/webrtc/test/fake_network_pipe_unittest.cc index aa27399594..c19b0014bb 100644 --- a/webrtc/test/fake_network_pipe_unittest.cc +++ b/webrtc/test/fake_network_pipe_unittest.cc @@ -96,7 +96,7 @@ TEST_F(FakeNetworkPipeTest, CapacityTest) { config.queue_length_packets = 20; config.link_capacity_kbps = 80; std::unique_ptr pipe( - new FakeNetworkPipe(&fake_clock_, config)); + new FakeNetworkPipe(&fake_clock_, config, MediaType::VIDEO)); pipe->SetReceiver(receiver_.get()); // Add 10 packets of 1000 bytes, = 80 kb, and verify it takes one second to @@ -110,22 +110,22 @@ TEST_F(FakeNetworkPipeTest, CapacityTest) { kPacketSize); // Time haven't increased yet, so we souldn't get any packets. - EXPECT_CALL(*receiver_, DeliverPacket(_, _, _, _)).Times(0); + EXPECT_CALL(*receiver_, DeliverPacket(MediaType::VIDEO, _, _, _)).Times(0); pipe->Process(); // Advance enough time to release one packet. fake_clock_.AdvanceTimeMilliseconds(kPacketTimeMs); - EXPECT_CALL(*receiver_, DeliverPacket(_, _, _, _)).Times(1); + EXPECT_CALL(*receiver_, DeliverPacket(MediaType::VIDEO, _, _, _)).Times(1); pipe->Process(); // Release all but one packet fake_clock_.AdvanceTimeMilliseconds(9 * kPacketTimeMs - 1); - EXPECT_CALL(*receiver_, DeliverPacket(_, _, _, _)).Times(8); + EXPECT_CALL(*receiver_, DeliverPacket(MediaType::VIDEO, _, _, _)).Times(8); pipe->Process(); // And the last one. fake_clock_.AdvanceTimeMilliseconds(1); - EXPECT_CALL(*receiver_, DeliverPacket(_, _, _, _)).Times(1); + EXPECT_CALL(*receiver_, DeliverPacket(MediaType::VIDEO, _, _, _)).Times(1); pipe->Process(); } @@ -136,7 +136,7 @@ TEST_F(FakeNetworkPipeTest, ExtraDelayTest) { config.queue_delay_ms = 100; config.link_capacity_kbps = 80; std::unique_ptr pipe( - new FakeNetworkPipe(&fake_clock_, config)); + new FakeNetworkPipe(&fake_clock_, config, MediaType::AUDIO)); pipe->SetReceiver(receiver_.get()); const int kNumPackets = 2; @@ -149,17 +149,17 @@ TEST_F(FakeNetworkPipeTest, ExtraDelayTest) { // Increase more than kPacketTimeMs, but not more than the extra delay. fake_clock_.AdvanceTimeMilliseconds(kPacketTimeMs); - EXPECT_CALL(*receiver_, DeliverPacket(_, _, _, _)).Times(0); + EXPECT_CALL(*receiver_, DeliverPacket(MediaType::AUDIO, _, _, _)).Times(0); pipe->Process(); // Advance the network delay to get the first packet. fake_clock_.AdvanceTimeMilliseconds(config.queue_delay_ms); - EXPECT_CALL(*receiver_, DeliverPacket(_, _, _, _)).Times(1); + EXPECT_CALL(*receiver_, DeliverPacket(MediaType::AUDIO, _, _, _)).Times(1); pipe->Process(); // Advance one more kPacketTimeMs to get the last packet. fake_clock_.AdvanceTimeMilliseconds(kPacketTimeMs); - EXPECT_CALL(*receiver_, DeliverPacket(_, _, _, _)).Times(1); + EXPECT_CALL(*receiver_, DeliverPacket(MediaType::AUDIO, _, _, _)).Times(1); pipe->Process(); } @@ -170,7 +170,7 @@ TEST_F(FakeNetworkPipeTest, QueueLengthTest) { config.queue_length_packets = 2; config.link_capacity_kbps = 80; std::unique_ptr pipe( - new FakeNetworkPipe(&fake_clock_, config)); + new FakeNetworkPipe(&fake_clock_, config, MediaType::VIDEO)); pipe->SetReceiver(receiver_.get()); const int kPacketSize = 1000; @@ -183,7 +183,7 @@ TEST_F(FakeNetworkPipeTest, QueueLengthTest) { // Increase time enough to deliver all three packets, verify only two are // delivered. fake_clock_.AdvanceTimeMilliseconds(3 * kPacketTimeMs); - EXPECT_CALL(*receiver_, DeliverPacket(_, _, _, _)).Times(2); + EXPECT_CALL(*receiver_, DeliverPacket(MediaType::VIDEO, _, _, _)).Times(2); pipe->Process(); } @@ -194,7 +194,7 @@ TEST_F(FakeNetworkPipeTest, StatisticsTest) { config.queue_delay_ms = 20; config.link_capacity_kbps = 80; std::unique_ptr pipe( - new FakeNetworkPipe(&fake_clock_, config)); + new FakeNetworkPipe(&fake_clock_, config, MediaType::VIDEO)); pipe->SetReceiver(receiver_.get()); const int kPacketSize = 1000; @@ -206,7 +206,7 @@ TEST_F(FakeNetworkPipeTest, StatisticsTest) { fake_clock_.AdvanceTimeMilliseconds(3 * kPacketTimeMs + config.queue_delay_ms); - EXPECT_CALL(*receiver_, DeliverPacket(_, _, _, _)).Times(2); + EXPECT_CALL(*receiver_, DeliverPacket(MediaType::VIDEO, _, _, _)).Times(2); pipe->Process(); // Packet 1: kPacketTimeMs + config.queue_delay_ms, @@ -224,7 +224,7 @@ TEST_F(FakeNetworkPipeTest, ChangingCapacityWithEmptyPipeTest) { config.queue_length_packets = 20; config.link_capacity_kbps = 80; std::unique_ptr pipe( - new FakeNetworkPipe(&fake_clock_, config)); + new FakeNetworkPipe(&fake_clock_, config, MediaType::VIDEO)); pipe->SetReceiver(receiver_.get()); // Add 10 packets of 1000 bytes, = 80 kb, and verify it takes one second to @@ -237,13 +237,13 @@ TEST_F(FakeNetworkPipeTest, ChangingCapacityWithEmptyPipeTest) { int packet_time_ms = PacketTimeMs(config.link_capacity_kbps, kPacketSize); // Time hasn't increased yet, so we souldn't get any packets. - EXPECT_CALL(*receiver_, DeliverPacket(_, _, _, _)).Times(0); + EXPECT_CALL(*receiver_, DeliverPacket(MediaType::VIDEO, _, _, _)).Times(0); pipe->Process(); // Advance time in steps to release one packet at a time. for (int i = 0; i < kNumPackets; ++i) { fake_clock_.AdvanceTimeMilliseconds(packet_time_ms); - EXPECT_CALL(*receiver_, DeliverPacket(_, _, _, _)).Times(1); + EXPECT_CALL(*receiver_, DeliverPacket(MediaType::VIDEO, _, _, _)).Times(1); pipe->Process(); } @@ -259,20 +259,20 @@ TEST_F(FakeNetworkPipeTest, ChangingCapacityWithEmptyPipeTest) { packet_time_ms = PacketTimeMs(config.link_capacity_kbps, kPacketSize); // Time hasn't increased yet, so we souldn't get any packets. - EXPECT_CALL(*receiver_, DeliverPacket(_, _, _, _)).Times(0); + EXPECT_CALL(*receiver_, DeliverPacket(MediaType::VIDEO, _, _, _)).Times(0); pipe->Process(); // Advance time in steps to release one packet at a time. for (int i = 0; i < kNumPackets; ++i) { fake_clock_.AdvanceTimeMilliseconds(packet_time_ms); - EXPECT_CALL(*receiver_, DeliverPacket(_, _, _, _)).Times(1); + EXPECT_CALL(*receiver_, DeliverPacket(MediaType::VIDEO, _, _, _)).Times(1); pipe->Process(); } // Check that all the packets were sent. EXPECT_EQ(static_cast(2 * kNumPackets), pipe->sent_packets()); fake_clock_.AdvanceTimeMilliseconds(pipe->TimeUntilNextProcess()); - EXPECT_CALL(*receiver_, DeliverPacket(_, _, _, _)).Times(0); + EXPECT_CALL(*receiver_, DeliverPacket(MediaType::VIDEO, _, _, _)).Times(0); pipe->Process(); } @@ -283,7 +283,7 @@ TEST_F(FakeNetworkPipeTest, ChangingCapacityWithPacketsInPipeTest) { config.queue_length_packets = 20; config.link_capacity_kbps = 80; std::unique_ptr pipe( - new FakeNetworkPipe(&fake_clock_, config)); + new FakeNetworkPipe(&fake_clock_, config, MediaType::AUDIO)); pipe->SetReceiver(receiver_.get()); // Add 10 packets of 1000 bytes, = 80 kb. @@ -306,27 +306,27 @@ TEST_F(FakeNetworkPipeTest, ChangingCapacityWithPacketsInPipeTest) { int packet_time_2_ms = PacketTimeMs(config.link_capacity_kbps, kPacketSize); // Time hasn't increased yet, so we souldn't get any packets. - EXPECT_CALL(*receiver_, DeliverPacket(_, _, _, _)).Times(0); + EXPECT_CALL(*receiver_, DeliverPacket(MediaType::AUDIO, _, _, _)).Times(0); pipe->Process(); // Advance time in steps to release one packet at a time. for (int i = 0; i < kNumPackets; ++i) { fake_clock_.AdvanceTimeMilliseconds(packet_time_1_ms); - EXPECT_CALL(*receiver_, DeliverPacket(_, _, _, _)).Times(1); + EXPECT_CALL(*receiver_, DeliverPacket(MediaType::AUDIO, _, _, _)).Times(1); pipe->Process(); } // Advance time in steps to release one packet at a time. for (int i = 0; i < kNumPackets; ++i) { fake_clock_.AdvanceTimeMilliseconds(packet_time_2_ms); - EXPECT_CALL(*receiver_, DeliverPacket(_, _, _, _)).Times(1); + EXPECT_CALL(*receiver_, DeliverPacket(MediaType::AUDIO, _, _, _)).Times(1); pipe->Process(); } // Check that all the packets were sent. EXPECT_EQ(static_cast(2 * kNumPackets), pipe->sent_packets()); fake_clock_.AdvanceTimeMilliseconds(pipe->TimeUntilNextProcess()); - EXPECT_CALL(*receiver_, DeliverPacket(_, _, _, _)).Times(0); + EXPECT_CALL(*receiver_, DeliverPacket(MediaType::AUDIO, _, _, _)).Times(0); pipe->Process(); } @@ -338,7 +338,7 @@ TEST_F(FakeNetworkPipeTest, DisallowReorderingThenAllowReordering) { config.queue_delay_ms = 100; config.delay_standard_deviation_ms = 10; std::unique_ptr pipe( - new FakeNetworkPipe(&fake_clock_, config)); + new FakeNetworkPipe(&fake_clock_, config, MediaType::VIDEO)); ReorderTestReceiver* receiver = new ReorderTestReceiver(); receiver_.reset(receiver); pipe->SetReceiver(receiver_.get()); @@ -390,7 +390,7 @@ TEST_F(FakeNetworkPipeTest, BurstLoss) { config.loss_percent = kLossPercent; config.avg_burst_loss_length = kAvgBurstLength; std::unique_ptr pipe( - new FakeNetworkPipe(&fake_clock_, config)); + new FakeNetworkPipe(&fake_clock_, config, MediaType::VIDEO)); ReorderTestReceiver* receiver = new ReorderTestReceiver(); receiver_.reset(receiver); pipe->SetReceiver(receiver_.get()); diff --git a/webrtc/test/layer_filtering_transport.cc b/webrtc/test/layer_filtering_transport.cc index 26805539b9..5ae06b7305 100644 --- a/webrtc/test/layer_filtering_transport.cc +++ b/webrtc/test/layer_filtering_transport.cc @@ -27,7 +27,7 @@ LayerFilteringTransport::LayerFilteringTransport( uint8_t vp9_video_payload_type, int selected_tl, int selected_sl) - : test::DirectTransport(config, send_call), + : test::DirectTransport(config, send_call, MediaType::VIDEO), vp8_video_payload_type_(vp8_video_payload_type), vp9_video_payload_type_(vp9_video_payload_type), selected_tl_(selected_tl), diff --git a/webrtc/test/rtp_rtcp_observer.h b/webrtc/test/rtp_rtcp_observer.h index 8e1375f20f..b268e4ba02 100644 --- a/webrtc/test/rtp_rtcp_observer.h +++ b/webrtc/test/rtp_rtcp_observer.h @@ -94,8 +94,9 @@ class PacketTransport : public test::DirectTransport { PacketTransport(Call* send_call, RtpRtcpObserver* observer, TransportType transport_type, + MediaType media_type, const FakeNetworkPipe::Config& configuration) - : test::DirectTransport(configuration, send_call), + : test::DirectTransport(configuration, send_call, media_type), observer_(observer), transport_type_(transport_type) {} diff --git a/webrtc/video/end_to_end_tests.cc b/webrtc/video/end_to_end_tests.cc index baf7161252..87289f19d6 100644 --- a/webrtc/video/end_to_end_tests.cc +++ b/webrtc/video/end_to_end_tests.cc @@ -202,8 +202,10 @@ TEST_F(EndToEndTest, RendersSingleDelayedFrame) { CreateCalls(Call::Config(&event_log_), Call::Config(&event_log_)); - test::DirectTransport sender_transport(sender_call_.get()); - test::DirectTransport receiver_transport(receiver_call_.get()); + test::DirectTransport sender_transport( + sender_call_.get(), MediaType::VIDEO); + test::DirectTransport receiver_transport( + receiver_call_.get(), MediaType::VIDEO); sender_transport.SetReceiver(receiver_call_->Receiver()); receiver_transport.SetReceiver(sender_call_->Receiver()); @@ -249,8 +251,10 @@ TEST_F(EndToEndTest, TransmitsFirstFrame) { CreateCalls(Call::Config(&event_log_), Call::Config(&event_log_)); - test::DirectTransport sender_transport(sender_call_.get()); - test::DirectTransport receiver_transport(receiver_call_.get()); + test::DirectTransport sender_transport( + sender_call_.get(), MediaType::VIDEO); + test::DirectTransport receiver_transport( + receiver_call_.get(), MediaType::VIDEO); sender_transport.SetReceiver(receiver_call_->Receiver()); receiver_transport.SetReceiver(sender_call_->Receiver()); @@ -521,6 +525,7 @@ TEST_F(EndToEndTest, ReceivesNackAndRetransmitsAudio) { test::PacketTransport* CreateReceiveTransport() override { test::PacketTransport* receive_transport = new test::PacketTransport( nullptr, this, test::PacketTransport::kReceiver, + MediaType::AUDIO, FakeNetworkPipe::Config()); receive_transport_ = receive_transport; return receive_transport; @@ -782,7 +787,8 @@ class FlexfecRenderObserver : public test::EndToEndTest, FakeNetworkPipe::Config config; config.queue_delay_ms = kNetworkDelayMs; return new test::PacketTransport(sender_call, this, - test::PacketTransport::kSender, config); + test::PacketTransport::kSender, + MediaType::VIDEO, config); } void OnFrame(const VideoFrame& video_frame) override { @@ -961,7 +967,8 @@ TEST_F(EndToEndTest, ReceivedUlpfecPacketsNotNacked) { FakeNetworkPipe::Config config; config.queue_delay_ms = kNetworkDelayMs; return new test::PacketTransport(sender_call, this, - test::PacketTransport::kSender, config); + test::PacketTransport::kSender, + MediaType::VIDEO, config); } // TODO(holmer): Investigate why we don't send FEC packets when the bitrate @@ -1303,8 +1310,10 @@ TEST_F(EndToEndTest, UnknownRtpPacketGivesUnknownSsrcReturnCode) { CreateCalls(Call::Config(&event_log_), Call::Config(&event_log_)); - test::DirectTransport send_transport(sender_call_.get()); - test::DirectTransport receive_transport(receiver_call_.get()); + test::DirectTransport send_transport( + sender_call_.get(), MediaType::VIDEO); + test::DirectTransport receive_transport( + receiver_call_.get(), MediaType::VIDEO); PacketInputObserver input_observer(receiver_call_->Receiver()); send_transport.SetReceiver(&input_observer); receive_transport.SetReceiver(sender_call_->Receiver()); @@ -1531,10 +1540,10 @@ class MultiStreamTest { VideoReceiveStream::Config* receive_config) { } virtual test::DirectTransport* CreateSendTransport(Call* sender_call) { - return new test::DirectTransport(sender_call); + return new test::DirectTransport(sender_call, MediaType::VIDEO); } virtual test::DirectTransport* CreateReceiveTransport(Call* receiver_call) { - return new test::DirectTransport(receiver_call); + return new test::DirectTransport(receiver_call, MediaType::VIDEO); } }; @@ -1613,7 +1622,7 @@ TEST_F(EndToEndTest, AssignsTransportSequenceNumbers) { RtpExtensionHeaderObserver(Call* sender_call, const uint32_t& first_media_ssrc, const std::map& ssrc_map) - : DirectTransport(sender_call), + : DirectTransport(sender_call, MediaType::VIDEO), done_(false, false), parser_(RtpHeaderParser::Create()), first_media_ssrc_(first_media_ssrc), @@ -1929,8 +1938,10 @@ TEST_F(EndToEndTest, ObserversEncodedFrames) { CreateCalls(Call::Config(&event_log_), Call::Config(&event_log_)); - test::DirectTransport sender_transport(sender_call_.get()); - test::DirectTransport receiver_transport(receiver_call_.get()); + test::DirectTransport sender_transport( + sender_call_.get(), MediaType::VIDEO); + test::DirectTransport receiver_transport( + receiver_call_.get(), MediaType::VIDEO); sender_transport.SetReceiver(receiver_call_->Receiver()); receiver_transport.SetReceiver(sender_call_->Receiver()); @@ -2094,6 +2105,7 @@ TEST_F(EndToEndTest, RembWithSendSideBwe) { test::PacketTransport* CreateReceiveTransport() override { receive_transport_ = new test::PacketTransport( nullptr, this, test::PacketTransport::kReceiver, + MediaType::VIDEO, FakeNetworkPipe::Config()); return receive_transport_; } @@ -3057,7 +3069,8 @@ TEST_F(EndToEndTest, GetStats) { FakeNetworkPipe::Config network_config; network_config.loss_percent = 5; return new test::PacketTransport( - sender_call, this, test::PacketTransport::kSender, network_config); + sender_call, this, test::PacketTransport::kSender, MediaType::VIDEO, + network_config); } Call::Config GetSenderCallConfig() override { @@ -3611,9 +3624,11 @@ void EndToEndTest::TestRtpStatePreservation(bool use_rtx, test::PacketTransport send_transport(sender_call_.get(), &observer, test::PacketTransport::kSender, + MediaType::VIDEO, FakeNetworkPipe::Config()); test::PacketTransport receive_transport(nullptr, &observer, test::PacketTransport::kReceiver, + MediaType::VIDEO, FakeNetworkPipe::Config()); send_transport.SetReceiver(receiver_call_->Receiver()); receive_transport.SetReceiver(sender_call_->Receiver()); @@ -3906,9 +3921,11 @@ TEST_F(EndToEndTest, CallReportsRttForSender) { FakeNetworkPipe::Config config; config.queue_delay_ms = kSendDelayMs; - test::DirectTransport sender_transport(config, sender_call_.get()); + test::DirectTransport sender_transport( + config, sender_call_.get(), MediaType::VIDEO); config.queue_delay_ms = kReceiveDelayMs; - test::DirectTransport receiver_transport(config, receiver_call_.get()); + test::DirectTransport receiver_transport( + config, receiver_call_.get(), MediaType::VIDEO); sender_transport.SetReceiver(receiver_call_->Receiver()); receiver_transport.SetReceiver(sender_call_->Receiver()); @@ -3970,7 +3987,7 @@ void EndToEndTest::VerifyNewVideoReceiveStreamsRespectNetworkState( CreateCalls(config, config); receiver_call_->SignalChannelNetworkState(network_to_bring_up, kNetworkUp); - test::DirectTransport sender_transport(sender_call_.get()); + test::DirectTransport sender_transport(sender_call_.get(), MediaType::VIDEO); sender_transport.SetReceiver(receiver_call_->Receiver()); CreateSendConfig(1, 0, 0, &sender_transport); CreateMatchingReceiveConfigs(transport); diff --git a/webrtc/video/replay.cc b/webrtc/video/replay.cc index 2188d3e81d..6347dc9977 100644 --- a/webrtc/video/replay.cc +++ b/webrtc/video/replay.cc @@ -283,8 +283,8 @@ void RtpReplay() { if (!rtp_reader->NextPacket(&packet)) break; ++num_packets; - switch (call->Receiver()->DeliverPacket(webrtc::MediaType::ANY, packet.data, - packet.length, PacketTime())) { + switch (call->Receiver()->DeliverPacket( + webrtc::MediaType::VIDEO, packet.data, packet.length, PacketTime())) { case PacketReceiver::DELIVERY_OK: break; case PacketReceiver::DELIVERY_UNKNOWN_SSRC: { diff --git a/webrtc/video/video_quality_test.cc b/webrtc/video/video_quality_test.cc index 4c3c731dd7..96a488298e 100644 --- a/webrtc/video/video_quality_test.cc +++ b/webrtc/video/video_quality_test.cc @@ -1590,7 +1590,8 @@ void VideoQualityTest::RunWithAnalyzer(const Params& params) { test::LayerFilteringTransport send_transport( params_.pipe, sender_call_.get(), kPayloadTypeVP8, kPayloadTypeVP9, params_.video.selected_tl, params_.ss.selected_sl); - test::DirectTransport recv_transport(params_.pipe, receiver_call_.get()); + test::DirectTransport recv_transport( + params_.pipe, receiver_call_.get(), MediaType::VIDEO); std::string graph_title = params_.analyzer.graph_title; if (graph_title.empty()) diff --git a/webrtc/video/video_send_stream_tests.cc b/webrtc/video/video_send_stream_tests.cc index cf09b3ac6c..18bb9b8e12 100644 --- a/webrtc/video/video_send_stream_tests.cc +++ b/webrtc/video/video_send_stream_tests.cc @@ -439,7 +439,8 @@ class UlpfecObserver : public test::EndToEndTest { config.loss_percent = 5; config.queue_delay_ms = kNetworkDelayMs; return new test::PacketTransport(sender_call, this, - test::PacketTransport::kSender, config); + test::PacketTransport::kSender, + MediaType::VIDEO, config); } void ModifyVideoConfigs( @@ -594,7 +595,8 @@ class FlexfecObserver : public test::EndToEndTest { config.loss_percent = 5; config.queue_delay_ms = kNetworkDelayMs; return new test::PacketTransport(sender_call, this, - test::PacketTransport::kSender, config); + test::PacketTransport::kSender, + MediaType::VIDEO, config); } void ModifyVideoConfigs( @@ -1263,7 +1265,8 @@ TEST_F(VideoSendStreamTest, PaddingIsPrimarilyRetransmissions) { config.link_capacity_kbps = kCapacityKbps; config.queue_delay_ms = kNetworkDelayMs; return new test::PacketTransport(sender_call, this, - test::PacketTransport::kSender, config); + test::PacketTransport::kSender, + MediaType::VIDEO, config); } void ModifyVideoConfigs(