Index: webrtc/modules/audio_coding/audio_network_adaptor/controller_manager.cc |
diff --git a/webrtc/modules/audio_coding/audio_network_adaptor/controller_manager.cc b/webrtc/modules/audio_coding/audio_network_adaptor/controller_manager.cc |
index ce4e2f984ad675902e9d65517b1f63a1f3af87a5..87d08f30e6d93ecc76527cb4570fea43de24e84a 100644 |
--- a/webrtc/modules/audio_coding/audio_network_adaptor/controller_manager.cc |
+++ b/webrtc/modules/audio_coding/audio_network_adaptor/controller_manager.cc |
@@ -253,13 +253,19 @@ std::unique_ptr<ControllerManager> ControllerManagerImpl::Create( |
controllers.push_back(std::move(controller)); |
} |
- RTC_CHECK(controller_manager_config.has_min_reordering_time_ms()); |
- RTC_CHECK(controller_manager_config.has_min_reordering_squared_distance()); |
- return std::unique_ptr<ControllerManagerImpl>(new ControllerManagerImpl( |
- ControllerManagerImpl::Config( |
- controller_manager_config.min_reordering_time_ms(), |
- controller_manager_config.min_reordering_squared_distance()), |
- std::move(controllers), chracteristic_points)); |
+ if (chracteristic_points.size() == 0) { |
tschumi
2017/05/30 14:03:24
Do you think its worth the extra complexity ?
|
+ return std::unique_ptr<ControllerManagerImpl>(new ControllerManagerImpl( |
+ ControllerManagerImpl::Config(0, 0), std::move(controllers), |
+ chracteristic_points)); |
+ } else { |
+ RTC_CHECK(controller_manager_config.has_min_reordering_time_ms()); |
+ RTC_CHECK(controller_manager_config.has_min_reordering_squared_distance()); |
+ return std::unique_ptr<ControllerManagerImpl>(new ControllerManagerImpl( |
+ ControllerManagerImpl::Config( |
+ controller_manager_config.min_reordering_time_ms(), |
+ controller_manager_config.min_reordering_squared_distance()), |
+ std::move(controllers), chracteristic_points)); |
+ } |
#else |
RTC_NOTREACHED(); |
return nullptr; |
@@ -295,11 +301,13 @@ ControllerManagerImpl::~ControllerManagerImpl() = default; |
std::vector<Controller*> ControllerManagerImpl::GetSortedControllers( |
const Controller::NetworkMetrics& metrics) { |
- int64_t now_ms = rtc::TimeMillis(); |
+ if (controller_scoring_points_.size() == 0) |
+ return default_sorted_controllers_; |
if (!metrics.uplink_bandwidth_bps || !metrics.uplink_packet_loss_fraction) |
return sorted_controllers_; |
+ const int64_t now_ms = rtc::TimeMillis(); |
if (last_reordering_time_ms_ && |
now_ms - *last_reordering_time_ms_ < config_.min_reordering_time_ms) |
return sorted_controllers_; |