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 b2a29d2c61f7f934cb20d7a3b430f7c3700fa798..528338defe0adee2c5242abad5f09e1c6a59ef0c 100644 |
--- a/webrtc/video/end_to_end_tests.cc |
+++ b/webrtc/video/end_to_end_tests.cc |
@@ -3062,9 +3062,9 @@ void EndToEndTest::TestRtpStatePreservation(bool use_rtx, |
: test::RtpRtcpObserver(kDefaultTimeoutMs), |
ssrcs_to_observe_(kNumSsrcs) { |
for (size_t i = 0; i < kNumSsrcs; ++i) { |
- configured_ssrcs_[kVideoSendSsrcs[i]] = true; |
+ ssrc_is_rtx_[kVideoSendSsrcs[i]] = false; |
if (use_rtx) |
- configured_ssrcs_[kSendRtxSsrcs[i]] = true; |
+ ssrc_is_rtx_[kSendRtxSsrcs[i]] = true; |
} |
} |
@@ -3107,7 +3107,7 @@ void EndToEndTest::TestRtpStatePreservation(bool use_rtx, |
const bool only_padding = |
header.headerLength + header.paddingLength == length; |
- EXPECT_TRUE(configured_ssrcs_[ssrc]) |
+ EXPECT_TRUE(ssrc_is_rtx_.find(ssrc) != ssrc_is_rtx_.end()) |
<< "Received SSRC that wasn't configured: " << ssrc; |
static const int64_t kMaxSequenceNumberGap = 100; |
@@ -3133,14 +3133,16 @@ void EndToEndTest::TestRtpStatePreservation(bool use_rtx, |
} |
} |
- rtc::CritScope lock(&crit_); |
- ValidateTimestampGap(ssrc, timestamp, only_padding); |
+ if (!ssrc_is_rtx_[ssrc]) { |
+ rtc::CritScope lock(&crit_); |
+ ValidateTimestampGap(ssrc, timestamp, only_padding); |
- // Wait for media packets on all ssrcs. |
- if (!ssrc_observed_[ssrc] && !only_padding) { |
- ssrc_observed_[ssrc] = true; |
- if (--ssrcs_to_observe_ == 0) |
- observation_complete_.Set(); |
+ // Wait for media packets on all ssrcs. |
+ if (!ssrc_observed_[ssrc] && !only_padding) { |
+ ssrc_observed_[ssrc] = true; |
+ if (--ssrcs_to_observe_ == 0) |
+ observation_complete_.Set(); |
+ } |
} |
return SEND_PACKET; |
@@ -3162,7 +3164,7 @@ void EndToEndTest::TestRtpStatePreservation(bool use_rtx, |
SequenceNumberUnwrapper seq_numbers_unwrapper_; |
std::map<uint32_t, std::list<int64_t>> last_observed_seq_numbers_; |
std::map<uint32_t, uint32_t> last_observed_timestamp_; |
- std::map<uint32_t, bool> configured_ssrcs_; |
+ std::map<uint32_t, bool> ssrc_is_rtx_; |
rtc::CriticalSection crit_; |
size_t ssrcs_to_observe_ GUARDED_BY(crit_); |
@@ -3272,14 +3274,11 @@ TEST_F(EndToEndTest, RestartingSendStreamPreservesRtpState) { |
TestRtpStatePreservation(false, false); |
} |
-// These tests are flaky. See: |
-// https://bugs.chromium.org/p/webrtc/issues/detail?id=4332 |
-TEST_F(EndToEndTest, DISABLED_RestartingSendStreamPreservesRtpStatesWithRtx) { |
+TEST_F(EndToEndTest, RestartingSendStreamPreservesRtpStatesWithRtx) { |
TestRtpStatePreservation(true, false); |
} |
-TEST_F(EndToEndTest, |
- DISABLED_RestartingSendStreamKeepsRtpAndRtcpTimestampsSynced) { |
+TEST_F(EndToEndTest, RestartingSendStreamKeepsRtpAndRtcpTimestampsSynced) { |
TestRtpStatePreservation(true, true); |
} |