| 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 e406d0fab221a8105b1f3e09923c67e5f816b3cd..a987fb232589731f7f021508bd4a4438107347cb 100644
|
| --- a/webrtc/video/end_to_end_tests.cc
|
| +++ b/webrtc/video/end_to_end_tests.cc
|
| @@ -42,9 +42,11 @@
|
| #include "webrtc/test/encoder_settings.h"
|
| #include "webrtc/test/fake_decoder.h"
|
| #include "webrtc/test/fake_encoder.h"
|
| +#include "webrtc/test/field_trial.h"
|
| #include "webrtc/test/frame_generator.h"
|
| #include "webrtc/test/frame_generator_capturer.h"
|
| #include "webrtc/test/gtest.h"
|
| +#include "webrtc/test/gmock.h"
|
| #include "webrtc/test/null_transport.h"
|
| #include "webrtc/test/rtcp_packet_parser.h"
|
| #include "webrtc/test/rtp_rtcp_observer.h"
|
| @@ -57,9 +59,10 @@ namespace webrtc {
|
|
|
| static const int kSilenceTimeoutMs = 2000;
|
|
|
| -class EndToEndTest : public test::CallTest {
|
| +class EndToEndTest : public test::CallTest,
|
| + public ::testing::WithParamInterface<std::string> {
|
| public:
|
| - EndToEndTest() {}
|
| + EndToEndTest() : scoped_field_trial_(GetParam()) {}
|
|
|
| virtual ~EndToEndTest() {
|
| EXPECT_EQ(nullptr, video_send_stream_);
|
| @@ -128,9 +131,16 @@ class EndToEndTest : public test::CallTest {
|
| void VerifyNewVideoReceiveStreamsRespectNetworkState(
|
| MediaType network_to_bring_up,
|
| Transport* transport);
|
| + test::ScopedFieldTrials scoped_field_trial_;
|
| };
|
|
|
| -TEST_F(EndToEndTest, ReceiverCanBeStartedTwice) {
|
| +INSTANTIATE_TEST_CASE_P(
|
| + TestWithNewVideoJitterBuffer,
|
| + EndToEndTest,
|
| + ::testing::Values("WebRTC-NewVideoJitterBuffer/Enabled/",
|
| + "WebRTC-NewVideoJitterBuffer/Disabled/"));
|
| +
|
| +TEST_P(EndToEndTest, ReceiverCanBeStartedTwice) {
|
| CreateCalls(Call::Config(&event_log_), Call::Config(&event_log_));
|
|
|
| test::NullTransport transport;
|
| @@ -145,7 +155,7 @@ TEST_F(EndToEndTest, ReceiverCanBeStartedTwice) {
|
| DestroyStreams();
|
| }
|
|
|
| -TEST_F(EndToEndTest, ReceiverCanBeStoppedTwice) {
|
| +TEST_P(EndToEndTest, ReceiverCanBeStoppedTwice) {
|
| CreateCalls(Call::Config(&event_log_), Call::Config(&event_log_));
|
|
|
| test::NullTransport transport;
|
| @@ -160,7 +170,7 @@ TEST_F(EndToEndTest, ReceiverCanBeStoppedTwice) {
|
| DestroyStreams();
|
| }
|
|
|
| -TEST_F(EndToEndTest, ReceiverCanBeStoppedAndRestarted) {
|
| +TEST_P(EndToEndTest, ReceiverCanBeStoppedAndRestarted) {
|
| CreateCalls(Call::Config(&event_log_), Call::Config(&event_log_));
|
|
|
| test::NullTransport transport;
|
| @@ -176,7 +186,7 @@ TEST_F(EndToEndTest, ReceiverCanBeStoppedAndRestarted) {
|
| DestroyStreams();
|
| }
|
|
|
| -TEST_F(EndToEndTest, RendersSingleDelayedFrame) {
|
| +TEST_P(EndToEndTest, RendersSingleDelayedFrame) {
|
| static const int kWidth = 320;
|
| static const int kHeight = 240;
|
| // This constant is chosen to be higher than the timeout in the video_render
|
| @@ -249,7 +259,7 @@ TEST_F(EndToEndTest, RendersSingleDelayedFrame) {
|
| DestroyStreams();
|
| }
|
|
|
| -TEST_F(EndToEndTest, TransmitsFirstFrame) {
|
| +TEST_P(EndToEndTest, TransmitsFirstFrame) {
|
| class Renderer : public rtc::VideoSinkInterface<VideoFrame> {
|
| public:
|
| Renderer() : event_(false, false) {}
|
| @@ -352,20 +362,26 @@ class CodecObserver : public test::EndToEndTest,
|
| int frame_counter_;
|
| };
|
|
|
| -TEST_F(EndToEndTest, SendsAndReceivesVP8Rotation90) {
|
| +TEST_P(EndToEndTest, SendsAndReceivesVP8) {
|
| + CodecObserver test(5, kVideoRotation_0, "VP8", VP8Encoder::Create(),
|
| + VP8Decoder::Create());
|
| + RunBaseTest(&test);
|
| +}
|
| +
|
| +TEST_P(EndToEndTest, SendsAndReceivesVP8Rotation90) {
|
| CodecObserver test(5, kVideoRotation_90, "VP8", VP8Encoder::Create(),
|
| VP8Decoder::Create());
|
| RunBaseTest(&test);
|
| }
|
|
|
| #if !defined(RTC_DISABLE_VP9)
|
| -TEST_F(EndToEndTest, SendsAndReceivesVP9) {
|
| +TEST_P(EndToEndTest, SendsAndReceivesVP9) {
|
| CodecObserver test(500, kVideoRotation_0, "VP9", VP9Encoder::Create(),
|
| VP9Decoder::Create());
|
| RunBaseTest(&test);
|
| }
|
|
|
| -TEST_F(EndToEndTest, SendsAndReceivesVP9VideoRotation90) {
|
| +TEST_P(EndToEndTest, SendsAndReceivesVP9VideoRotation90) {
|
| CodecObserver test(5, kVideoRotation_90, "VP9", VP9Encoder::Create(),
|
| VP9Decoder::Create());
|
| RunBaseTest(&test);
|
| @@ -373,20 +389,20 @@ TEST_F(EndToEndTest, SendsAndReceivesVP9VideoRotation90) {
|
| #endif // !defined(RTC_DISABLE_VP9)
|
|
|
| #if defined(WEBRTC_USE_H264)
|
| -TEST_F(EndToEndTest, SendsAndReceivesH264) {
|
| +TEST_P(EndToEndTest, SendsAndReceivesH264) {
|
| CodecObserver test(500, kVideoRotation_0, "H264", H264Encoder::Create(),
|
| H264Decoder::Create());
|
| RunBaseTest(&test);
|
| }
|
|
|
| -TEST_F(EndToEndTest, SendsAndReceivesH264VideoRotation90) {
|
| +TEST_P(EndToEndTest, SendsAndReceivesH264VideoRotation90) {
|
| CodecObserver test(5, kVideoRotation_90, "H264", H264Encoder::Create(),
|
| H264Decoder::Create());
|
| RunBaseTest(&test);
|
| }
|
| #endif // defined(WEBRTC_USE_H264)
|
|
|
| -TEST_F(EndToEndTest, ReceiverUsesLocalSsrc) {
|
| +TEST_P(EndToEndTest, ReceiverUsesLocalSsrc) {
|
| class SyncRtcpObserver : public test::EndToEndTest {
|
| public:
|
| SyncRtcpObserver() : EndToEndTest(kDefaultTimeoutMs) {}
|
| @@ -409,7 +425,7 @@ TEST_F(EndToEndTest, ReceiverUsesLocalSsrc) {
|
| RunBaseTest(&test);
|
| }
|
|
|
| -TEST_F(EndToEndTest, ReceivesAndRetransmitsNack) {
|
| +TEST_P(EndToEndTest, ReceivesAndRetransmitsNack) {
|
| static const int kNumberOfNacksToObserve = 2;
|
| static const int kLossBurstSize = 2;
|
| static const int kPacketsBetweenLossBursts = 9;
|
| @@ -491,7 +507,7 @@ TEST_F(EndToEndTest, ReceivesAndRetransmitsNack) {
|
| RunBaseTest(&test);
|
| }
|
|
|
| -TEST_F(EndToEndTest, ReceivesNackAndRetransmitsAudio) {
|
| +TEST_P(EndToEndTest, ReceivesNackAndRetransmitsAudio) {
|
| class NackObserver : public test::EndToEndTest {
|
| public:
|
| NackObserver()
|
| @@ -562,7 +578,7 @@ TEST_F(EndToEndTest, ReceivesNackAndRetransmitsAudio) {
|
| RunBaseTest(&test);
|
| }
|
|
|
| -TEST_F(EndToEndTest, CanReceiveUlpfec) {
|
| +TEST_P(EndToEndTest, CanReceiveUlpfec) {
|
| class UlpfecRenderObserver : public test::EndToEndTest,
|
| public rtc::VideoSinkInterface<VideoFrame> {
|
| public:
|
| @@ -655,13 +671,15 @@ TEST_F(EndToEndTest, CanReceiveUlpfec) {
|
|
|
| rtc::CriticalSection crit_;
|
| std::set<uint32_t> protected_sequence_numbers_ GUARDED_BY(crit_);
|
| - std::set<uint32_t> protected_timestamps_ GUARDED_BY(crit_);
|
| + // Since several packets can have the same timestamp a multiset is used
|
| + // instead of a set.
|
| + std::multiset<uint32_t> protected_timestamps_ GUARDED_BY(crit_);
|
| } test;
|
|
|
| RunBaseTest(&test);
|
| }
|
|
|
| -TEST_F(EndToEndTest, CanReceiveFlexfec) {
|
| +TEST_P(EndToEndTest, CanReceiveFlexfec) {
|
| class FlexfecRenderObserver : public test::EndToEndTest,
|
| public rtc::VideoSinkInterface<VideoFrame> {
|
| public:
|
| @@ -745,13 +763,15 @@ TEST_F(EndToEndTest, CanReceiveFlexfec) {
|
|
|
| rtc::CriticalSection crit_;
|
| std::set<uint32_t> protected_sequence_numbers_ GUARDED_BY(crit_);
|
| - std::set<uint32_t> protected_timestamps_ GUARDED_BY(crit_);
|
| + // Since several packets can have the same timestamp a multiset is used
|
| + // instead of a set.
|
| + std::multiset<uint32_t> protected_timestamps_ GUARDED_BY(crit_);
|
| } test;
|
|
|
| RunBaseTest(&test);
|
| }
|
|
|
| -TEST_F(EndToEndTest, ReceivedUlpfecPacketsNotNacked) {
|
| +TEST_P(EndToEndTest, ReceivedUlpfecPacketsNotNacked) {
|
| class UlpfecNackObserver : public test::EndToEndTest {
|
| public:
|
| UlpfecNackObserver()
|
| @@ -1049,19 +1069,19 @@ void EndToEndTest::DecodesRetransmittedFrame(bool enable_rtx, bool enable_red) {
|
| RunBaseTest(&test);
|
| }
|
|
|
| -TEST_F(EndToEndTest, DecodesRetransmittedFrame) {
|
| +TEST_P(EndToEndTest, DecodesRetransmittedFrame) {
|
| DecodesRetransmittedFrame(false, false);
|
| }
|
|
|
| -TEST_F(EndToEndTest, DecodesRetransmittedFrameOverRtx) {
|
| +TEST_P(EndToEndTest, DecodesRetransmittedFrameOverRtx) {
|
| DecodesRetransmittedFrame(true, false);
|
| }
|
|
|
| -TEST_F(EndToEndTest, DecodesRetransmittedFrameByRed) {
|
| +TEST_P(EndToEndTest, DecodesRetransmittedFrameByRed) {
|
| DecodesRetransmittedFrame(false, true);
|
| }
|
|
|
| -TEST_F(EndToEndTest, DecodesRetransmittedFrameByRedOverRtx) {
|
| +TEST_P(EndToEndTest, DecodesRetransmittedFrameByRedOverRtx) {
|
| DecodesRetransmittedFrame(true, true);
|
| }
|
|
|
| @@ -1145,15 +1165,18 @@ void EndToEndTest::ReceivesPliAndRecovers(int rtp_history_ms) {
|
| RunBaseTest(&test);
|
| }
|
|
|
| -TEST_F(EndToEndTest, ReceivesPliAndRecoversWithNack) {
|
| +TEST_P(EndToEndTest, ReceivesPliAndRecoversWithNack) {
|
| ReceivesPliAndRecovers(1000);
|
| }
|
|
|
| -TEST_F(EndToEndTest, ReceivesPliAndRecoversWithoutNack) {
|
| +TEST_P(EndToEndTest, ReceivesPliAndRecoversWithoutNack) {
|
| + // This test makes no sense for the new video jitter buffer.
|
| + if (GetParam() == "WebRTC-NewVideoJitterBuffer/Enabled/")
|
| + return;
|
| ReceivesPliAndRecovers(0);
|
| }
|
|
|
| -TEST_F(EndToEndTest, UnknownRtpPacketGivesUnknownSsrcReturnCode) {
|
| +TEST_P(EndToEndTest, UnknownRtpPacketGivesUnknownSsrcReturnCode) {
|
| class PacketInputObserver : public PacketReceiver {
|
| public:
|
| explicit PacketInputObserver(PacketReceiver* receiver)
|
| @@ -1285,11 +1308,11 @@ void EndToEndTest::RespectsRtcpMode(RtcpMode rtcp_mode) {
|
| RunBaseTest(&test);
|
| }
|
|
|
| -TEST_F(EndToEndTest, UsesRtcpCompoundMode) {
|
| +TEST_P(EndToEndTest, UsesRtcpCompoundMode) {
|
| RespectsRtcpMode(RtcpMode::kCompound);
|
| }
|
|
|
| -TEST_F(EndToEndTest, UsesRtcpReducedSizeMode) {
|
| +TEST_P(EndToEndTest, UsesRtcpReducedSizeMode) {
|
| RespectsRtcpMode(RtcpMode::kReducedSize);
|
| }
|
|
|
| @@ -1413,7 +1436,7 @@ class MultiStreamTest {
|
|
|
| // Each renderer verifies that it receives the expected resolution, and as soon
|
| // as every renderer has received a frame, the test finishes.
|
| -TEST_F(EndToEndTest, SendsAndReceivesMultipleStreams) {
|
| +TEST_P(EndToEndTest, SendsAndReceivesMultipleStreams) {
|
| class VideoOutputObserver : public rtc::VideoSinkInterface<VideoFrame> {
|
| public:
|
| VideoOutputObserver(const MultiStreamTest::CodecSettings& settings,
|
| @@ -1478,7 +1501,7 @@ TEST_F(EndToEndTest, SendsAndReceivesMultipleStreams) {
|
| tester.RunTest();
|
| }
|
|
|
| -TEST_F(EndToEndTest, AssignsTransportSequenceNumbers) {
|
| +TEST_P(EndToEndTest, AssignsTransportSequenceNumbers) {
|
| static const int kExtensionId = 5;
|
|
|
| class RtpExtensionHeaderObserver : public test::DirectTransport {
|
| @@ -1745,32 +1768,32 @@ class TransportFeedbackTester : public test::EndToEndTest {
|
| Call* receiver_call_;
|
| };
|
|
|
| -TEST_F(EndToEndTest, VideoReceivesTransportFeedback) {
|
| +TEST_P(EndToEndTest, VideoReceivesTransportFeedback) {
|
| TransportFeedbackTester test(true, 1, 0);
|
| RunBaseTest(&test);
|
| }
|
|
|
| -TEST_F(EndToEndTest, VideoTransportFeedbackNotConfigured) {
|
| +TEST_P(EndToEndTest, VideoTransportFeedbackNotConfigured) {
|
| TransportFeedbackTester test(false, 1, 0);
|
| RunBaseTest(&test);
|
| }
|
|
|
| -TEST_F(EndToEndTest, AudioReceivesTransportFeedback) {
|
| +TEST_P(EndToEndTest, AudioReceivesTransportFeedback) {
|
| TransportFeedbackTester test(true, 0, 1);
|
| RunBaseTest(&test);
|
| }
|
|
|
| -TEST_F(EndToEndTest, AudioTransportFeedbackNotConfigured) {
|
| +TEST_P(EndToEndTest, AudioTransportFeedbackNotConfigured) {
|
| TransportFeedbackTester test(false, 0, 1);
|
| RunBaseTest(&test);
|
| }
|
|
|
| -TEST_F(EndToEndTest, AudioVideoReceivesTransportFeedback) {
|
| +TEST_P(EndToEndTest, AudioVideoReceivesTransportFeedback) {
|
| TransportFeedbackTester test(true, 1, 1);
|
| RunBaseTest(&test);
|
| }
|
|
|
| -TEST_F(EndToEndTest, ObserversEncodedFrames) {
|
| +TEST_P(EndToEndTest, ObserversEncodedFrames) {
|
| class EncodedFrameTestObserver : public EncodedFrameObserver {
|
| public:
|
| EncodedFrameTestObserver()
|
| @@ -1845,7 +1868,7 @@ TEST_F(EndToEndTest, ObserversEncodedFrames) {
|
| DestroyStreams();
|
| }
|
|
|
| -TEST_F(EndToEndTest, ReceiveStreamSendsRemb) {
|
| +TEST_P(EndToEndTest, ReceiveStreamSendsRemb) {
|
| class RembObserver : public test::EndToEndTest {
|
| public:
|
| RembObserver() : EndToEndTest(kDefaultTimeoutMs) {}
|
| @@ -1874,7 +1897,7 @@ TEST_F(EndToEndTest, ReceiveStreamSendsRemb) {
|
| RunBaseTest(&test);
|
| }
|
|
|
| -TEST_F(EndToEndTest, VerifyBandwidthStats) {
|
| +TEST_P(EndToEndTest, VerifyBandwidthStats) {
|
| class RtcpObserver : public test::EndToEndTest {
|
| public:
|
| RtcpObserver()
|
| @@ -1920,7 +1943,7 @@ TEST_F(EndToEndTest, VerifyBandwidthStats) {
|
| // then have the test generate a REMB of 500 kbps and verify that the send BWE
|
| // is reduced to exactly 500 kbps. Then a REMB of 1000 kbps is generated and the
|
| // test verifies that the send BWE ramps back up to exactly 1000 kbps.
|
| -TEST_F(EndToEndTest, RembWithSendSideBwe) {
|
| +TEST_P(EndToEndTest, RembWithSendSideBwe) {
|
| class BweObserver : public test::EndToEndTest {
|
| public:
|
| BweObserver()
|
| @@ -2053,7 +2076,7 @@ TEST_F(EndToEndTest, RembWithSendSideBwe) {
|
| RunBaseTest(&test);
|
| }
|
|
|
| -TEST_F(EndToEndTest, VerifyNackStats) {
|
| +TEST_P(EndToEndTest, VerifyNackStats) {
|
| static const int kPacketNumberToDrop = 200;
|
| class NackObserver : public test::EndToEndTest {
|
| public:
|
| @@ -2385,21 +2408,21 @@ void EndToEndTest::VerifyHistogramStats(bool use_rtx,
|
| metrics::NumSamples("WebRTC.Video.ReceivedFecPacketsInPercent"));
|
| }
|
|
|
| -TEST_F(EndToEndTest, VerifyHistogramStatsWithRtx) {
|
| +TEST_P(EndToEndTest, VerifyHistogramStatsWithRtx) {
|
| const bool kEnabledRtx = true;
|
| const bool kEnabledRed = false;
|
| const bool kScreenshare = false;
|
| VerifyHistogramStats(kEnabledRtx, kEnabledRed, kScreenshare);
|
| }
|
|
|
| -TEST_F(EndToEndTest, VerifyHistogramStatsWithRed) {
|
| +TEST_P(EndToEndTest, VerifyHistogramStatsWithRed) {
|
| const bool kEnabledRtx = false;
|
| const bool kEnabledRed = true;
|
| const bool kScreenshare = false;
|
| VerifyHistogramStats(kEnabledRtx, kEnabledRed, kScreenshare);
|
| }
|
|
|
| -TEST_F(EndToEndTest, VerifyHistogramStatsWithScreenshare) {
|
| +TEST_P(EndToEndTest, VerifyHistogramStatsWithScreenshare) {
|
| const bool kEnabledRtx = false;
|
| const bool kEnabledRed = false;
|
| const bool kScreenshare = true;
|
| @@ -2607,7 +2630,7 @@ void EndToEndTest::TestSendsSetSsrcs(size_t num_ssrcs,
|
| RunBaseTest(&test);
|
| }
|
|
|
| -TEST_F(EndToEndTest, ReportsSetEncoderRates) {
|
| +TEST_P(EndToEndTest, ReportsSetEncoderRates) {
|
| class EncoderRateStatsTest : public test::EndToEndTest,
|
| public test::FakeEncoder {
|
| public:
|
| @@ -2687,7 +2710,7 @@ TEST_F(EndToEndTest, ReportsSetEncoderRates) {
|
| RunBaseTest(&test);
|
| }
|
|
|
| -TEST_F(EndToEndTest, GetStats) {
|
| +TEST_P(EndToEndTest, GetStats) {
|
| static const int kStartBitrateBps = 3000000;
|
| static const int kExpectedRenderDelayMs = 20;
|
|
|
| @@ -3028,18 +3051,22 @@ TEST_F(EndToEndTest, GetStats) {
|
| ReceiveStreamRenderer receive_stream_renderer_;
|
| } test;
|
|
|
| + // TODO(philipel): Implement statistics for the new video jitter buffer.
|
| + if (GetParam() == "WebRTC-NewVideoJitterBuffer/Enabled/")
|
| + return;
|
| +
|
| RunBaseTest(&test);
|
| }
|
|
|
| -TEST_F(EndToEndTest, ReceiverReferenceTimeReportEnabled) {
|
| +TEST_P(EndToEndTest, ReceiverReferenceTimeReportEnabled) {
|
| TestXrReceiverReferenceTimeReport(true);
|
| }
|
|
|
| -TEST_F(EndToEndTest, ReceiverReferenceTimeReportDisabled) {
|
| +TEST_P(EndToEndTest, ReceiverReferenceTimeReportDisabled) {
|
| TestXrReceiverReferenceTimeReport(false);
|
| }
|
|
|
| -TEST_F(EndToEndTest, TestReceivedRtpPacketStats) {
|
| +TEST_P(EndToEndTest, TestReceivedRtpPacketStats) {
|
| static const size_t kNumRtpPacketsToSend = 5;
|
| class ReceivedRtpStatsObserver : public test::EndToEndTest {
|
| public:
|
| @@ -3079,17 +3106,19 @@ TEST_F(EndToEndTest, TestReceivedRtpPacketStats) {
|
| RunBaseTest(&test);
|
| }
|
|
|
| -TEST_F(EndToEndTest, SendsSetSsrc) { TestSendsSetSsrcs(1, false); }
|
| +TEST_P(EndToEndTest, SendsSetSsrc) {
|
| + TestSendsSetSsrcs(1, false);
|
| +}
|
|
|
| -TEST_F(EndToEndTest, SendsSetSimulcastSsrcs) {
|
| +TEST_P(EndToEndTest, SendsSetSimulcastSsrcs) {
|
| TestSendsSetSsrcs(kNumSsrcs, false);
|
| }
|
|
|
| -TEST_F(EndToEndTest, CanSwitchToUseAllSsrcs) {
|
| +TEST_P(EndToEndTest, CanSwitchToUseAllSsrcs) {
|
| TestSendsSetSsrcs(kNumSsrcs, true);
|
| }
|
|
|
| -TEST_F(EndToEndTest, DISABLED_RedundantPayloadsTransmittedOnAllSsrcs) {
|
| +TEST_P(EndToEndTest, DISABLED_RedundantPayloadsTransmittedOnAllSsrcs) {
|
| class ObserveRedundantPayloads: public test::EndToEndTest {
|
| public:
|
| ObserveRedundantPayloads()
|
| @@ -3423,19 +3452,19 @@ void EndToEndTest::TestRtpStatePreservation(bool use_rtx,
|
| DestroyStreams();
|
| }
|
|
|
| -TEST_F(EndToEndTest, RestartingSendStreamPreservesRtpState) {
|
| +TEST_P(EndToEndTest, RestartingSendStreamPreservesRtpState) {
|
| TestRtpStatePreservation(false, false);
|
| }
|
|
|
| -TEST_F(EndToEndTest, RestartingSendStreamPreservesRtpStatesWithRtx) {
|
| +TEST_P(EndToEndTest, RestartingSendStreamPreservesRtpStatesWithRtx) {
|
| TestRtpStatePreservation(true, false);
|
| }
|
|
|
| -TEST_F(EndToEndTest, RestartingSendStreamKeepsRtpAndRtcpTimestampsSynced) {
|
| +TEST_P(EndToEndTest, RestartingSendStreamKeepsRtpAndRtcpTimestampsSynced) {
|
| TestRtpStatePreservation(true, true);
|
| }
|
|
|
| -TEST_F(EndToEndTest, RespectsNetworkState) {
|
| +TEST_P(EndToEndTest, RespectsNetworkState) {
|
| // TODO(pbos): Remove accepted downtime packets etc. when signaling network
|
| // down blocks until no more packets will be sent.
|
|
|
| @@ -3629,7 +3658,7 @@ TEST_F(EndToEndTest, RespectsNetworkState) {
|
| RunBaseTest(&test);
|
| }
|
|
|
| -TEST_F(EndToEndTest, CallReportsRttForSender) {
|
| +TEST_P(EndToEndTest, CallReportsRttForSender) {
|
| static const int kSendDelayMs = 30;
|
| static const int kReceiveDelayMs = 70;
|
| CreateCalls(Call::Config(&event_log_), Call::Config(&event_log_));
|
| @@ -3666,8 +3695,11 @@ TEST_F(EndToEndTest, CallReportsRttForSender) {
|
| SleepMs(10);
|
| }
|
|
|
| + sender_transport.StopSending();
|
| + receiver_transport.StopSending();
|
| Stop();
|
| DestroyStreams();
|
| + DestroyCalls();
|
| }
|
|
|
| void EndToEndTest::VerifyNewVideoSendStreamsRespectNetworkState(
|
| @@ -3714,7 +3746,7 @@ void EndToEndTest::VerifyNewVideoReceiveStreamsRespectNetworkState(
|
| DestroyStreams();
|
| }
|
|
|
| -TEST_F(EndToEndTest, NewVideoSendStreamsRespectVideoNetworkDown) {
|
| +TEST_P(EndToEndTest, NewVideoSendStreamsRespectVideoNetworkDown) {
|
| class UnusedEncoder : public test::FakeEncoder {
|
| public:
|
| UnusedEncoder() : FakeEncoder(Clock::GetRealTimeClock()) {}
|
| @@ -3740,7 +3772,7 @@ TEST_F(EndToEndTest, NewVideoSendStreamsRespectVideoNetworkDown) {
|
| MediaType::AUDIO, &unused_encoder, &unused_transport);
|
| }
|
|
|
| -TEST_F(EndToEndTest, NewVideoSendStreamsIgnoreAudioNetworkDown) {
|
| +TEST_P(EndToEndTest, NewVideoSendStreamsIgnoreAudioNetworkDown) {
|
| class RequiredEncoder : public test::FakeEncoder {
|
| public:
|
| RequiredEncoder()
|
| @@ -3768,12 +3800,12 @@ TEST_F(EndToEndTest, NewVideoSendStreamsIgnoreAudioNetworkDown) {
|
| MediaType::VIDEO, &required_encoder, &required_transport);
|
| }
|
|
|
| -TEST_F(EndToEndTest, NewVideoReceiveStreamsRespectVideoNetworkDown) {
|
| +TEST_P(EndToEndTest, NewVideoReceiveStreamsRespectVideoNetworkDown) {
|
| UnusedTransport transport;
|
| VerifyNewVideoReceiveStreamsRespectNetworkState(MediaType::AUDIO, &transport);
|
| }
|
|
|
| -TEST_F(EndToEndTest, NewVideoReceiveStreamsIgnoreAudioNetworkDown) {
|
| +TEST_P(EndToEndTest, NewVideoReceiveStreamsIgnoreAudioNetworkDown) {
|
| RequiredTransport transport(false /*rtp*/, true /*rtcp*/);
|
| VerifyNewVideoReceiveStreamsRespectNetworkState(MediaType::VIDEO, &transport);
|
| }
|
| @@ -3799,7 +3831,7 @@ void VerifyEmptyFlexfecConfig(const FlexfecConfig& config) {
|
| << "Enabling FlexFEC requires ssrc-group: FEC-FR negotiation.";
|
| }
|
|
|
| -TEST_F(EndToEndTest, VerifyDefaultSendConfigParameters) {
|
| +TEST_P(EndToEndTest, VerifyDefaultSendConfigParameters) {
|
| VideoSendStream::Config default_send_config(nullptr);
|
| EXPECT_EQ(0, default_send_config.rtp.nack.rtp_history_ms)
|
| << "Enabling NACK require rtcp-fb: nack negotiation.";
|
| @@ -3813,7 +3845,7 @@ TEST_F(EndToEndTest, VerifyDefaultSendConfigParameters) {
|
| VerifyEmptyFlexfecConfig(default_send_config.rtp.flexfec);
|
| }
|
|
|
| -TEST_F(EndToEndTest, VerifyDefaultVideoReceiveConfigParameters) {
|
| +TEST_P(EndToEndTest, VerifyDefaultVideoReceiveConfigParameters) {
|
| VideoReceiveStream::Config default_receive_config(nullptr);
|
| EXPECT_EQ(RtcpMode::kCompound, default_receive_config.rtp.rtcp_mode)
|
| << "Reduced-size RTCP require rtcp-rsize to be negotiated.";
|
| @@ -3831,12 +3863,12 @@ TEST_F(EndToEndTest, VerifyDefaultVideoReceiveConfigParameters) {
|
| VerifyEmptyUlpfecConfig(default_receive_config.rtp.ulpfec);
|
| }
|
|
|
| -TEST_F(EndToEndTest, VerifyDefaultFlexfecReceiveConfigParameters) {
|
| +TEST_P(EndToEndTest, VerifyDefaultFlexfecReceiveConfigParameters) {
|
| FlexfecReceiveStream::Config default_receive_config;
|
| VerifyEmptyFlexfecConfig(default_receive_config);
|
| }
|
|
|
| -TEST_F(EndToEndTest, TransportSeqNumOnAudioAndVideo) {
|
| +TEST_P(EndToEndTest, TransportSeqNumOnAudioAndVideo) {
|
| static const int kExtensionId = 8;
|
| class TransportSequenceNumberTest : public test::EndToEndTest {
|
| public:
|
| @@ -3947,7 +3979,7 @@ class EndToEndLogTest : public EndToEndTest {
|
| std::vector<std::string> paths_;
|
| };
|
|
|
| -TEST_F(EndToEndLogTest, LogsEncodedFramesWhenRequested) {
|
| +TEST_P(EndToEndLogTest, LogsEncodedFramesWhenRequested) {
|
| static const int kNumFramesToRecord = 10;
|
| class LogEncodingObserver : public test::EndToEndTest,
|
| public EncodedFrameObserver {
|
|
|