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) { |