Index: webrtc/modules/pacing/alr_detector.cc |
diff --git a/webrtc/modules/pacing/alr_detector.cc b/webrtc/modules/pacing/alr_detector.cc |
index 93752cf751395d99db60e146ef87f4b0558e4dcb..a262c6dcb102a5f27ee6bad4dd4fb6796583fec3 100644 |
--- a/webrtc/modules/pacing/alr_detector.cc |
+++ b/webrtc/modules/pacing/alr_detector.cc |
@@ -103,4 +103,21 @@ AlrDetector::ParseAlrSettingsFromFieldTrial() { |
return ret; |
} |
+AlrState::AlrState() : was_in_alr_(false) {} |
+ |
+void AlrState::Update(rtc::Optional<int64_t> alr_start_time_ms) { |
+ if (was_in_alr_ && !alr_start_time_ms) { |
+ alr_state_changed_to_.emplace(AlrState::State::kNotInAlr); |
+ } else if (!was_in_alr_ && alr_start_time_ms) { |
+ alr_state_changed_to_.emplace(AlrState::State::kInAlr); |
+ } else { |
+ alr_state_changed_to_.reset(); |
philipel
2017/07/14 13:56:23
Isn't |alr_state_changed_to_| just |current_state_
tschumi
2017/07/14 15:36:51
Removed AlrState
|
+ } |
+ was_in_alr_ = alr_start_time_ms.has_value(); |
philipel
2017/07/14 13:56:23
|was_in_alr_| same as |in_alr_|?
tschumi
2017/07/14 15:36:51
Removed AlrState
|
+} |
+ |
+bool AlrState::HasChangedTo(AlrState::State state) { |
+ return alr_state_changed_to_ && *alr_state_changed_to_ == state; |
+} |
+ |
} // namespace webrtc |