Index: webrtc/call/call.cc |
diff --git a/webrtc/call/call.cc b/webrtc/call/call.cc |
index e9838d9baad0acdadde8f33ddc12bb863068cc92..7c3e230b1969e3fd24c1c1feb36d3b66ae9c54a1 100644 |
--- a/webrtc/call/call.cc |
+++ b/webrtc/call/call.cc |
@@ -180,6 +180,9 @@ class Call : public webrtc::Call, |
void SetBitrateConfig( |
const webrtc::Call::Config::BitrateConfig& bitrate_config) override; |
+ void UpdateBitrateConfig( |
+ const webrtc::Call::Config::BitrateConfigMask& bitrate_config) override; |
+ |
void SignalChannelNetworkState(MediaType media, NetworkState state) override; |
void OnTransportOverheadChanged(MediaType media, |
@@ -922,6 +925,23 @@ void Call::SetBitrateConfig( |
bitrate_config.max_bitrate_bps); |
} |
+void Call::UpdateBitrateConfig( |
+ const webrtc::Call::Config::BitrateConfigMask& mask) { |
+ TRACE_EVENT0("webrtc", "Call::UpdateBitrateConfig"); |
+ RTC_DCHECK(configuration_thread_checker_.CalledOnValidThread()); |
+ |
+ const Config::BitrateConfig& current_config = config_.bitrate_config; |
+ Config::BitrateConfig new_config; |
+ new_config.min_bitrate_bps = |
+ mask.min_bitrate_bps.value_or(current_config.min_bitrate_bps); |
+ new_config.start_bitrate_bps = |
+ mask.start_bitrate_bps.value_or(current_config.start_bitrate_bps); |
+ new_config.max_bitrate_bps = |
+ mask.max_bitrate_bps.value_or(current_config.max_bitrate_bps); |
+ |
+ SetBitrateConfig(new_config); |
+} |
+ |
void Call::SignalChannelNetworkState(MediaType media, NetworkState state) { |
RTC_DCHECK(configuration_thread_checker_.CalledOnValidThread()); |
switch (media) { |