OLD | NEW |
1 /* | 1 /* |
2 * libjingle | 2 * libjingle |
3 * Copyright 2008 Google Inc. | 3 * Copyright 2008 Google Inc. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions are met: | 6 * modification, are permitted provided that the following conditions are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright notice, | 8 * 1. Redistributions of source code must retain the above copyright notice, |
9 * this list of conditions and the following disclaimer. | 9 * this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright notice, | 10 * 2. Redistributions in binary form must reproduce the above copyright notice, |
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
306 stats.echo_return_loss = 890; | 306 stats.echo_return_loss = 890; |
307 stats.echo_return_loss_enhancement = 1234; | 307 stats.echo_return_loss_enhancement = 1234; |
308 stats.typing_noise_detected = true; | 308 stats.typing_noise_detected = true; |
309 return stats; | 309 return stats; |
310 } | 310 } |
311 void SetAudioSendStreamStats() { | 311 void SetAudioSendStreamStats() { |
312 for (auto* s : call_.GetAudioSendStreams()) { | 312 for (auto* s : call_.GetAudioSendStreams()) { |
313 s->SetStats(GetAudioSendStreamStats()); | 313 s->SetStats(GetAudioSendStreamStats()); |
314 } | 314 } |
315 } | 315 } |
316 void VerifyVoiceSenderInfo(const cricket::VoiceSenderInfo& info) { | 316 void VerifyVoiceSenderInfo(const cricket::VoiceSenderInfo& info, |
| 317 bool is_sending) { |
317 const auto stats = GetAudioSendStreamStats(); | 318 const auto stats = GetAudioSendStreamStats(); |
318 EXPECT_EQ(info.ssrc(), stats.local_ssrc); | 319 EXPECT_EQ(info.ssrc(), stats.local_ssrc); |
319 EXPECT_EQ(info.bytes_sent, stats.bytes_sent); | 320 EXPECT_EQ(info.bytes_sent, stats.bytes_sent); |
320 EXPECT_EQ(info.packets_sent, stats.packets_sent); | 321 EXPECT_EQ(info.packets_sent, stats.packets_sent); |
321 EXPECT_EQ(info.packets_lost, stats.packets_lost); | 322 EXPECT_EQ(info.packets_lost, stats.packets_lost); |
322 EXPECT_EQ(info.fraction_lost, stats.fraction_lost); | 323 EXPECT_EQ(info.fraction_lost, stats.fraction_lost); |
323 EXPECT_EQ(info.codec_name, stats.codec_name); | 324 EXPECT_EQ(info.codec_name, stats.codec_name); |
324 EXPECT_EQ(info.ext_seqnum, stats.ext_seqnum); | 325 EXPECT_EQ(info.ext_seqnum, stats.ext_seqnum); |
325 EXPECT_EQ(info.jitter_ms, stats.jitter_ms); | 326 EXPECT_EQ(info.jitter_ms, stats.jitter_ms); |
326 EXPECT_EQ(info.rtt_ms, stats.rtt_ms); | 327 EXPECT_EQ(info.rtt_ms, stats.rtt_ms); |
327 EXPECT_EQ(info.audio_level, stats.audio_level); | 328 EXPECT_EQ(info.audio_level, stats.audio_level); |
328 EXPECT_EQ(info.aec_quality_min, stats.aec_quality_min); | 329 EXPECT_EQ(info.aec_quality_min, stats.aec_quality_min); |
329 EXPECT_EQ(info.echo_delay_median_ms, stats.echo_delay_median_ms); | 330 EXPECT_EQ(info.echo_delay_median_ms, stats.echo_delay_median_ms); |
330 EXPECT_EQ(info.echo_delay_std_ms, stats.echo_delay_std_ms); | 331 EXPECT_EQ(info.echo_delay_std_ms, stats.echo_delay_std_ms); |
331 EXPECT_EQ(info.echo_return_loss, stats.echo_return_loss); | 332 EXPECT_EQ(info.echo_return_loss, stats.echo_return_loss); |
332 EXPECT_EQ(info.echo_return_loss_enhancement, | 333 EXPECT_EQ(info.echo_return_loss_enhancement, |
333 stats.echo_return_loss_enhancement); | 334 stats.echo_return_loss_enhancement); |
334 // TODO(solenberg): Move typing noise detection into AudioSendStream. | 335 EXPECT_EQ(info.typing_noise_detected, |
335 // EXPECT_EQ(info.typing_noise_detected, stats.typing_noise_detected); | 336 stats.typing_noise_detected && is_sending); |
336 } | 337 } |
337 | 338 |
338 webrtc::AudioReceiveStream::Stats GetAudioReceiveStreamStats() const { | 339 webrtc::AudioReceiveStream::Stats GetAudioReceiveStreamStats() const { |
339 webrtc::AudioReceiveStream::Stats stats; | 340 webrtc::AudioReceiveStream::Stats stats; |
340 stats.remote_ssrc = 123; | 341 stats.remote_ssrc = 123; |
341 stats.bytes_rcvd = 456; | 342 stats.bytes_rcvd = 456; |
342 stats.packets_rcvd = 768; | 343 stats.packets_rcvd = 768; |
343 stats.packets_lost = 101; | 344 stats.packets_lost = 101; |
344 stats.fraction_lost = 23.45f; | 345 stats.fraction_lost = 23.45f; |
345 stats.codec_name = "codec_name_recv"; | 346 stats.codec_name = "codec_name_recv"; |
(...skipping 1736 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2082 EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_)); | 2083 EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_)); |
2083 | 2084 |
2084 // Check stats for the added streams. | 2085 // Check stats for the added streams. |
2085 { | 2086 { |
2086 cricket::VoiceMediaInfo info; | 2087 cricket::VoiceMediaInfo info; |
2087 EXPECT_EQ(true, channel_->GetStats(&info)); | 2088 EXPECT_EQ(true, channel_->GetStats(&info)); |
2088 | 2089 |
2089 // We have added 4 send streams. We should see empty stats for all. | 2090 // We have added 4 send streams. We should see empty stats for all. |
2090 EXPECT_EQ(static_cast<size_t>(ARRAY_SIZE(kSsrcs4)), info.senders.size()); | 2091 EXPECT_EQ(static_cast<size_t>(ARRAY_SIZE(kSsrcs4)), info.senders.size()); |
2091 for (const auto& sender : info.senders) { | 2092 for (const auto& sender : info.senders) { |
2092 VerifyVoiceSenderInfo(sender); | 2093 VerifyVoiceSenderInfo(sender, false); |
2093 } | 2094 } |
2094 | 2095 |
2095 // We have added one receive stream. We should see empty stats. | 2096 // We have added one receive stream. We should see empty stats. |
2096 EXPECT_EQ(info.receivers.size(), 1u); | 2097 EXPECT_EQ(info.receivers.size(), 1u); |
2097 EXPECT_EQ(info.receivers[0].ssrc(), 0); | 2098 EXPECT_EQ(info.receivers[0].ssrc(), 0); |
2098 } | 2099 } |
2099 | 2100 |
2100 // Remove the kSsrc2 stream. No receiver stats. | 2101 // Remove the kSsrc2 stream. No receiver stats. |
2101 { | 2102 { |
2102 cricket::VoiceMediaInfo info; | 2103 cricket::VoiceMediaInfo info; |
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2352 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); | 2353 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); |
2353 EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_)); | 2354 EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_)); |
2354 | 2355 |
2355 // Check stats for the added streams. | 2356 // Check stats for the added streams. |
2356 { | 2357 { |
2357 cricket::VoiceMediaInfo info; | 2358 cricket::VoiceMediaInfo info; |
2358 EXPECT_EQ(true, channel_->GetStats(&info)); | 2359 EXPECT_EQ(true, channel_->GetStats(&info)); |
2359 | 2360 |
2360 // We have added one send stream. We should see the stats we've set. | 2361 // We have added one send stream. We should see the stats we've set. |
2361 EXPECT_EQ(1u, info.senders.size()); | 2362 EXPECT_EQ(1u, info.senders.size()); |
2362 VerifyVoiceSenderInfo(info.senders[0]); | 2363 VerifyVoiceSenderInfo(info.senders[0], false); |
2363 // We have added one receive stream. We should see empty stats. | 2364 // We have added one receive stream. We should see empty stats. |
2364 EXPECT_EQ(info.receivers.size(), 1u); | 2365 EXPECT_EQ(info.receivers.size(), 1u); |
2365 EXPECT_EQ(info.receivers[0].ssrc(), 0); | 2366 EXPECT_EQ(info.receivers[0].ssrc(), 0); |
2366 } | 2367 } |
2367 | 2368 |
| 2369 // Start sending - this affects some reported stats. |
| 2370 { |
| 2371 cricket::VoiceMediaInfo info; |
| 2372 EXPECT_TRUE(channel_->SetSend(cricket::SEND_MICROPHONE)); |
| 2373 EXPECT_EQ(true, channel_->GetStats(&info)); |
| 2374 VerifyVoiceSenderInfo(info.senders[0], true); |
| 2375 } |
| 2376 |
2368 // Remove the kSsrc2 stream. No receiver stats. | 2377 // Remove the kSsrc2 stream. No receiver stats. |
2369 { | 2378 { |
2370 cricket::VoiceMediaInfo info; | 2379 cricket::VoiceMediaInfo info; |
2371 EXPECT_TRUE(channel_->RemoveRecvStream(kSsrc2)); | 2380 EXPECT_TRUE(channel_->RemoveRecvStream(kSsrc2)); |
2372 EXPECT_EQ(true, channel_->GetStats(&info)); | 2381 EXPECT_EQ(true, channel_->GetStats(&info)); |
2373 EXPECT_EQ(1u, info.senders.size()); | 2382 EXPECT_EQ(1u, info.senders.size()); |
2374 EXPECT_EQ(0u, info.receivers.size()); | 2383 EXPECT_EQ(0u, info.receivers.size()); |
2375 } | 2384 } |
2376 | 2385 |
2377 // Deliver a new packet - a default receive stream should be created and we | 2386 // Deliver a new packet - a default receive stream should be created and we |
(...skipping 926 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3304 cricket::WebRtcVoiceEngine engine; | 3313 cricket::WebRtcVoiceEngine engine; |
3305 EXPECT_TRUE(engine.Init(rtc::Thread::Current())); | 3314 EXPECT_TRUE(engine.Init(rtc::Thread::Current())); |
3306 rtc::scoped_ptr<webrtc::Call> call( | 3315 rtc::scoped_ptr<webrtc::Call> call( |
3307 webrtc::Call::Create(webrtc::Call::Config())); | 3316 webrtc::Call::Create(webrtc::Call::Config())); |
3308 cricket::WebRtcVoiceMediaChannel channel(&engine, cricket::AudioOptions(), | 3317 cricket::WebRtcVoiceMediaChannel channel(&engine, cricket::AudioOptions(), |
3309 call.get()); | 3318 call.get()); |
3310 cricket::AudioRecvParameters parameters; | 3319 cricket::AudioRecvParameters parameters; |
3311 parameters.codecs = engine.codecs(); | 3320 parameters.codecs = engine.codecs(); |
3312 EXPECT_TRUE(channel.SetRecvParameters(parameters)); | 3321 EXPECT_TRUE(channel.SetRecvParameters(parameters)); |
3313 } | 3322 } |
OLD | NEW |