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 bf512d2592c5233493f9c459a686ea95e4fd9bdd..c4005507bd94df7e81a19637ec33e14166129da2 100644 | 
| --- a/webrtc/video/end_to_end_tests.cc | 
| +++ b/webrtc/video/end_to_end_tests.cc | 
| @@ -2145,45 +2145,45 @@ TEST_P(EndToEndTest, RembWithSendSideBwe) { | 
| sender_call_ = sender_call; | 
| } | 
| - static bool BitrateStatsPollingThread(void* obj) { | 
| - return static_cast<BweObserver*>(obj)->PollStats(); | 
| - } | 
| - | 
| - bool PollStats() { | 
| - if (sender_call_) { | 
| - Call::Stats stats = sender_call_->GetStats(); | 
| - switch (state_) { | 
| - case kWaitForFirstRampUp: | 
| - if (stats.send_bandwidth_bps >= remb_bitrate_bps_) { | 
| - state_ = kWaitForRemb; | 
| - remb_bitrate_bps_ /= 2; | 
| - rtp_rtcp_->SetREMBData( | 
| - remb_bitrate_bps_, | 
| - std::vector<uint32_t>(&sender_ssrc_, &sender_ssrc_ + 1)); | 
| - rtp_rtcp_->SendRTCP(kRtcpRr); | 
| - } | 
| - break; | 
| - | 
| - case kWaitForRemb: | 
| - if (stats.send_bandwidth_bps == remb_bitrate_bps_) { | 
| - state_ = kWaitForSecondRampUp; | 
| - remb_bitrate_bps_ *= 2; | 
| - rtp_rtcp_->SetREMBData( | 
| - remb_bitrate_bps_, | 
| - std::vector<uint32_t>(&sender_ssrc_, &sender_ssrc_ + 1)); | 
| - rtp_rtcp_->SendRTCP(kRtcpRr); | 
| - } | 
| - break; | 
| - | 
| - case kWaitForSecondRampUp: | 
| - if (stats.send_bandwidth_bps == remb_bitrate_bps_) { | 
| - observation_complete_.Set(); | 
| - } | 
| - break; | 
| + static void BitrateStatsPollingThread(void* obj) { | 
| + static_cast<BweObserver*>(obj)->PollStats(); | 
| + } | 
| + | 
| + void PollStats() { | 
| + do { | 
| + if (sender_call_) { | 
| + Call::Stats stats = sender_call_->GetStats(); | 
| + switch (state_) { | 
| + case kWaitForFirstRampUp: | 
| + if (stats.send_bandwidth_bps >= remb_bitrate_bps_) { | 
| + state_ = kWaitForRemb; | 
| + remb_bitrate_bps_ /= 2; | 
| + rtp_rtcp_->SetREMBData( | 
| + remb_bitrate_bps_, | 
| + std::vector<uint32_t>(&sender_ssrc_, &sender_ssrc_ + 1)); | 
| + rtp_rtcp_->SendRTCP(kRtcpRr); | 
| + } | 
| + break; | 
| + | 
| + case kWaitForRemb: | 
| + if (stats.send_bandwidth_bps == remb_bitrate_bps_) { | 
| + state_ = kWaitForSecondRampUp; | 
| + remb_bitrate_bps_ *= 2; | 
| + rtp_rtcp_->SetREMBData( | 
| + remb_bitrate_bps_, | 
| + std::vector<uint32_t>(&sender_ssrc_, &sender_ssrc_ + 1)); | 
| + rtp_rtcp_->SendRTCP(kRtcpRr); | 
| + } | 
| + break; | 
| + | 
| + case kWaitForSecondRampUp: | 
| + if (stats.send_bandwidth_bps == remb_bitrate_bps_) { | 
| + observation_complete_.Set(); | 
| + } | 
| + break; | 
| + } | 
| } | 
| - } | 
| - | 
| - return !stop_event_.Wait(1000); | 
| + } while (!stop_event_.Wait(1000)); | 
| 
 
the sun
2017/02/22 13:42:58
note: this appears to work since stop_event_.Set()
 
tommi
2017/02/22 15:04:01
Yes, that's the case I found and fixed yesterday.
 
 | 
| } | 
| void PerformTest() override { |