Index: webrtc/video/end_to_end_tests.cc |
diff --git a/webrtc/video/end_to_end_tests.cc b/webrtc/video/end_to_end_tests.cc |
index 31ec7d5a764f9821c53da8673e74069eb459b4fc..c57b8a1c02724f8b7368987d5dd261481d118c2b 100644 |
--- a/webrtc/video/end_to_end_tests.cc |
+++ b/webrtc/video/end_to_end_tests.cc |
@@ -81,7 +81,6 @@ class EndToEndTest : public test::CallTest { |
void TestXrReceiverReferenceTimeReport(bool enable_rrtr); |
void TestSendsSetSsrcs(size_t num_ssrcs, bool send_single_ssrc_first); |
void TestRtpStatePreservation(bool use_rtx); |
- void TestReceivedFecPacketsNotNacked(const FakeNetworkPipe::Config& config); |
void VerifyHistogramStats(bool use_rtx, bool use_red); |
}; |
@@ -156,7 +155,8 @@ TEST_F(EndToEndTest, RendersSingleDelayedFrame) { |
CreateCalls(Call::Config(), Call::Config()); |
- test::DirectTransport sender_transport, receiver_transport; |
+ test::DirectTransport sender_transport(sender_call_.get()); |
+ test::DirectTransport receiver_transport(receiver_call_.get()); |
sender_transport.SetReceiver(receiver_call_->Receiver()); |
receiver_transport.SetReceiver(sender_call_->Receiver()); |
@@ -206,7 +206,8 @@ TEST_F(EndToEndTest, TransmitsFirstFrame) { |
CreateCalls(Call::Config(), Call::Config()); |
- test::DirectTransport sender_transport, receiver_transport; |
+ test::DirectTransport sender_transport(sender_call_.get()); |
+ test::DirectTransport receiver_transport(receiver_call_.get()); |
sender_transport.SetReceiver(receiver_call_->Receiver()); |
receiver_transport.SetReceiver(sender_call_->Receiver()); |
@@ -281,7 +282,7 @@ TEST_F(EndToEndTest, SendsAndReceivesVP9) { |
int frame_counter_; |
} test; |
- RunBaseTest(&test); |
+ RunBaseTest(&test, FakeNetworkPipe::Config()); |
} |
TEST_F(EndToEndTest, SendsAndReceivesH264) { |
@@ -333,7 +334,7 @@ TEST_F(EndToEndTest, SendsAndReceivesH264) { |
int frame_counter_; |
} test; |
- RunBaseTest(&test); |
+ RunBaseTest(&test, FakeNetworkPipe::Config()); |
} |
TEST_F(EndToEndTest, ReceiverUsesLocalSsrc) { |
@@ -361,7 +362,7 @@ TEST_F(EndToEndTest, ReceiverUsesLocalSsrc) { |
} |
} test; |
- RunBaseTest(&test); |
+ RunBaseTest(&test, FakeNetworkPipe::Config()); |
} |
TEST_F(EndToEndTest, ReceivesAndRetransmitsNack) { |
@@ -379,6 +380,7 @@ TEST_F(EndToEndTest, ReceivesAndRetransmitsNack) { |
private: |
Action OnSendRtp(const uint8_t* packet, size_t length) override { |
+ rtc::CritScope lock(&crit_); |
RTPHeader header; |
EXPECT_TRUE(rtp_parser_->Parse(packet, length, &header)); |
@@ -414,6 +416,7 @@ TEST_F(EndToEndTest, ReceivesAndRetransmitsNack) { |
} |
Action OnReceiveRtcp(const uint8_t* packet, size_t length) override { |
+ rtc::CritScope lock(&crit_); |
RTCPUtility::RTCPParserV2 parser(packet, length, true); |
EXPECT_TRUE(parser.IsValid()); |
@@ -441,15 +444,16 @@ TEST_F(EndToEndTest, ReceivesAndRetransmitsNack) { |
"rendered."; |
} |
+ rtc::CriticalSection crit_; |
rtc::scoped_ptr<RtpHeaderParser> rtp_parser_; |
std::set<uint16_t> dropped_packets_; |
std::set<uint16_t> retransmitted_packets_; |
uint64_t sent_rtp_packets_; |
int packets_left_to_drop_; |
- int nacks_left_; |
+ int nacks_left_ GUARDED_BY(&crit_); |
} test; |
- RunBaseTest(&test); |
+ RunBaseTest(&test, FakeNetworkPipe::Config()); |
} |
TEST_F(EndToEndTest, CanReceiveFec) { |
@@ -459,8 +463,8 @@ TEST_F(EndToEndTest, CanReceiveFec) { |
: EndToEndTest(kDefaultTimeoutMs), state_(kFirstPacket) {} |
private: |
- Action OnSendRtp(const uint8_t* packet, size_t length) override |
- EXCLUSIVE_LOCKS_REQUIRED(crit_) { |
+ Action OnSendRtp(const uint8_t* packet, size_t length) override { |
+ rtc::CritScope lock(&crit_); |
RTPHeader header; |
EXPECT_TRUE(parser_->Parse(packet, length, &header)); |
@@ -544,29 +548,20 @@ TEST_F(EndToEndTest, CanReceiveFec) { |
<< "Timed out waiting for dropped frames frames to be rendered."; |
} |
+ rtc::CriticalSection crit_; |
std::set<uint32_t> protected_sequence_numbers_ GUARDED_BY(crit_); |
std::set<uint32_t> protected_timestamps_ GUARDED_BY(crit_); |
} test; |
- RunBaseTest(&test); |
+ RunBaseTest(&test, FakeNetworkPipe::Config()); |
} |
// Flacky on all platforms. See webrtc:4328. |
TEST_F(EndToEndTest, DISABLED_ReceivedFecPacketsNotNacked) { |
- // At low RTT (< kLowRttNackMs) -> NACK only, no FEC. |
- // Configure some network delay. |
- const int kNetworkDelayMs = 50; |
- FakeNetworkPipe::Config config; |
- config.queue_delay_ms = kNetworkDelayMs; |
- TestReceivedFecPacketsNotNacked(config); |
-} |
- |
-void EndToEndTest::TestReceivedFecPacketsNotNacked( |
- const FakeNetworkPipe::Config& config) { |
class FecNackObserver : public test::EndToEndTest { |
public: |
- explicit FecNackObserver(const FakeNetworkPipe::Config& config) |
- : EndToEndTest(kDefaultTimeoutMs, config), |
+ explicit FecNackObserver() |
+ : EndToEndTest(kDefaultTimeoutMs), |
state_(kFirstPacket), |
fec_sequence_number_(0), |
has_last_sequence_number_(false), |
@@ -674,9 +669,14 @@ void EndToEndTest::TestReceivedFecPacketsNotNacked( |
uint16_t fec_sequence_number_; |
bool has_last_sequence_number_; |
uint16_t last_sequence_number_; |
- } test(config); |
+ } test; |
- RunBaseTest(&test); |
+ // At low RTT (< kLowRttNackMs) -> NACK only, no FEC. |
+ // Configure some network delay. |
+ const int kNetworkDelayMs = 50; |
+ FakeNetworkPipe::Config config; |
+ config.queue_delay_ms = kNetworkDelayMs; |
+ RunBaseTest(&test, config); |
} |
// This test drops second RTP packet with a marker bit set, makes sure it's |
@@ -700,6 +700,7 @@ void EndToEndTest::DecodesRetransmittedFrame(bool use_rtx, bool use_red) { |
private: |
Action OnSendRtp(const uint8_t* packet, size_t length) override { |
+ rtc::CritScope lock(&crit_); |
RTPHeader header; |
EXPECT_TRUE(parser_->Parse(packet, length, &header)); |
@@ -773,16 +774,17 @@ void EndToEndTest::DecodesRetransmittedFrame(bool use_rtx, bool use_red) { |
: (use_red ? kRedPayloadType : kFakeSendPayloadType); |
} |
+ rtc::CriticalSection crit_; |
const int payload_type_; |
const uint32_t retransmission_ssrc_; |
const int retransmission_payload_type_; |
int marker_bits_observed_; |
int num_packets_observed_; |
- uint32_t retransmitted_timestamp_; |
+ uint32_t retransmitted_timestamp_ GUARDED_BY(&crit_); |
bool frame_retransmitted_; |
} test(use_rtx, use_red); |
- RunBaseTest(&test); |
+ RunBaseTest(&test, FakeNetworkPipe::Config()); |
} |
TEST_F(EndToEndTest, DecodesRetransmittedFrame) { |
@@ -861,7 +863,8 @@ TEST_F(EndToEndTest, UsesFrameCallbacks) { |
CreateCalls(Call::Config(), Call::Config()); |
- test::DirectTransport sender_transport, receiver_transport; |
+ test::DirectTransport sender_transport(sender_call_.get()); |
+ test::DirectTransport receiver_transport(receiver_call_.get()); |
sender_transport.SetReceiver(receiver_call_->Receiver()); |
receiver_transport.SetReceiver(sender_call_->Receiver()); |
@@ -918,6 +921,7 @@ void EndToEndTest::ReceivesPliAndRecovers(int rtp_history_ms) { |
private: |
Action OnSendRtp(const uint8_t* packet, size_t length) override { |
+ rtc::CritScope lock(&crit_); |
RTPHeader header; |
EXPECT_TRUE(parser_->Parse(packet, length, &header)); |
@@ -935,6 +939,7 @@ void EndToEndTest::ReceivesPliAndRecovers(int rtp_history_ms) { |
} |
Action OnReceiveRtcp(const uint8_t* packet, size_t length) override { |
+ rtc::CritScope lock(&crit_); |
RTCPUtility::RTCPParserV2 parser(packet, length, true); |
EXPECT_TRUE(parser.IsValid()); |
@@ -979,14 +984,15 @@ void EndToEndTest::ReceivesPliAndRecovers(int rtp_history_ms) { |
"rendered afterwards."; |
} |
+ rtc::CriticalSection crit_; |
int rtp_history_ms_; |
bool nack_enabled_; |
- uint32_t highest_dropped_timestamp_; |
- int frames_to_drop_; |
- bool received_pli_; |
+ uint32_t highest_dropped_timestamp_ GUARDED_BY(&crit_); |
+ int frames_to_drop_ GUARDED_BY(&crit_); |
+ bool received_pli_ GUARDED_BY(&crit_); |
} test(rtp_history_ms); |
- RunBaseTest(&test); |
+ RunBaseTest(&test, FakeNetworkPipe::Config()); |
} |
TEST_F(EndToEndTest, ReceivesPliAndRecoversWithNack) { |
@@ -1031,7 +1037,8 @@ TEST_F(EndToEndTest, UnknownRtpPacketGivesUnknownSsrcReturnCode) { |
CreateCalls(Call::Config(), Call::Config()); |
- test::DirectTransport send_transport, receive_transport; |
+ test::DirectTransport send_transport(sender_call_.get()); |
+ test::DirectTransport receive_transport(receiver_call_.get()); |
PacketInputObserver input_observer(receiver_call_->Receiver()); |
send_transport.SetReceiver(&input_observer); |
receive_transport.SetReceiver(sender_call_->Receiver()); |
@@ -1135,7 +1142,7 @@ void EndToEndTest::RespectsRtcpMode(RtcpMode rtcp_mode) { |
int sent_rtcp_; |
} test(rtcp_mode); |
- RunBaseTest(&test); |
+ RunBaseTest(&test, FakeNetworkPipe::Config()); |
} |
TEST_F(EndToEndTest, UsesRtcpCompoundMode) { |
@@ -1167,13 +1174,12 @@ class MultiStreamTest { |
virtual ~MultiStreamTest() {} |
void RunTest() { |
- rtc::scoped_ptr<test::DirectTransport> sender_transport( |
- CreateSendTransport()); |
- rtc::scoped_ptr<test::DirectTransport> receiver_transport( |
- CreateReceiveTransport()); |
- |
rtc::scoped_ptr<Call> sender_call(Call::Create(Call::Config())); |
rtc::scoped_ptr<Call> receiver_call(Call::Create(Call::Config())); |
+ rtc::scoped_ptr<test::DirectTransport> sender_transport( |
+ CreateSendTransport(sender_call.get())); |
+ rtc::scoped_ptr<test::DirectTransport> receiver_transport( |
+ CreateReceiveTransport(receiver_call.get())); |
sender_transport->SetReceiver(receiver_call->Receiver()); |
receiver_transport->SetReceiver(sender_call->Receiver()); |
@@ -1257,11 +1263,11 @@ class MultiStreamTest { |
virtual void UpdateReceiveConfig(size_t stream_index, |
VideoReceiveStream::Config* receive_config) { |
} |
- virtual test::DirectTransport* CreateSendTransport() { |
- return new test::DirectTransport(); |
+ virtual test::DirectTransport* CreateSendTransport(Call* sender_call) { |
+ return new test::DirectTransport(sender_call); |
} |
- virtual test::DirectTransport* CreateReceiveTransport() { |
- return new test::DirectTransport(); |
+ virtual test::DirectTransport* CreateReceiveTransport(Call* receiver_call) { |
+ return new test::DirectTransport(receiver_call); |
} |
}; |
@@ -1340,9 +1346,11 @@ TEST_F(EndToEndTest, AssignsTransportSequenceNumbers) { |
class RtpExtensionHeaderObserver : public test::DirectTransport { |
public: |
- RtpExtensionHeaderObserver(const uint32_t& first_media_ssrc, |
+ RtpExtensionHeaderObserver(Call* sender_call, |
+ const uint32_t& first_media_ssrc, |
const std::map<uint32_t, uint32_t>& ssrc_map) |
- : done_(EventWrapper::Create()), |
+ : DirectTransport(sender_call), |
+ done_(EventWrapper::Create()), |
parser_(RtpHeaderParser::Create()), |
first_media_ssrc_(first_media_ssrc), |
rtx_to_media_ssrcs_(ssrc_map), |
@@ -1507,8 +1515,8 @@ TEST_F(EndToEndTest, AssignsTransportSequenceNumbers) { |
RtpExtension(RtpExtension::kTransportSequenceNumber, kExtensionId)); |
} |
- virtual test::DirectTransport* CreateSendTransport() { |
- observer_ = new RtpExtensionHeaderObserver(first_media_ssrc_, |
+ test::DirectTransport* CreateSendTransport(Call* sender_call) override { |
+ observer_ = new RtpExtensionHeaderObserver(sender_call, first_media_ssrc_, |
rtx_to_media_ssrcs_); |
return observer_; |
} |
@@ -1527,7 +1535,8 @@ TEST_F(EndToEndTest, ReceivesTransportFeedback) { |
class TransportFeedbackObserver : public test::DirectTransport { |
public: |
- TransportFeedbackObserver(rtc::Event* done_event) : done_(done_event) {} |
+ TransportFeedbackObserver(Call* receiver_call, rtc::Event* done_event) |
+ : DirectTransport(receiver_call), done_(done_event) {} |
virtual ~TransportFeedbackObserver() {} |
bool SendRtcp(const uint8_t* data, size_t length) override { |
@@ -1575,8 +1584,9 @@ TEST_F(EndToEndTest, ReceivesTransportFeedback) { |
RtpExtension(RtpExtension::kTransportSequenceNumber, kExtensionId)); |
} |
- virtual test::DirectTransport* CreateReceiveTransport() { |
- return new TransportFeedbackObserver(&done_); |
+ test::DirectTransport* CreateReceiveTransport( |
+ Call* receiver_call) override { |
+ return new TransportFeedbackObserver(receiver_call, &done_); |
} |
private: |
@@ -1624,7 +1634,8 @@ TEST_F(EndToEndTest, ObserversEncodedFrames) { |
CreateCalls(Call::Config(), Call::Config()); |
- test::DirectTransport sender_transport, receiver_transport; |
+ test::DirectTransport sender_transport(sender_call_.get()); |
+ test::DirectTransport receiver_transport(receiver_call_.get()); |
sender_transport.SetReceiver(receiver_call_->Receiver()); |
receiver_transport.SetReceiver(sender_call_->Receiver()); |
@@ -1694,11 +1705,11 @@ TEST_F(EndToEndTest, ReceiveStreamSendsRemb) { |
} |
} test; |
- RunBaseTest(&test); |
+ RunBaseTest(&test, FakeNetworkPipe::Config()); |
} |
TEST_F(EndToEndTest, VerifyBandwidthStats) { |
- class RtcpObserver : public test::EndToEndTest, public PacketReceiver { |
+ class RtcpObserver : public test::EndToEndTest { |
public: |
RtcpObserver() |
: EndToEndTest(kDefaultTimeoutMs), |
@@ -1706,10 +1717,7 @@ TEST_F(EndToEndTest, VerifyBandwidthStats) { |
receiver_call_(nullptr), |
has_seen_pacer_delay_(false) {} |
- DeliveryStatus DeliverPacket(MediaType media_type, |
- const uint8_t* packet, |
- size_t length, |
- const PacketTime& packet_time) override { |
+ Action OnSendRtp(const uint8_t* packet, size_t length) override { |
Call::Stats sender_stats = sender_call_->GetStats(); |
Call::Stats receiver_stats = receiver_call_->GetStats(); |
if (!has_seen_pacer_delay_) |
@@ -1718,8 +1726,7 @@ TEST_F(EndToEndTest, VerifyBandwidthStats) { |
receiver_stats.recv_bandwidth_bps > 0 && has_seen_pacer_delay_) { |
observation_complete_->Set(); |
} |
- return receiver_call_->Receiver()->DeliverPacket(media_type, packet, |
- length, packet_time); |
+ return SEND_PACKET; |
} |
void OnCallsCreated(Call* sender_call, Call* receiver_call) override { |
@@ -1732,18 +1739,13 @@ TEST_F(EndToEndTest, VerifyBandwidthStats) { |
"non-zero bandwidth stats."; |
} |
- void SetReceivers(PacketReceiver* send_transport_receiver, |
- PacketReceiver* receive_transport_receiver) override { |
- test::RtpRtcpObserver::SetReceivers(this, receive_transport_receiver); |
- } |
- |
private: |
Call* sender_call_; |
Call* receiver_call_; |
bool has_seen_pacer_delay_; |
} test; |
- RunBaseTest(&test); |
+ RunBaseTest(&test, FakeNetworkPipe::Config()); |
} |
TEST_F(EndToEndTest, VerifyNackStats) { |
@@ -1844,7 +1846,7 @@ TEST_F(EndToEndTest, VerifyNackStats) { |
} test; |
test::ClearHistograms(); |
- RunBaseTest(&test); |
+ RunBaseTest(&test, FakeNetworkPipe::Config()); |
EXPECT_EQ(1, test::NumHistogramSamples( |
"WebRTC.Video.UniqueNackRequestsSentInPercent")); |
@@ -1857,7 +1859,7 @@ TEST_F(EndToEndTest, VerifyNackStats) { |
} |
void EndToEndTest::VerifyHistogramStats(bool use_rtx, bool use_red) { |
- class StatsObserver : public test::EndToEndTest, public PacketReceiver { |
+ class StatsObserver : public test::EndToEndTest { |
public: |
StatsObserver(bool use_rtx, bool use_red) |
: EndToEndTest(kLongTimeoutMs), |
@@ -1872,20 +1874,13 @@ void EndToEndTest::VerifyHistogramStats(bool use_rtx, bool use_red) { |
if (MinMetricRunTimePassed()) |
observation_complete_->Set(); |
- return SEND_PACKET; |
- } |
- |
- DeliveryStatus DeliverPacket(MediaType media_type, |
- const uint8_t* packet, |
- size_t length, |
- const PacketTime& packet_time) override { |
// GetStats calls GetSendChannelRtcpStatistics |
// (via VideoSendStream::GetRtt) which updates ReportBlockStats used by |
// WebRTC.Video.SentPacketsLostInPercent. |
// TODO(asapersson): Remove dependency on calling GetStats. |
sender_call_->GetStats(); |
- return receiver_call_->Receiver()->DeliverPacket(media_type, packet, |
- length, packet_time); |
+ |
+ return SEND_PACKET; |
} |
bool MinMetricRunTimePassed() { |
@@ -1927,11 +1922,6 @@ void EndToEndTest::VerifyHistogramStats(bool use_rtx, bool use_red) { |
receiver_call_ = receiver_call; |
} |
- void SetReceivers(PacketReceiver* send_transport_receiver, |
- PacketReceiver* receive_transport_receiver) override { |
- test::RtpRtcpObserver::SetReceivers(this, receive_transport_receiver); |
- } |
- |
void PerformTest() override { |
EXPECT_EQ(kEventSignaled, Wait()) |
<< "Timed out waiting for packet to be NACKed."; |
@@ -1945,7 +1935,7 @@ void EndToEndTest::VerifyHistogramStats(bool use_rtx, bool use_red) { |
} test(use_rtx, use_red); |
test::ClearHistograms(); |
- RunBaseTest(&test); |
+ RunBaseTest(&test, FakeNetworkPipe::Config()); |
// Verify that stats have been updated once. |
EXPECT_EQ(1, test::NumHistogramSamples( |
@@ -2129,7 +2119,7 @@ void EndToEndTest::TestXrReceiverReferenceTimeReport(bool enable_rrtr) { |
int sent_rtcp_dlrr_; |
} test(enable_rrtr); |
- RunBaseTest(&test); |
+ RunBaseTest(&test, FakeNetworkPipe::Config()); |
} |
void EndToEndTest::TestSendsSetSsrcs(size_t num_ssrcs, |
@@ -2227,7 +2217,7 @@ void EndToEndTest::TestSendsSetSsrcs(size_t num_ssrcs, |
VideoEncoderConfig encoder_config_all_streams_; |
} test(kSendSsrcs, num_ssrcs, send_single_ssrc_first); |
- RunBaseTest(&test); |
+ RunBaseTest(&test, FakeNetworkPipe::Config()); |
} |
TEST_F(EndToEndTest, ReportsSetEncoderRates) { |
@@ -2282,11 +2272,12 @@ TEST_F(EndToEndTest, ReportsSetEncoderRates) { |
} |
private: |
+ rtc::CriticalSection crit_; |
VideoSendStream* send_stream_; |
uint32_t bitrate_kbps_ GUARDED_BY(crit_); |
} test; |
- RunBaseTest(&test); |
+ RunBaseTest(&test, FakeNetworkPipe::Config()); |
} |
TEST_F(EndToEndTest, GetStats) { |
@@ -2294,8 +2285,8 @@ TEST_F(EndToEndTest, GetStats) { |
static const int kExpectedRenderDelayMs = 20; |
class StatsObserver : public test::EndToEndTest, public I420FrameCallback { |
public: |
- explicit StatsObserver(const FakeNetworkPipe::Config& config) |
- : EndToEndTest(kLongTimeoutMs, config), |
+ StatsObserver() |
+ : EndToEndTest(kLongTimeoutMs), |
send_stream_(nullptr), |
expected_send_ssrcs_(), |
check_stats_event_(EventWrapper::Create()) {} |
@@ -2542,13 +2533,11 @@ TEST_F(EndToEndTest, GetStats) { |
std::string expected_cname_; |
rtc::scoped_ptr<EventWrapper> check_stats_event_; |
- }; |
+ } test; |
FakeNetworkPipe::Config network_config; |
network_config.loss_percent = 5; |
- |
- StatsObserver test(network_config); |
- RunBaseTest(&test); |
+ RunBaseTest(&test, network_config); |
} |
TEST_F(EndToEndTest, ReceiverReferenceTimeReportEnabled) { |
@@ -2596,7 +2585,7 @@ TEST_F(EndToEndTest, TestReceivedRtpPacketStats) { |
uint32_t sent_rtp_; |
} test; |
- RunBaseTest(&test); |
+ RunBaseTest(&test, FakeNetworkPipe::Config()); |
} |
TEST_F(EndToEndTest, SendsSetSsrc) { TestSendsSetSsrcs(1, false); } |
@@ -2676,7 +2665,7 @@ TEST_F(EndToEndTest, DISABLED_RedundantPayloadsTransmittedOnAllSsrcs) { |
std::map<uint32_t, bool> registered_rtx_ssrc_; |
} test; |
- RunBaseTest(&test); |
+ RunBaseTest(&test, FakeNetworkPipe::Config()); |
} |
void EndToEndTest::TestRtpStatePreservation(bool use_rtx) { |
@@ -2771,9 +2760,17 @@ void EndToEndTest::TestRtpStatePreservation(bool use_rtx) { |
} observer(use_rtx); |
CreateCalls(Call::Config(), Call::Config()); |
- observer.SetReceivers(sender_call_->Receiver(), nullptr); |
- CreateSendConfig(kNumSsrcs, observer.SendTransport()); |
+ test::PacketTransport send_transport(sender_call_.get(), &observer, |
+ test::PacketTransport::kSender, |
+ FakeNetworkPipe::Config()); |
+ test::PacketTransport receive_transport(nullptr, &observer, |
+ test::PacketTransport::kReceiver, |
+ FakeNetworkPipe::Config()); |
+ send_transport.SetReceiver(receiver_call_->Receiver()); |
+ receive_transport.SetReceiver(sender_call_->Receiver()); |
+ |
+ CreateSendConfig(kNumSsrcs, &send_transport); |
if (use_rtx) { |
for (size_t i = 0; i < kNumSsrcs; ++i) { |
@@ -2802,7 +2799,7 @@ void EndToEndTest::TestRtpStatePreservation(bool use_rtx) { |
encoder_config_.streams[i].max_bitrate_bps; |
} |
- CreateMatchingReceiveConfigs(observer.ReceiveTransport()); |
+ CreateMatchingReceiveConfigs(&receive_transport); |
CreateStreams(); |
CreateFrameGeneratorCapturer(); |
@@ -2847,7 +2844,8 @@ void EndToEndTest::TestRtpStatePreservation(bool use_rtx) { |
<< "Timed out waiting for all SSRCs to send packets."; |
} |
- observer.StopSending(); |
+ send_transport.StopSending(); |
+ receive_transport.StopSending(); |
Stop(); |
DestroyStreams(); |
@@ -3033,7 +3031,7 @@ TEST_F(EndToEndTest, RespectsNetworkState) { |
int down_frames_ GUARDED_BY(test_crit_); |
} test; |
- RunBaseTest(&test); |
+ RunBaseTest(&test, FakeNetworkPipe::Config()); |
} |
TEST_F(EndToEndTest, CallReportsRttForSender) { |
@@ -3044,9 +3042,9 @@ TEST_F(EndToEndTest, CallReportsRttForSender) { |
FakeNetworkPipe::Config config; |
config.queue_delay_ms = kSendDelayMs; |
- test::DirectTransport sender_transport(config); |
+ test::DirectTransport sender_transport(config, sender_call_.get()); |
config.queue_delay_ms = kReceiveDelayMs; |
- test::DirectTransport receiver_transport(config); |
+ test::DirectTransport receiver_transport(config, receiver_call_.get()); |
sender_transport.SetReceiver(receiver_call_->Receiver()); |
receiver_transport.SetReceiver(sender_call_->Receiver()); |
@@ -3108,7 +3106,7 @@ TEST_F(EndToEndTest, NewReceiveStreamsRespectNetworkDown) { |
CreateCalls(Call::Config(), Call::Config()); |
receiver_call_->SignalNetworkState(kNetworkDown); |
- test::DirectTransport sender_transport; |
+ test::DirectTransport sender_transport(sender_call_.get()); |
sender_transport.SetReceiver(receiver_call_->Receiver()); |
CreateSendConfig(1, &sender_transport); |
UnusedTransport transport; |