| Index: webrtc/modules/audio_coding/audio_network_adaptor/channel_controller_unittest.cc
|
| diff --git a/webrtc/modules/audio_coding/audio_network_adaptor/channel_controller_unittest.cc b/webrtc/modules/audio_coding/audio_network_adaptor/channel_controller_unittest.cc
|
| index 2b09563412574b89eb09ec9d38f90b43598fb236..def2e51fab30488923edbe54083b1a3db1452d9e 100644
|
| --- a/webrtc/modules/audio_coding/audio_network_adaptor/channel_controller_unittest.cc
|
| +++ b/webrtc/modules/audio_coding/audio_network_adaptor/channel_controller_unittest.cc
|
| @@ -32,10 +32,15 @@ std::unique_ptr<ChannelController> CreateChannelController(int init_channels) {
|
| }
|
|
|
| void CheckDecision(ChannelController* controller,
|
| - const Controller::NetworkMetrics& metrics,
|
| + const rtc::Optional<int>& uplink_bandwidth_bps,
|
| size_t expected_num_channels) {
|
| + if (uplink_bandwidth_bps) {
|
| + Controller::NetworkMetrics network_metrics;
|
| + network_metrics.uplink_bandwidth_bps = uplink_bandwidth_bps;
|
| + controller->UpdateNetworkMetrics(network_metrics);
|
| + }
|
| AudioNetworkAdaptor::EncoderRuntimeConfig config;
|
| - controller->MakeDecision(metrics, &config);
|
| + controller->MakeDecision(&config);
|
| EXPECT_EQ(rtc::Optional<size_t>(expected_num_channels), config.num_channels);
|
| }
|
|
|
| @@ -44,70 +49,56 @@ void CheckDecision(ChannelController* controller,
|
| TEST(ChannelControllerTest, OutputInitValueWhenUplinkBandwidthUnknown) {
|
| constexpr int kInitChannels = 2;
|
| auto controller = CreateChannelController(kInitChannels);
|
| - Controller::NetworkMetrics metrics;
|
| - CheckDecision(controller.get(), metrics, kInitChannels);
|
| + CheckDecision(controller.get(), rtc::Optional<int>(), kInitChannels);
|
| }
|
|
|
| TEST(ChannelControllerTest, SwitchTo2ChannelsOnHighUplinkBandwidth) {
|
| constexpr int kInitChannels = 1;
|
| auto controller = CreateChannelController(kInitChannels);
|
| - Controller::NetworkMetrics metrics;
|
| -
|
| // Use high bandwidth to check output switch to 2.
|
| - metrics.uplink_bandwidth_bps = rtc::Optional<int>(kChannel1To2BandwidthBps);
|
| - CheckDecision(controller.get(), metrics, 2);
|
| + CheckDecision(controller.get(), rtc::Optional<int>(kChannel1To2BandwidthBps),
|
| + 2);
|
| }
|
|
|
| TEST(ChannelControllerTest, SwitchTo1ChannelOnLowUplinkBandwidth) {
|
| constexpr int kInitChannels = 2;
|
| auto controller = CreateChannelController(kInitChannels);
|
| - Controller::NetworkMetrics metrics;
|
| -
|
| // Use low bandwidth to check output switch to 1.
|
| - metrics.uplink_bandwidth_bps = rtc::Optional<int>(kChannel2To1BandwidthBps);
|
| - CheckDecision(controller.get(), metrics, 1);
|
| + CheckDecision(controller.get(), rtc::Optional<int>(kChannel2To1BandwidthBps),
|
| + 1);
|
| }
|
|
|
| TEST(ChannelControllerTest, Maintain1ChannelOnMediumUplinkBandwidth) {
|
| constexpr int kInitChannels = 1;
|
| auto controller = CreateChannelController(kInitChannels);
|
| - Controller::NetworkMetrics metrics;
|
| -
|
| // Use between-thresholds bandwidth to check output remains at 1.
|
| - metrics.uplink_bandwidth_bps = rtc::Optional<int>(kMediumBandwidthBps);
|
| - CheckDecision(controller.get(), metrics, 1);
|
| + CheckDecision(controller.get(), rtc::Optional<int>(kMediumBandwidthBps), 1);
|
| }
|
|
|
| TEST(ChannelControllerTest, Maintain2ChannelsOnMediumUplinkBandwidth) {
|
| constexpr int kInitChannels = 2;
|
| auto controller = CreateChannelController(kInitChannels);
|
| - Controller::NetworkMetrics metrics;
|
| -
|
| // Use between-thresholds bandwidth to check output remains at 2.
|
| - metrics.uplink_bandwidth_bps = rtc::Optional<int>(kMediumBandwidthBps);
|
| - CheckDecision(controller.get(), metrics, 2);
|
| + CheckDecision(controller.get(), rtc::Optional<int>(kMediumBandwidthBps), 2);
|
| }
|
|
|
| TEST(ChannelControllerTest, CheckBehaviorOnChangingUplinkBandwidth) {
|
| constexpr int kInitChannels = 1;
|
| auto controller = CreateChannelController(kInitChannels);
|
| - Controller::NetworkMetrics metrics;
|
|
|
| // Use between-thresholds bandwidth to check output remains at 1.
|
| - metrics.uplink_bandwidth_bps = rtc::Optional<int>(kMediumBandwidthBps);
|
| - CheckDecision(controller.get(), metrics, 1);
|
| + CheckDecision(controller.get(), rtc::Optional<int>(kMediumBandwidthBps), 1);
|
|
|
| // Use high bandwidth to check output switch to 2.
|
| - metrics.uplink_bandwidth_bps = rtc::Optional<int>(kChannel1To2BandwidthBps);
|
| - CheckDecision(controller.get(), metrics, 2);
|
| + CheckDecision(controller.get(), rtc::Optional<int>(kChannel1To2BandwidthBps),
|
| + 2);
|
|
|
| // Use between-thresholds bandwidth to check output remains at 2.
|
| - metrics.uplink_bandwidth_bps = rtc::Optional<int>(kMediumBandwidthBps);
|
| - CheckDecision(controller.get(), metrics, 2);
|
| + CheckDecision(controller.get(), rtc::Optional<int>(kMediumBandwidthBps), 2);
|
|
|
| // Use low bandwidth to check output switch to 1.
|
| - metrics.uplink_bandwidth_bps = rtc::Optional<int>(kChannel2To1BandwidthBps);
|
| - CheckDecision(controller.get(), metrics, 1);
|
| + CheckDecision(controller.get(), rtc::Optional<int>(kChannel2To1BandwidthBps),
|
| + 1);
|
| }
|
|
|
| } // namespace webrtc
|
|
|