Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7)

Side by Side Diff: webrtc/media/engine/webrtcvoiceengine_unittest.cc

Issue 1909333002: Switch voice transport to use Call and Stream instead of VoENetwork. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Addressed coments on ps#6 Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « webrtc/media/engine/webrtcvoiceengine.cc ('k') | webrtc/test/call_test.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 2588 matching lines...) Expand 10 before | Expand all | Expand 10 after
2599 2599
2600 EXPECT_TRUE(call_.GetAudioSendStream(1234)); 2600 EXPECT_TRUE(call_.GetAudioSendStream(1234));
2601 EXPECT_EQ(1234U, voe_.GetLocalSSRC(receive_channel_num)); 2601 EXPECT_EQ(1234U, voe_.GetLocalSSRC(receive_channel_num));
2602 } 2602 }
2603 2603
2604 // Test that we can properly receive packets. 2604 // Test that we can properly receive packets.
2605 TEST_F(WebRtcVoiceEngineTestFake, Recv) { 2605 TEST_F(WebRtcVoiceEngineTestFake, Recv) {
2606 EXPECT_TRUE(SetupChannel()); 2606 EXPECT_TRUE(SetupChannel());
2607 EXPECT_TRUE(channel_->AddRecvStream(cricket::StreamParams::CreateLegacy(1))); 2607 EXPECT_TRUE(channel_->AddRecvStream(cricket::StreamParams::CreateLegacy(1)));
2608 DeliverPacket(kPcmuFrame, sizeof(kPcmuFrame)); 2608 DeliverPacket(kPcmuFrame, sizeof(kPcmuFrame));
2609 int channel_num = voe_.GetLastChannel(); 2609
2610 EXPECT_TRUE(voe_.CheckPacket(channel_num, kPcmuFrame, sizeof(kPcmuFrame))); 2610 EXPECT_TRUE(GetRecvStream(1).VerifyLastPacket(kPcmuFrame,
2611 sizeof(kPcmuFrame)));
2611 } 2612 }
2612 2613
2613 // Test that we can properly receive packets on multiple streams. 2614 // Test that we can properly receive packets on multiple streams.
2614 TEST_F(WebRtcVoiceEngineTestFake, RecvWithMultipleStreams) { 2615 TEST_F(WebRtcVoiceEngineTestFake, RecvWithMultipleStreams) {
2615 EXPECT_TRUE(SetupChannel()); 2616 EXPECT_TRUE(SetupChannel());
2616 EXPECT_TRUE(channel_->AddRecvStream(cricket::StreamParams::CreateLegacy(1))); 2617 const uint32_t ssrc1 = 1;
2617 int channel_num1 = voe_.GetLastChannel(); 2618 const uint32_t ssrc2 = 2;
2618 EXPECT_TRUE(channel_->AddRecvStream(cricket::StreamParams::CreateLegacy(2))); 2619 const uint32_t ssrc3 = 3;
2619 int channel_num2 = voe_.GetLastChannel(); 2620 EXPECT_TRUE(channel_->AddRecvStream(
2620 EXPECT_TRUE(channel_->AddRecvStream(cricket::StreamParams::CreateLegacy(3))); 2621 cricket::StreamParams::CreateLegacy(ssrc1)));
2621 int channel_num3 = voe_.GetLastChannel(); 2622 EXPECT_TRUE(channel_->AddRecvStream(
2623 cricket::StreamParams::CreateLegacy(ssrc2)));
2624 EXPECT_TRUE(channel_->AddRecvStream(
2625 cricket::StreamParams::CreateLegacy(ssrc3)));
2622 // Create packets with the right SSRCs. 2626 // Create packets with the right SSRCs.
2623 char packets[4][sizeof(kPcmuFrame)]; 2627 unsigned char packets[4][sizeof(kPcmuFrame)];
2624 for (size_t i = 0; i < arraysize(packets); ++i) { 2628 for (size_t i = 0; i < arraysize(packets); ++i) {
2625 memcpy(packets[i], kPcmuFrame, sizeof(kPcmuFrame)); 2629 memcpy(packets[i], kPcmuFrame, sizeof(kPcmuFrame));
2626 rtc::SetBE32(packets[i] + 8, static_cast<uint32_t>(i)); 2630 rtc::SetBE32(packets[i] + 8, static_cast<uint32_t>(i));
2627 } 2631 }
2628 EXPECT_TRUE(voe_.CheckNoPacket(channel_num1)); 2632
2629 EXPECT_TRUE(voe_.CheckNoPacket(channel_num2)); 2633 const cricket::FakeAudioReceiveStream& s1 = GetRecvStream(ssrc1);
2630 EXPECT_TRUE(voe_.CheckNoPacket(channel_num3)); 2634 const cricket::FakeAudioReceiveStream& s2 = GetRecvStream(ssrc2);
2635 const cricket::FakeAudioReceiveStream& s3 = GetRecvStream(ssrc3);
2636
2637 EXPECT_EQ(s1.received_packets(), 0);
2638 EXPECT_EQ(s2.received_packets(), 0);
2639 EXPECT_EQ(s3.received_packets(), 0);
2631 2640
2632 DeliverPacket(packets[0], sizeof(packets[0])); 2641 DeliverPacket(packets[0], sizeof(packets[0]));
2633 EXPECT_TRUE(voe_.CheckNoPacket(channel_num1)); 2642 EXPECT_EQ(s1.received_packets(), 0);
2634 EXPECT_TRUE(voe_.CheckNoPacket(channel_num2)); 2643 EXPECT_EQ(s2.received_packets(), 0);
2635 EXPECT_TRUE(voe_.CheckNoPacket(channel_num3)); 2644 EXPECT_EQ(s3.received_packets(), 0);
2636 2645
2637 DeliverPacket(packets[1], sizeof(packets[1])); 2646 DeliverPacket(packets[1], sizeof(packets[1]));
2638 EXPECT_TRUE(voe_.CheckPacket(channel_num1, packets[1], sizeof(packets[1]))); 2647 EXPECT_EQ(s1.received_packets(), 1);
2639 EXPECT_TRUE(voe_.CheckNoPacket(channel_num2)); 2648 EXPECT_TRUE(s1.VerifyLastPacket(packets[1], sizeof(packets[1])));
2640 EXPECT_TRUE(voe_.CheckNoPacket(channel_num3)); 2649 EXPECT_EQ(s2.received_packets(), 0);
2650 EXPECT_EQ(s3.received_packets(), 0);
2641 2651
2642 DeliverPacket(packets[2], sizeof(packets[2])); 2652 DeliverPacket(packets[2], sizeof(packets[2]));
2643 EXPECT_TRUE(voe_.CheckNoPacket(channel_num1)); 2653 EXPECT_EQ(s1.received_packets(), 1);
2644 EXPECT_TRUE(voe_.CheckPacket(channel_num2, packets[2], sizeof(packets[2]))); 2654 EXPECT_EQ(s2.received_packets(), 1);
2645 EXPECT_TRUE(voe_.CheckNoPacket(channel_num3)); 2655 EXPECT_TRUE(s2.VerifyLastPacket(packets[2], sizeof(packets[2])));
2656 EXPECT_EQ(s3.received_packets(), 0);
2646 2657
2647 DeliverPacket(packets[3], sizeof(packets[3])); 2658 DeliverPacket(packets[3], sizeof(packets[3]));
2648 EXPECT_TRUE(voe_.CheckNoPacket(channel_num1)); 2659 EXPECT_EQ(s1.received_packets(), 1);
2649 EXPECT_TRUE(voe_.CheckNoPacket(channel_num2)); 2660 EXPECT_EQ(s2.received_packets(), 1);
2650 EXPECT_TRUE(voe_.CheckPacket(channel_num3, packets[3], sizeof(packets[3]))); 2661 EXPECT_EQ(s3.received_packets(), 1);
2662 EXPECT_TRUE(s3.VerifyLastPacket(packets[3], sizeof(packets[3])));
2651 2663
2652 EXPECT_TRUE(channel_->RemoveRecvStream(3)); 2664 EXPECT_TRUE(channel_->RemoveRecvStream(ssrc3));
2653 EXPECT_TRUE(channel_->RemoveRecvStream(2)); 2665 EXPECT_TRUE(channel_->RemoveRecvStream(ssrc2));
2654 EXPECT_TRUE(channel_->RemoveRecvStream(1)); 2666 EXPECT_TRUE(channel_->RemoveRecvStream(ssrc1));
2655 } 2667 }
2656 2668
2657 // Test that receiving on an unsignalled stream works (default channel will be 2669 // Test that receiving on an unsignalled stream works (default channel will be
2658 // created). 2670 // created).
2659 TEST_F(WebRtcVoiceEngineTestFake, RecvUnsignalled) { 2671 TEST_F(WebRtcVoiceEngineTestFake, RecvUnsignalled) {
2660 EXPECT_TRUE(SetupChannel()); 2672 EXPECT_TRUE(SetupChannel());
2673 EXPECT_EQ(0, call_.GetAudioReceiveStreams().size());
2674
2661 DeliverPacket(kPcmuFrame, sizeof(kPcmuFrame)); 2675 DeliverPacket(kPcmuFrame, sizeof(kPcmuFrame));
2662 int channel_num = voe_.GetLastChannel(); 2676
2663 EXPECT_TRUE(voe_.CheckPacket(channel_num, kPcmuFrame, sizeof(kPcmuFrame))); 2677 EXPECT_EQ(1, call_.GetAudioReceiveStreams().size());
2678 EXPECT_TRUE(GetRecvStream(1).VerifyLastPacket(kPcmuFrame,
2679 sizeof(kPcmuFrame)));
2664 } 2680 }
2665 2681
2666 // Test that receiving on an unsignalled stream works (default channel will be 2682 // Test that receiving on an unsignalled stream works (default channel will be
2667 // created), and that packets will be forwarded to the default channel 2683 // created), and that packets will be forwarded to the default channel
2668 // regardless of their SSRCs. 2684 // regardless of their SSRCs.
2669 TEST_F(WebRtcVoiceEngineTestFake, RecvUnsignalledWithSsrcSwitch) { 2685 TEST_F(WebRtcVoiceEngineTestFake, RecvUnsignalledWithSsrcSwitch) {
2670 EXPECT_TRUE(SetupChannel()); 2686 EXPECT_TRUE(SetupChannel());
2671 char packet[sizeof(kPcmuFrame)]; 2687 unsigned char packet[sizeof(kPcmuFrame)];
2672 memcpy(packet, kPcmuFrame, sizeof(kPcmuFrame)); 2688 memcpy(packet, kPcmuFrame, sizeof(kPcmuFrame));
2673 2689
2674 // Note that the first unknown SSRC cannot be 0, because we only support 2690 // Note that ssrc = 0 is not supported.
2675 // creating receive streams for SSRC!=0. 2691 uint32_t ssrc = 1;
2676 DeliverPacket(packet, sizeof(packet)); 2692 for (; ssrc < 10; ++ssrc) {
2677 int channel_num = voe_.GetLastChannel();
2678 EXPECT_TRUE(voe_.CheckPacket(channel_num, packet, sizeof(packet)));
2679 // Once we have the default channel, SSRC==0 will be ok.
2680 for (uint32_t ssrc = 0; ssrc < 10; ++ssrc) {
2681 rtc::SetBE32(&packet[8], ssrc); 2693 rtc::SetBE32(&packet[8], ssrc);
2682 DeliverPacket(packet, sizeof(packet)); 2694 DeliverPacket(packet, sizeof(packet));
2683 EXPECT_TRUE(voe_.CheckPacket(channel_num, packet, sizeof(packet))); 2695
2696 // Verify we only have one default stream.
2697 EXPECT_EQ(1, call_.GetAudioReceiveStreams().size());
2698 EXPECT_EQ(1, GetRecvStream(ssrc).received_packets());
2699 EXPECT_TRUE(GetRecvStream(ssrc).VerifyLastPacket(packet, sizeof(packet)));
2684 } 2700 }
2701
2702 // Sending the same ssrc again should not create a new stream.
2703 --ssrc;
2704 DeliverPacket(packet, sizeof(packet));
2705 EXPECT_EQ(1, call_.GetAudioReceiveStreams().size());
2706 EXPECT_EQ(2, GetRecvStream(ssrc).received_packets());
2707 EXPECT_TRUE(GetRecvStream(ssrc).VerifyLastPacket(packet, sizeof(packet)));
2685 } 2708 }
2686 2709
2687 // Test that a default channel is created even after a signalled stream has been 2710 // Test that a default channel is created even after a signalled stream has been
2688 // added, and that this stream will get any packets for unknown SSRCs. 2711 // added, and that this stream will get any packets for unknown SSRCs.
2689 TEST_F(WebRtcVoiceEngineTestFake, RecvUnsignalledAfterSignalled) { 2712 TEST_F(WebRtcVoiceEngineTestFake, RecvUnsignalledAfterSignalled) {
2690 EXPECT_TRUE(SetupChannel()); 2713 EXPECT_TRUE(SetupChannel());
2691 char packet[sizeof(kPcmuFrame)]; 2714 unsigned char packet[sizeof(kPcmuFrame)];
2692 memcpy(packet, kPcmuFrame, sizeof(kPcmuFrame)); 2715 memcpy(packet, kPcmuFrame, sizeof(kPcmuFrame));
2693 2716
2694 // Add a known stream, send packet and verify we got it. 2717 // Add a known stream, send packet and verify we got it.
2695 EXPECT_TRUE(channel_->AddRecvStream(cricket::StreamParams::CreateLegacy(1))); 2718 const uint32_t signaled_ssrc = 1;
2696 int signalled_channel_num = voe_.GetLastChannel(); 2719 rtc::SetBE32(&packet[8], signaled_ssrc);
2720 EXPECT_TRUE(channel_->AddRecvStream(
2721 cricket::StreamParams::CreateLegacy(signaled_ssrc)));
2697 DeliverPacket(packet, sizeof(packet)); 2722 DeliverPacket(packet, sizeof(packet));
2698 EXPECT_TRUE(voe_.CheckPacket(signalled_channel_num, packet, sizeof(packet))); 2723 EXPECT_TRUE(GetRecvStream(signaled_ssrc).VerifyLastPacket(
2724 packet, sizeof(packet)));
2699 2725
2700 // Note that the first unknown SSRC cannot be 0, because we only support 2726 // Note that the first unknown SSRC cannot be 0, because we only support
2701 // creating receive streams for SSRC!=0. 2727 // creating receive streams for SSRC!=0.
2702 rtc::SetBE32(&packet[8], 7011); 2728 const uint32_t unsignaled_ssrc = 7011;
2729 rtc::SetBE32(&packet[8], unsignaled_ssrc);
2703 DeliverPacket(packet, sizeof(packet)); 2730 DeliverPacket(packet, sizeof(packet));
2704 int channel_num = voe_.GetLastChannel(); 2731 EXPECT_TRUE(GetRecvStream(unsignaled_ssrc).VerifyLastPacket(
2705 EXPECT_NE(channel_num, signalled_channel_num); 2732 packet, sizeof(packet)));
2706 EXPECT_TRUE(voe_.CheckPacket(channel_num, packet, sizeof(packet))); 2733 EXPECT_EQ(2, call_.GetAudioReceiveStreams().size());
2707 // Once we have the default channel, SSRC==0 will be ok. 2734
2708 for (uint32_t ssrc = 0; ssrc < 20; ssrc += 2) { 2735 DeliverPacket(packet, sizeof(packet));
2709 rtc::SetBE32(&packet[8], ssrc); 2736 EXPECT_EQ(2, GetRecvStream(unsignaled_ssrc).received_packets());
2710 DeliverPacket(packet, sizeof(packet)); 2737
2711 EXPECT_TRUE(voe_.CheckPacket(channel_num, packet, sizeof(packet))); 2738 rtc::SetBE32(&packet[8], signaled_ssrc);
2712 } 2739 DeliverPacket(packet, sizeof(packet));
2740 EXPECT_EQ(2, GetRecvStream(signaled_ssrc).received_packets());
2741 EXPECT_EQ(2, call_.GetAudioReceiveStreams().size());
2713 } 2742 }
2714 2743
2715 // Test that we properly handle failures to add a receive stream. 2744 // Test that we properly handle failures to add a receive stream.
2716 TEST_F(WebRtcVoiceEngineTestFake, AddRecvStreamFail) { 2745 TEST_F(WebRtcVoiceEngineTestFake, AddRecvStreamFail) {
2717 EXPECT_TRUE(SetupChannel()); 2746 EXPECT_TRUE(SetupChannel());
2718 voe_.set_fail_create_channel(true); 2747 voe_.set_fail_create_channel(true);
2719 EXPECT_FALSE(channel_->AddRecvStream(cricket::StreamParams::CreateLegacy(2))); 2748 EXPECT_FALSE(channel_->AddRecvStream(cricket::StreamParams::CreateLegacy(2)));
2720 } 2749 }
2721 2750
2722 // Test that we properly handle failures to add a send stream. 2751 // Test that we properly handle failures to add a send stream.
(...skipping 845 matching lines...) Expand 10 before | Expand all | Expand 10 after
3568 TEST(WebRtcVoiceEngineTest, SetRecvCodecs) { 3597 TEST(WebRtcVoiceEngineTest, SetRecvCodecs) {
3569 cricket::WebRtcVoiceEngine engine(nullptr); 3598 cricket::WebRtcVoiceEngine engine(nullptr);
3570 std::unique_ptr<webrtc::Call> call( 3599 std::unique_ptr<webrtc::Call> call(
3571 webrtc::Call::Create(webrtc::Call::Config())); 3600 webrtc::Call::Create(webrtc::Call::Config()));
3572 cricket::WebRtcVoiceMediaChannel channel(&engine, cricket::MediaConfig(), 3601 cricket::WebRtcVoiceMediaChannel channel(&engine, cricket::MediaConfig(),
3573 cricket::AudioOptions(), call.get()); 3602 cricket::AudioOptions(), call.get());
3574 cricket::AudioRecvParameters parameters; 3603 cricket::AudioRecvParameters parameters;
3575 parameters.codecs = engine.codecs(); 3604 parameters.codecs = engine.codecs();
3576 EXPECT_TRUE(channel.SetRecvParameters(parameters)); 3605 EXPECT_TRUE(channel.SetRecvParameters(parameters));
3577 } 3606 }
OLDNEW
« no previous file with comments | « webrtc/media/engine/webrtcvoiceengine.cc ('k') | webrtc/test/call_test.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698