Chromium Code Reviews| 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 fc793eccf60b13b3ac9d56a9320d99307fede504..a12b63ea68892bce56063042e3e58e1a2a74da0d 100644 |
| --- a/webrtc/video/end_to_end_tests.cc |
| +++ b/webrtc/video/end_to_end_tests.cc |
| @@ -80,7 +80,7 @@ class EndToEndTest : public test::CallTest { |
| void RespectsRtcpMode(RtcpMode rtcp_mode); |
| void TestXrReceiverReferenceTimeReport(bool enable_rrtr); |
| void TestSendsSetSsrcs(size_t num_ssrcs, bool send_single_ssrc_first); |
| - void TestRtpStatePreservation(bool use_rtx); |
| + void TestRtpStatePreservation(bool use_rtx, bool wait_rtcp); |
| void VerifyHistogramStats(bool use_rtx, bool use_red, bool screenshare); |
| }; |
| @@ -2936,7 +2936,7 @@ TEST_F(EndToEndTest, DISABLED_RedundantPayloadsTransmittedOnAllSsrcs) { |
| RunBaseTest(&test); |
| } |
| -void EndToEndTest::TestRtpStatePreservation(bool use_rtx) { |
| +void EndToEndTest::TestRtpStatePreservation(bool use_rtx, bool wait_rtcp) { |
| static const uint32_t kMaxSequenceNumberGap = 100; |
| class RtpSequenceObserver : public test::RtpRtcpObserver { |
| public: |
| @@ -3105,6 +3105,16 @@ void EndToEndTest::TestRtpStatePreservation(bool use_rtx) { |
| video_send_stream_ = |
| sender_call_->CreateVideoSendStream(video_send_config_, one_stream); |
| video_send_stream_->Start(); |
| + if (wait_rtcp) { |
| + // Wait for SR rtcp packet before generating rtp packets. |
|
stefan-webrtc
2016/02/01 17:32:07
I'm not sure I understand this test change. How ca
danilchap
2016/02/01 18:24:18
RTP packets will not be send until FrameGeneratorC
|
| + // There should be no rtcp packet or its time should be in sync with rtp. |
| + |
| + // Rapid Resync Request forces sending RTCP Sender Report back. |
| + // Alternative approach is to wait several seconds for SR to be generated. |
| + // TODO(danilchap): Create rtcp packet with dedicated class when it lands. |
| + const uint8_t kPacket[] = {0x85, 205, 0x00, 0x02, 0, 0, 0, 0, 0, 0, 0, 0}; |
| + video_send_stream_->DeliverRtcp(kPacket, sizeof(kPacket)); |
| + } |
| CreateFrameGeneratorCapturer(); |
| frame_generator_capturer_->Start(); |
| @@ -3137,11 +3147,15 @@ void EndToEndTest::TestRtpStatePreservation(bool use_rtx) { |
| } |
| TEST_F(EndToEndTest, DISABLED_RestartingSendStreamPreservesRtpState) { |
| - TestRtpStatePreservation(false); |
| + TestRtpStatePreservation(false, false); |
| } |
| TEST_F(EndToEndTest, RestartingSendStreamPreservesRtpStatesWithRtx) { |
| - TestRtpStatePreservation(true); |
| + TestRtpStatePreservation(true, false); |
| +} |
| + |
| +TEST_F(EndToEndTest, RestartingSendStreamKeepsRtpAndRtcpTimestampsSynced) { |
| + TestRtpStatePreservation(true, true); |
| } |
| TEST_F(EndToEndTest, RespectsNetworkState) { |