OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 18 matching lines...) Expand all Loading... |
29 | 29 |
30 constexpr size_t kNumControllers = 2; | 30 constexpr size_t kNumControllers = 2; |
31 | 31 |
32 constexpr int64_t kClockInitialTimeMs = 12345678; | 32 constexpr int64_t kClockInitialTimeMs = 12345678; |
33 | 33 |
34 MATCHER_P(NetworkMetricsIs, metric, "") { | 34 MATCHER_P(NetworkMetricsIs, metric, "") { |
35 return arg.uplink_bandwidth_bps == metric.uplink_bandwidth_bps && | 35 return arg.uplink_bandwidth_bps == metric.uplink_bandwidth_bps && |
36 arg.target_audio_bitrate_bps == metric.target_audio_bitrate_bps && | 36 arg.target_audio_bitrate_bps == metric.target_audio_bitrate_bps && |
37 arg.rtt_ms == metric.rtt_ms && | 37 arg.rtt_ms == metric.rtt_ms && |
38 arg.overhead_bytes_per_packet == metric.overhead_bytes_per_packet && | 38 arg.overhead_bytes_per_packet == metric.overhead_bytes_per_packet && |
39 arg.uplink_packet_loss_fraction == metric.uplink_packet_loss_fraction; | 39 arg.uplink_packet_loss_fraction == |
| 40 metric.uplink_packet_loss_fraction && |
| 41 arg.uplink_recoverable_packet_loss_fraction == |
| 42 metric.uplink_recoverable_packet_loss_fraction; |
40 } | 43 } |
41 | 44 |
42 MATCHER_P(EncoderRuntimeConfigIs, config, "") { | 45 MATCHER_P(EncoderRuntimeConfigIs, config, "") { |
43 return arg.bitrate_bps == config.bitrate_bps && | 46 return arg.bitrate_bps == config.bitrate_bps && |
44 arg.frame_length_ms == config.frame_length_ms && | 47 arg.frame_length_ms == config.frame_length_ms && |
45 arg.uplink_packet_loss_fraction == | 48 arg.uplink_packet_loss_fraction == |
46 config.uplink_packet_loss_fraction && | 49 config.uplink_packet_loss_fraction && |
47 arg.enable_fec == config.enable_fec && | 50 arg.enable_fec == config.enable_fec && |
48 arg.enable_dtx == config.enable_dtx && | 51 arg.enable_dtx == config.enable_dtx && |
49 arg.num_channels == config.num_channels; | 52 arg.num_channels == config.num_channels; |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
120 TEST(AudioNetworkAdaptorImplTest, | 123 TEST(AudioNetworkAdaptorImplTest, |
121 UpdateNetworkMetricsIsCalledOnSetUplinkPacketLossFraction) { | 124 UpdateNetworkMetricsIsCalledOnSetUplinkPacketLossFraction) { |
122 auto states = CreateAudioNetworkAdaptor(); | 125 auto states = CreateAudioNetworkAdaptor(); |
123 constexpr float kPacketLoss = 0.7f; | 126 constexpr float kPacketLoss = 0.7f; |
124 Controller::NetworkMetrics check; | 127 Controller::NetworkMetrics check; |
125 check.uplink_packet_loss_fraction = rtc::Optional<float>(kPacketLoss); | 128 check.uplink_packet_loss_fraction = rtc::Optional<float>(kPacketLoss); |
126 SetExpectCallToUpdateNetworkMetrics(states.mock_controllers, check); | 129 SetExpectCallToUpdateNetworkMetrics(states.mock_controllers, check); |
127 states.audio_network_adaptor->SetUplinkPacketLossFraction(kPacketLoss); | 130 states.audio_network_adaptor->SetUplinkPacketLossFraction(kPacketLoss); |
128 } | 131 } |
129 | 132 |
| 133 TEST(AudioNetworkAdaptorImplTest, |
| 134 UpdateNetworkMetricsIsCalledOnSetUplinkRecoverablePacketLossFraction) { |
| 135 auto states = CreateAudioNetworkAdaptor(); |
| 136 constexpr float kRecoverablePacketLoss = 0.1f; |
| 137 Controller::NetworkMetrics check; |
| 138 check.uplink_recoverable_packet_loss_fraction = |
| 139 rtc::Optional<float>(kRecoverablePacketLoss); |
| 140 SetExpectCallToUpdateNetworkMetrics(states.mock_controllers, check); |
| 141 states.audio_network_adaptor->SetUplinkRecoverablePacketLossFraction( |
| 142 kRecoverablePacketLoss); |
| 143 } |
| 144 |
130 TEST(AudioNetworkAdaptorImplTest, UpdateNetworkMetricsIsCalledOnSetRtt) { | 145 TEST(AudioNetworkAdaptorImplTest, UpdateNetworkMetricsIsCalledOnSetRtt) { |
131 auto states = CreateAudioNetworkAdaptor(); | 146 auto states = CreateAudioNetworkAdaptor(); |
132 constexpr int kRtt = 100; | 147 constexpr int kRtt = 100; |
133 Controller::NetworkMetrics check; | 148 Controller::NetworkMetrics check; |
134 check.rtt_ms = rtc::Optional<int>(kRtt); | 149 check.rtt_ms = rtc::Optional<int>(kRtt); |
135 SetExpectCallToUpdateNetworkMetrics(states.mock_controllers, check); | 150 SetExpectCallToUpdateNetworkMetrics(states.mock_controllers, check); |
136 states.audio_network_adaptor->SetRtt(kRtt); | 151 states.audio_network_adaptor->SetRtt(kRtt); |
137 } | 152 } |
138 | 153 |
139 TEST(AudioNetworkAdaptorImplTest, | 154 TEST(AudioNetworkAdaptorImplTest, |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
179 kClockInitialTimeMs)); | 194 kClockInitialTimeMs)); |
180 states.audio_network_adaptor->GetEncoderRuntimeConfig(); | 195 states.audio_network_adaptor->GetEncoderRuntimeConfig(); |
181 } | 196 } |
182 | 197 |
183 TEST(AudioNetworkAdaptorImplTest, | 198 TEST(AudioNetworkAdaptorImplTest, |
184 DumpNetworkMetricsIsCalledOnSetNetworkMetrics) { | 199 DumpNetworkMetricsIsCalledOnSetNetworkMetrics) { |
185 auto states = CreateAudioNetworkAdaptor(); | 200 auto states = CreateAudioNetworkAdaptor(); |
186 | 201 |
187 constexpr int kBandwidth = 16000; | 202 constexpr int kBandwidth = 16000; |
188 constexpr float kPacketLoss = 0.7f; | 203 constexpr float kPacketLoss = 0.7f; |
| 204 const auto kRecoverablePacketLoss = 0.2f; |
189 constexpr int kRtt = 100; | 205 constexpr int kRtt = 100; |
190 constexpr int kTargetAudioBitrate = 15000; | 206 constexpr int kTargetAudioBitrate = 15000; |
191 constexpr size_t kOverhead = 64; | 207 constexpr size_t kOverhead = 64; |
192 | 208 |
193 Controller::NetworkMetrics check; | 209 Controller::NetworkMetrics check; |
194 check.uplink_bandwidth_bps = rtc::Optional<int>(kBandwidth); | 210 check.uplink_bandwidth_bps = rtc::Optional<int>(kBandwidth); |
195 int64_t timestamp_check = kClockInitialTimeMs; | 211 int64_t timestamp_check = kClockInitialTimeMs; |
196 | 212 |
197 EXPECT_CALL(*states.mock_debug_dump_writer, | 213 EXPECT_CALL(*states.mock_debug_dump_writer, |
198 DumpNetworkMetrics(NetworkMetricsIs(check), timestamp_check)); | 214 DumpNetworkMetrics(NetworkMetricsIs(check), timestamp_check)); |
199 states.audio_network_adaptor->SetUplinkBandwidth(kBandwidth); | 215 states.audio_network_adaptor->SetUplinkBandwidth(kBandwidth); |
200 | 216 |
201 states.simulated_clock->AdvanceTimeMilliseconds(100); | 217 states.simulated_clock->AdvanceTimeMilliseconds(100); |
202 timestamp_check += 100; | 218 timestamp_check += 100; |
203 check.uplink_packet_loss_fraction = rtc::Optional<float>(kPacketLoss); | 219 check.uplink_packet_loss_fraction = rtc::Optional<float>(kPacketLoss); |
204 EXPECT_CALL(*states.mock_debug_dump_writer, | 220 EXPECT_CALL(*states.mock_debug_dump_writer, |
205 DumpNetworkMetrics(NetworkMetricsIs(check), timestamp_check)); | 221 DumpNetworkMetrics(NetworkMetricsIs(check), timestamp_check)); |
206 states.audio_network_adaptor->SetUplinkPacketLossFraction(kPacketLoss); | 222 states.audio_network_adaptor->SetUplinkPacketLossFraction(kPacketLoss); |
207 | 223 |
| 224 states.simulated_clock->AdvanceTimeMilliseconds(50); |
| 225 timestamp_check += 50; |
| 226 check.uplink_recoverable_packet_loss_fraction = |
| 227 rtc::Optional<float>(kRecoverablePacketLoss); |
| 228 EXPECT_CALL(*states.mock_debug_dump_writer, |
| 229 DumpNetworkMetrics(NetworkMetricsIs(check), timestamp_check)); |
| 230 states.audio_network_adaptor->SetUplinkRecoverablePacketLossFraction( |
| 231 kRecoverablePacketLoss); |
| 232 |
208 states.simulated_clock->AdvanceTimeMilliseconds(200); | 233 states.simulated_clock->AdvanceTimeMilliseconds(200); |
209 timestamp_check += 200; | 234 timestamp_check += 200; |
210 check.rtt_ms = rtc::Optional<int>(kRtt); | 235 check.rtt_ms = rtc::Optional<int>(kRtt); |
211 EXPECT_CALL(*states.mock_debug_dump_writer, | 236 EXPECT_CALL(*states.mock_debug_dump_writer, |
212 DumpNetworkMetrics(NetworkMetricsIs(check), timestamp_check)); | 237 DumpNetworkMetrics(NetworkMetricsIs(check), timestamp_check)); |
213 states.audio_network_adaptor->SetRtt(kRtt); | 238 states.audio_network_adaptor->SetRtt(kRtt); |
214 | 239 |
215 states.simulated_clock->AdvanceTimeMilliseconds(150); | 240 states.simulated_clock->AdvanceTimeMilliseconds(150); |
216 timestamp_check += 150; | 241 timestamp_check += 150; |
217 check.target_audio_bitrate_bps = rtc::Optional<int>(kTargetAudioBitrate); | 242 check.target_audio_bitrate_bps = rtc::Optional<int>(kTargetAudioBitrate); |
(...skipping 19 matching lines...) Expand all Loading... |
237 EXPECT_CALL(*states.mock_controllers[0], MakeDecision(_)) | 262 EXPECT_CALL(*states.mock_controllers[0], MakeDecision(_)) |
238 .WillOnce(SetArgPointee<0>(config)); | 263 .WillOnce(SetArgPointee<0>(config)); |
239 | 264 |
240 EXPECT_CALL(*states.event_log, | 265 EXPECT_CALL(*states.event_log, |
241 LogAudioNetworkAdaptation(EncoderRuntimeConfigIs(config))) | 266 LogAudioNetworkAdaptation(EncoderRuntimeConfigIs(config))) |
242 .Times(1); | 267 .Times(1); |
243 states.audio_network_adaptor->GetEncoderRuntimeConfig(); | 268 states.audio_network_adaptor->GetEncoderRuntimeConfig(); |
244 } | 269 } |
245 | 270 |
246 } // namespace webrtc | 271 } // namespace webrtc |
OLD | NEW |