| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2008 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2008 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 426 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 437 } | 437 } |
| 438 | 438 |
| 439 webrtc::AudioSendStream::Stats GetAudioSendStreamStats() const { | 439 webrtc::AudioSendStream::Stats GetAudioSendStreamStats() const { |
| 440 webrtc::AudioSendStream::Stats stats; | 440 webrtc::AudioSendStream::Stats stats; |
| 441 stats.local_ssrc = 12; | 441 stats.local_ssrc = 12; |
| 442 stats.bytes_sent = 345; | 442 stats.bytes_sent = 345; |
| 443 stats.packets_sent = 678; | 443 stats.packets_sent = 678; |
| 444 stats.packets_lost = 9012; | 444 stats.packets_lost = 9012; |
| 445 stats.fraction_lost = 34.56f; | 445 stats.fraction_lost = 34.56f; |
| 446 stats.codec_name = "codec_name_send"; | 446 stats.codec_name = "codec_name_send"; |
| 447 stats.codec_payload_type = rtc::Optional<int>(42); |
| 447 stats.ext_seqnum = 789; | 448 stats.ext_seqnum = 789; |
| 448 stats.jitter_ms = 12; | 449 stats.jitter_ms = 12; |
| 449 stats.rtt_ms = 345; | 450 stats.rtt_ms = 345; |
| 450 stats.audio_level = 678; | 451 stats.audio_level = 678; |
| 451 stats.aec_quality_min = 9.01f; | 452 stats.aec_quality_min = 9.01f; |
| 452 stats.echo_delay_median_ms = 234; | 453 stats.echo_delay_median_ms = 234; |
| 453 stats.echo_delay_std_ms = 567; | 454 stats.echo_delay_std_ms = 567; |
| 454 stats.echo_return_loss = 890; | 455 stats.echo_return_loss = 890; |
| 455 stats.echo_return_loss_enhancement = 1234; | 456 stats.echo_return_loss_enhancement = 1234; |
| 456 stats.residual_echo_likelihood = 0.432f; | 457 stats.residual_echo_likelihood = 0.432f; |
| 457 stats.typing_noise_detected = true; | 458 stats.typing_noise_detected = true; |
| 458 return stats; | 459 return stats; |
| 459 } | 460 } |
| 460 void SetAudioSendStreamStats() { | 461 void SetAudioSendStreamStats() { |
| 461 for (auto* s : call_.GetAudioSendStreams()) { | 462 for (auto* s : call_.GetAudioSendStreams()) { |
| 462 s->SetStats(GetAudioSendStreamStats()); | 463 s->SetStats(GetAudioSendStreamStats()); |
| 463 } | 464 } |
| 464 } | 465 } |
| 465 void VerifyVoiceSenderInfo(const cricket::VoiceSenderInfo& info, | 466 void VerifyVoiceSenderInfo(const cricket::VoiceSenderInfo& info, |
| 466 bool is_sending) { | 467 bool is_sending) { |
| 467 const auto stats = GetAudioSendStreamStats(); | 468 const auto stats = GetAudioSendStreamStats(); |
| 468 EXPECT_EQ(info.ssrc(), stats.local_ssrc); | 469 EXPECT_EQ(info.ssrc(), stats.local_ssrc); |
| 469 EXPECT_EQ(info.bytes_sent, stats.bytes_sent); | 470 EXPECT_EQ(info.bytes_sent, stats.bytes_sent); |
| 470 EXPECT_EQ(info.packets_sent, stats.packets_sent); | 471 EXPECT_EQ(info.packets_sent, stats.packets_sent); |
| 471 EXPECT_EQ(info.packets_lost, stats.packets_lost); | 472 EXPECT_EQ(info.packets_lost, stats.packets_lost); |
| 472 EXPECT_EQ(info.fraction_lost, stats.fraction_lost); | 473 EXPECT_EQ(info.fraction_lost, stats.fraction_lost); |
| 473 EXPECT_EQ(info.codec_name, stats.codec_name); | 474 EXPECT_EQ(info.codec_name, stats.codec_name); |
| 475 EXPECT_EQ(info.codec_payload_type, stats.codec_payload_type); |
| 474 EXPECT_EQ(info.ext_seqnum, stats.ext_seqnum); | 476 EXPECT_EQ(info.ext_seqnum, stats.ext_seqnum); |
| 475 EXPECT_EQ(info.jitter_ms, stats.jitter_ms); | 477 EXPECT_EQ(info.jitter_ms, stats.jitter_ms); |
| 476 EXPECT_EQ(info.rtt_ms, stats.rtt_ms); | 478 EXPECT_EQ(info.rtt_ms, stats.rtt_ms); |
| 477 EXPECT_EQ(info.audio_level, stats.audio_level); | 479 EXPECT_EQ(info.audio_level, stats.audio_level); |
| 478 EXPECT_EQ(info.aec_quality_min, stats.aec_quality_min); | 480 EXPECT_EQ(info.aec_quality_min, stats.aec_quality_min); |
| 479 EXPECT_EQ(info.echo_delay_median_ms, stats.echo_delay_median_ms); | 481 EXPECT_EQ(info.echo_delay_median_ms, stats.echo_delay_median_ms); |
| 480 EXPECT_EQ(info.echo_delay_std_ms, stats.echo_delay_std_ms); | 482 EXPECT_EQ(info.echo_delay_std_ms, stats.echo_delay_std_ms); |
| 481 EXPECT_EQ(info.echo_return_loss, stats.echo_return_loss); | 483 EXPECT_EQ(info.echo_return_loss, stats.echo_return_loss); |
| 482 EXPECT_EQ(info.echo_return_loss_enhancement, | 484 EXPECT_EQ(info.echo_return_loss_enhancement, |
| 483 stats.echo_return_loss_enhancement); | 485 stats.echo_return_loss_enhancement); |
| 484 EXPECT_EQ(info.residual_echo_likelihood, stats.residual_echo_likelihood); | 486 EXPECT_EQ(info.residual_echo_likelihood, stats.residual_echo_likelihood); |
| 485 EXPECT_EQ(info.typing_noise_detected, | 487 EXPECT_EQ(info.typing_noise_detected, |
| 486 stats.typing_noise_detected && is_sending); | 488 stats.typing_noise_detected && is_sending); |
| 487 } | 489 } |
| 488 | 490 |
| 489 webrtc::AudioReceiveStream::Stats GetAudioReceiveStreamStats() const { | 491 webrtc::AudioReceiveStream::Stats GetAudioReceiveStreamStats() const { |
| 490 webrtc::AudioReceiveStream::Stats stats; | 492 webrtc::AudioReceiveStream::Stats stats; |
| 491 stats.remote_ssrc = 123; | 493 stats.remote_ssrc = 123; |
| 492 stats.bytes_rcvd = 456; | 494 stats.bytes_rcvd = 456; |
| 493 stats.packets_rcvd = 768; | 495 stats.packets_rcvd = 768; |
| 494 stats.packets_lost = 101; | 496 stats.packets_lost = 101; |
| 495 stats.fraction_lost = 23.45f; | 497 stats.fraction_lost = 23.45f; |
| 496 stats.codec_name = "codec_name_recv"; | 498 stats.codec_name = "codec_name_recv"; |
| 499 stats.codec_payload_type = rtc::Optional<int>(42); |
| 497 stats.ext_seqnum = 678; | 500 stats.ext_seqnum = 678; |
| 498 stats.jitter_ms = 901; | 501 stats.jitter_ms = 901; |
| 499 stats.jitter_buffer_ms = 234; | 502 stats.jitter_buffer_ms = 234; |
| 500 stats.jitter_buffer_preferred_ms = 567; | 503 stats.jitter_buffer_preferred_ms = 567; |
| 501 stats.delay_estimate_ms = 890; | 504 stats.delay_estimate_ms = 890; |
| 502 stats.audio_level = 1234; | 505 stats.audio_level = 1234; |
| 503 stats.expand_rate = 5.67f; | 506 stats.expand_rate = 5.67f; |
| 504 stats.speech_expand_rate = 8.90f; | 507 stats.speech_expand_rate = 8.90f; |
| 505 stats.secondary_decoded_rate = 1.23f; | 508 stats.secondary_decoded_rate = 1.23f; |
| 506 stats.accelerate_rate = 4.56f; | 509 stats.accelerate_rate = 4.56f; |
| (...skipping 14 matching lines...) Expand all Loading... |
| 521 } | 524 } |
| 522 } | 525 } |
| 523 void VerifyVoiceReceiverInfo(const cricket::VoiceReceiverInfo& info) { | 526 void VerifyVoiceReceiverInfo(const cricket::VoiceReceiverInfo& info) { |
| 524 const auto stats = GetAudioReceiveStreamStats(); | 527 const auto stats = GetAudioReceiveStreamStats(); |
| 525 EXPECT_EQ(info.ssrc(), stats.remote_ssrc); | 528 EXPECT_EQ(info.ssrc(), stats.remote_ssrc); |
| 526 EXPECT_EQ(info.bytes_rcvd, stats.bytes_rcvd); | 529 EXPECT_EQ(info.bytes_rcvd, stats.bytes_rcvd); |
| 527 EXPECT_EQ(info.packets_rcvd, stats.packets_rcvd); | 530 EXPECT_EQ(info.packets_rcvd, stats.packets_rcvd); |
| 528 EXPECT_EQ(info.packets_lost, stats.packets_lost); | 531 EXPECT_EQ(info.packets_lost, stats.packets_lost); |
| 529 EXPECT_EQ(info.fraction_lost, stats.fraction_lost); | 532 EXPECT_EQ(info.fraction_lost, stats.fraction_lost); |
| 530 EXPECT_EQ(info.codec_name, stats.codec_name); | 533 EXPECT_EQ(info.codec_name, stats.codec_name); |
| 534 EXPECT_EQ(info.codec_payload_type, stats.codec_payload_type); |
| 531 EXPECT_EQ(info.ext_seqnum, stats.ext_seqnum); | 535 EXPECT_EQ(info.ext_seqnum, stats.ext_seqnum); |
| 532 EXPECT_EQ(info.jitter_ms, stats.jitter_ms); | 536 EXPECT_EQ(info.jitter_ms, stats.jitter_ms); |
| 533 EXPECT_EQ(info.jitter_buffer_ms, stats.jitter_buffer_ms); | 537 EXPECT_EQ(info.jitter_buffer_ms, stats.jitter_buffer_ms); |
| 534 EXPECT_EQ(info.jitter_buffer_preferred_ms, | 538 EXPECT_EQ(info.jitter_buffer_preferred_ms, |
| 535 stats.jitter_buffer_preferred_ms); | 539 stats.jitter_buffer_preferred_ms); |
| 536 EXPECT_EQ(info.delay_estimate_ms, stats.delay_estimate_ms); | 540 EXPECT_EQ(info.delay_estimate_ms, stats.delay_estimate_ms); |
| 537 EXPECT_EQ(info.audio_level, stats.audio_level); | 541 EXPECT_EQ(info.audio_level, stats.audio_level); |
| 538 EXPECT_EQ(info.expand_rate, stats.expand_rate); | 542 EXPECT_EQ(info.expand_rate, stats.expand_rate); |
| 539 EXPECT_EQ(info.speech_expand_rate, stats.speech_expand_rate); | 543 EXPECT_EQ(info.speech_expand_rate, stats.speech_expand_rate); |
| 540 EXPECT_EQ(info.secondary_decoded_rate, stats.secondary_decoded_rate); | 544 EXPECT_EQ(info.secondary_decoded_rate, stats.secondary_decoded_rate); |
| 541 EXPECT_EQ(info.accelerate_rate, stats.accelerate_rate); | 545 EXPECT_EQ(info.accelerate_rate, stats.accelerate_rate); |
| 542 EXPECT_EQ(info.preemptive_expand_rate, stats.preemptive_expand_rate); | 546 EXPECT_EQ(info.preemptive_expand_rate, stats.preemptive_expand_rate); |
| 543 EXPECT_EQ(info.decoding_calls_to_silence_generator, | 547 EXPECT_EQ(info.decoding_calls_to_silence_generator, |
| 544 stats.decoding_calls_to_silence_generator); | 548 stats.decoding_calls_to_silence_generator); |
| 545 EXPECT_EQ(info.decoding_calls_to_neteq, stats.decoding_calls_to_neteq); | 549 EXPECT_EQ(info.decoding_calls_to_neteq, stats.decoding_calls_to_neteq); |
| 546 EXPECT_EQ(info.decoding_normal, stats.decoding_normal); | 550 EXPECT_EQ(info.decoding_normal, stats.decoding_normal); |
| 547 EXPECT_EQ(info.decoding_plc, stats.decoding_plc); | 551 EXPECT_EQ(info.decoding_plc, stats.decoding_plc); |
| 548 EXPECT_EQ(info.decoding_cng, stats.decoding_cng); | 552 EXPECT_EQ(info.decoding_cng, stats.decoding_cng); |
| 549 EXPECT_EQ(info.decoding_plc_cng, stats.decoding_plc_cng); | 553 EXPECT_EQ(info.decoding_plc_cng, stats.decoding_plc_cng); |
| 550 EXPECT_EQ(info.decoding_muted_output, stats.decoding_muted_output); | 554 EXPECT_EQ(info.decoding_muted_output, stats.decoding_muted_output); |
| 551 EXPECT_EQ(info.capture_start_ntp_time_ms, stats.capture_start_ntp_time_ms); | 555 EXPECT_EQ(info.capture_start_ntp_time_ms, stats.capture_start_ntp_time_ms); |
| 552 } | 556 } |
| 557 void VerifyVoiceSendRecvCodecs(const cricket::VoiceMediaInfo& info) const { |
| 558 EXPECT_EQ(send_parameters_.codecs.size(), info.send_codecs.size()); |
| 559 for (const cricket::AudioCodec& codec : send_parameters_.codecs) { |
| 560 ASSERT_EQ(info.send_codecs.count(codec.id), 1U); |
| 561 EXPECT_EQ(info.send_codecs.find(codec.id)->second, |
| 562 codec.ToCodecParameters()); |
| 563 } |
| 564 EXPECT_EQ(recv_parameters_.codecs.size(), info.receive_codecs.size()); |
| 565 for (const cricket::AudioCodec& codec : recv_parameters_.codecs) { |
| 566 ASSERT_EQ(info.receive_codecs.count(codec.id), 1U); |
| 567 EXPECT_EQ(info.receive_codecs.find(codec.id)->second, |
| 568 codec.ToCodecParameters()); |
| 569 } |
| 570 } |
| 553 | 571 |
| 554 protected: | 572 protected: |
| 555 StrictMock<webrtc::test::MockAudioDeviceModule> adm_; | 573 StrictMock<webrtc::test::MockAudioDeviceModule> adm_; |
| 556 StrictMock<webrtc::test::MockAudioProcessing> apm_; | 574 StrictMock<webrtc::test::MockAudioProcessing> apm_; |
| 557 webrtc::RtcEventLogNullImpl event_log_; | 575 webrtc::RtcEventLogNullImpl event_log_; |
| 558 cricket::FakeCall call_; | 576 cricket::FakeCall call_; |
| 559 cricket::FakeWebRtcVoiceEngine voe_; | 577 cricket::FakeWebRtcVoiceEngine voe_; |
| 560 std::unique_ptr<cricket::WebRtcVoiceEngine> engine_; | 578 std::unique_ptr<cricket::WebRtcVoiceEngine> engine_; |
| 561 cricket::VoiceMediaChannel* channel_ = nullptr; | 579 cricket::VoiceMediaChannel* channel_ = nullptr; |
| 562 cricket::AudioSendParameters send_parameters_; | 580 cricket::AudioSendParameters send_parameters_; |
| (...skipping 1682 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2245 // Check stats for the added streams. | 2263 // Check stats for the added streams. |
| 2246 { | 2264 { |
| 2247 cricket::VoiceMediaInfo info; | 2265 cricket::VoiceMediaInfo info; |
| 2248 EXPECT_EQ(true, channel_->GetStats(&info)); | 2266 EXPECT_EQ(true, channel_->GetStats(&info)); |
| 2249 | 2267 |
| 2250 // We have added 4 send streams. We should see empty stats for all. | 2268 // We have added 4 send streams. We should see empty stats for all. |
| 2251 EXPECT_EQ(static_cast<size_t>(arraysize(kSsrcs4)), info.senders.size()); | 2269 EXPECT_EQ(static_cast<size_t>(arraysize(kSsrcs4)), info.senders.size()); |
| 2252 for (const auto& sender : info.senders) { | 2270 for (const auto& sender : info.senders) { |
| 2253 VerifyVoiceSenderInfo(sender, false); | 2271 VerifyVoiceSenderInfo(sender, false); |
| 2254 } | 2272 } |
| 2273 VerifyVoiceSendRecvCodecs(info); |
| 2255 | 2274 |
| 2256 // We have added one receive stream. We should see empty stats. | 2275 // We have added one receive stream. We should see empty stats. |
| 2257 EXPECT_EQ(info.receivers.size(), 1u); | 2276 EXPECT_EQ(info.receivers.size(), 1u); |
| 2258 EXPECT_EQ(info.receivers[0].ssrc(), 0); | 2277 EXPECT_EQ(info.receivers[0].ssrc(), 0); |
| 2259 } | 2278 } |
| 2260 | 2279 |
| 2261 // Remove the kSsrc2 stream. No receiver stats. | 2280 // Remove the kSsrc2 stream. No receiver stats. |
| 2262 { | 2281 { |
| 2263 cricket::VoiceMediaInfo info; | 2282 cricket::VoiceMediaInfo info; |
| 2264 EXPECT_TRUE(channel_->RemoveRecvStream(kSsrc2)); | 2283 EXPECT_TRUE(channel_->RemoveRecvStream(kSsrc2)); |
| 2265 EXPECT_EQ(true, channel_->GetStats(&info)); | 2284 EXPECT_EQ(true, channel_->GetStats(&info)); |
| 2266 EXPECT_EQ(static_cast<size_t>(arraysize(kSsrcs4)), info.senders.size()); | 2285 EXPECT_EQ(static_cast<size_t>(arraysize(kSsrcs4)), info.senders.size()); |
| 2267 EXPECT_EQ(0u, info.receivers.size()); | 2286 EXPECT_EQ(0u, info.receivers.size()); |
| 2268 } | 2287 } |
| 2269 | 2288 |
| 2270 // Deliver a new packet - a default receive stream should be created and we | 2289 // Deliver a new packet - a default receive stream should be created and we |
| 2271 // should see stats again. | 2290 // should see stats again. |
| 2272 { | 2291 { |
| 2273 cricket::VoiceMediaInfo info; | 2292 cricket::VoiceMediaInfo info; |
| 2274 DeliverPacket(kPcmuFrame, sizeof(kPcmuFrame)); | 2293 DeliverPacket(kPcmuFrame, sizeof(kPcmuFrame)); |
| 2275 SetAudioReceiveStreamStats(); | 2294 SetAudioReceiveStreamStats(); |
| 2276 EXPECT_EQ(true, channel_->GetStats(&info)); | 2295 EXPECT_EQ(true, channel_->GetStats(&info)); |
| 2277 EXPECT_EQ(static_cast<size_t>(arraysize(kSsrcs4)), info.senders.size()); | 2296 EXPECT_EQ(static_cast<size_t>(arraysize(kSsrcs4)), info.senders.size()); |
| 2278 EXPECT_EQ(1u, info.receivers.size()); | 2297 EXPECT_EQ(1u, info.receivers.size()); |
| 2279 VerifyVoiceReceiverInfo(info.receivers[0]); | 2298 VerifyVoiceReceiverInfo(info.receivers[0]); |
| 2299 VerifyVoiceSendRecvCodecs(info); |
| 2280 } | 2300 } |
| 2281 } | 2301 } |
| 2282 | 2302 |
| 2283 // Test that we can add and remove receive streams, and do proper send/playout. | 2303 // Test that we can add and remove receive streams, and do proper send/playout. |
| 2284 // We can receive on multiple streams while sending one stream. | 2304 // We can receive on multiple streams while sending one stream. |
| 2285 TEST_F(WebRtcVoiceEngineTestFake, PlayoutWithMultipleStreams) { | 2305 TEST_F(WebRtcVoiceEngineTestFake, PlayoutWithMultipleStreams) { |
| 2286 EXPECT_TRUE(SetupSendStream()); | 2306 EXPECT_TRUE(SetupSendStream()); |
| 2287 | 2307 |
| 2288 // Start playout without a receive stream. | 2308 // Start playout without a receive stream. |
| 2289 SetSendParameters(send_parameters_); | 2309 SetSendParameters(send_parameters_); |
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2453 EXPECT_EQ(info.receivers.size(), 1u); | 2473 EXPECT_EQ(info.receivers.size(), 1u); |
| 2454 EXPECT_EQ(info.receivers[0].ssrc(), 0); | 2474 EXPECT_EQ(info.receivers[0].ssrc(), 0); |
| 2455 } | 2475 } |
| 2456 | 2476 |
| 2457 // Start sending - this affects some reported stats. | 2477 // Start sending - this affects some reported stats. |
| 2458 { | 2478 { |
| 2459 cricket::VoiceMediaInfo info; | 2479 cricket::VoiceMediaInfo info; |
| 2460 SetSend(true); | 2480 SetSend(true); |
| 2461 EXPECT_EQ(true, channel_->GetStats(&info)); | 2481 EXPECT_EQ(true, channel_->GetStats(&info)); |
| 2462 VerifyVoiceSenderInfo(info.senders[0], true); | 2482 VerifyVoiceSenderInfo(info.senders[0], true); |
| 2483 VerifyVoiceSendRecvCodecs(info); |
| 2463 } | 2484 } |
| 2464 | 2485 |
| 2465 // Remove the kSsrc2 stream. No receiver stats. | 2486 // Remove the kSsrc2 stream. No receiver stats. |
| 2466 { | 2487 { |
| 2467 cricket::VoiceMediaInfo info; | 2488 cricket::VoiceMediaInfo info; |
| 2468 EXPECT_TRUE(channel_->RemoveRecvStream(kSsrc2)); | 2489 EXPECT_TRUE(channel_->RemoveRecvStream(kSsrc2)); |
| 2469 EXPECT_EQ(true, channel_->GetStats(&info)); | 2490 EXPECT_EQ(true, channel_->GetStats(&info)); |
| 2470 EXPECT_EQ(1u, info.senders.size()); | 2491 EXPECT_EQ(1u, info.senders.size()); |
| 2471 EXPECT_EQ(0u, info.receivers.size()); | 2492 EXPECT_EQ(0u, info.receivers.size()); |
| 2472 } | 2493 } |
| 2473 | 2494 |
| 2474 // Deliver a new packet - a default receive stream should be created and we | 2495 // Deliver a new packet - a default receive stream should be created and we |
| 2475 // should see stats again. | 2496 // should see stats again. |
| 2476 { | 2497 { |
| 2477 cricket::VoiceMediaInfo info; | 2498 cricket::VoiceMediaInfo info; |
| 2478 DeliverPacket(kPcmuFrame, sizeof(kPcmuFrame)); | 2499 DeliverPacket(kPcmuFrame, sizeof(kPcmuFrame)); |
| 2479 SetAudioReceiveStreamStats(); | 2500 SetAudioReceiveStreamStats(); |
| 2480 EXPECT_EQ(true, channel_->GetStats(&info)); | 2501 EXPECT_EQ(true, channel_->GetStats(&info)); |
| 2481 EXPECT_EQ(1u, info.senders.size()); | 2502 EXPECT_EQ(1u, info.senders.size()); |
| 2482 EXPECT_EQ(1u, info.receivers.size()); | 2503 EXPECT_EQ(1u, info.receivers.size()); |
| 2483 VerifyVoiceReceiverInfo(info.receivers[0]); | 2504 VerifyVoiceReceiverInfo(info.receivers[0]); |
| 2505 VerifyVoiceSendRecvCodecs(info); |
| 2484 } | 2506 } |
| 2485 } | 2507 } |
| 2486 | 2508 |
| 2487 // Test that we can set the outgoing SSRC properly with multiple streams. | 2509 // Test that we can set the outgoing SSRC properly with multiple streams. |
| 2488 // SSRC is set in SetupSendStream() by calling AddSendStream. | 2510 // SSRC is set in SetupSendStream() by calling AddSendStream. |
| 2489 TEST_F(WebRtcVoiceEngineTestFake, SetSendSsrcWithMultipleStreams) { | 2511 TEST_F(WebRtcVoiceEngineTestFake, SetSendSsrcWithMultipleStreams) { |
| 2490 EXPECT_TRUE(SetupSendStream()); | 2512 EXPECT_TRUE(SetupSendStream()); |
| 2491 EXPECT_TRUE(call_.GetAudioSendStream(kSsrc1)); | 2513 EXPECT_TRUE(call_.GetAudioSendStream(kSsrc1)); |
| 2492 EXPECT_TRUE(AddRecvStream(kSsrc2)); | 2514 EXPECT_TRUE(AddRecvStream(kSsrc2)); |
| 2493 EXPECT_EQ(kSsrc1, GetRecvStreamConfig(kSsrc2).rtp.local_ssrc); | 2515 EXPECT_EQ(kSsrc1, GetRecvStreamConfig(kSsrc2).rtp.local_ssrc); |
| (...skipping 1003 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3497 nullptr, webrtc::CreateBuiltinAudioDecoderFactory()); | 3519 nullptr, webrtc::CreateBuiltinAudioDecoderFactory()); |
| 3498 webrtc::RtcEventLogNullImpl event_log; | 3520 webrtc::RtcEventLogNullImpl event_log; |
| 3499 std::unique_ptr<webrtc::Call> call( | 3521 std::unique_ptr<webrtc::Call> call( |
| 3500 webrtc::Call::Create(webrtc::Call::Config(&event_log))); | 3522 webrtc::Call::Create(webrtc::Call::Config(&event_log))); |
| 3501 cricket::WebRtcVoiceMediaChannel channel(&engine, cricket::MediaConfig(), | 3523 cricket::WebRtcVoiceMediaChannel channel(&engine, cricket::MediaConfig(), |
| 3502 cricket::AudioOptions(), call.get()); | 3524 cricket::AudioOptions(), call.get()); |
| 3503 cricket::AudioRecvParameters parameters; | 3525 cricket::AudioRecvParameters parameters; |
| 3504 parameters.codecs = engine.recv_codecs(); | 3526 parameters.codecs = engine.recv_codecs(); |
| 3505 EXPECT_TRUE(channel.SetRecvParameters(parameters)); | 3527 EXPECT_TRUE(channel.SetRecvParameters(parameters)); |
| 3506 } | 3528 } |
| OLD | NEW |