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 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
211 EXPECT_EQ(kTelephoneEventCodec.id, telephone_event.payload_type); | 211 EXPECT_EQ(kTelephoneEventCodec.id, telephone_event.payload_type); |
212 EXPECT_EQ(2, telephone_event.event_code); | 212 EXPECT_EQ(2, telephone_event.event_code); |
213 EXPECT_EQ(123, telephone_event.duration_ms); | 213 EXPECT_EQ(123, telephone_event.duration_ms); |
214 } | 214 } |
215 | 215 |
216 // Test that send bandwidth is set correctly. | 216 // Test that send bandwidth is set correctly. |
217 // |codec| is the codec under test. | 217 // |codec| is the codec under test. |
218 // |max_bitrate| is a parameter to set to SetMaxSendBandwidth(). | 218 // |max_bitrate| is a parameter to set to SetMaxSendBandwidth(). |
219 // |expected_result| is the expected result from SetMaxSendBandwidth(). | 219 // |expected_result| is the expected result from SetMaxSendBandwidth(). |
220 // |expected_bitrate| is the expected audio bitrate afterward. | 220 // |expected_bitrate| is the expected audio bitrate afterward. |
221 void TestSendBandwidth(const cricket::AudioCodec& codec, | 221 void TestMaxSendBandwidth(const cricket::AudioCodec& codec, |
222 int max_bitrate, | 222 int max_bitrate, |
223 bool expected_result, | 223 bool expected_result, |
224 int expected_bitrate) { | 224 int expected_bitrate) { |
225 cricket::AudioSendParameters parameters; | 225 cricket::AudioSendParameters parameters; |
226 parameters.codecs.push_back(codec); | 226 parameters.codecs.push_back(codec); |
227 parameters.max_bandwidth_bps = max_bitrate; | 227 parameters.max_bandwidth_bps = max_bitrate; |
228 EXPECT_EQ(expected_result, channel_->SetSendParameters(parameters)); | 228 EXPECT_EQ(expected_result, channel_->SetSendParameters(parameters)); |
229 | 229 |
230 int channel_num = voe_.GetLastChannel(); | 230 int channel_num = voe_.GetLastChannel(); |
231 webrtc::CodecInst temp_codec; | 231 webrtc::CodecInst temp_codec; |
232 EXPECT_FALSE(voe_.GetSendCodec(channel_num, temp_codec)); | 232 EXPECT_FALSE(voe_.GetSendCodec(channel_num, temp_codec)); |
233 EXPECT_EQ(expected_bitrate, temp_codec.rate); | 233 EXPECT_EQ(expected_bitrate, temp_codec.rate); |
234 } | 234 } |
(...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
749 } | 749 } |
750 | 750 |
751 TEST_F(WebRtcVoiceEngineTestFake, SetSendBandwidthAuto) { | 751 TEST_F(WebRtcVoiceEngineTestFake, SetSendBandwidthAuto) { |
752 EXPECT_TRUE(SetupSendStream()); | 752 EXPECT_TRUE(SetupSendStream()); |
753 | 753 |
754 // Test that when autobw is enabled, bitrate is kept as the default | 754 // Test that when autobw is enabled, bitrate is kept as the default |
755 // value. autobw is enabled for the following tests because the target | 755 // value. autobw is enabled for the following tests because the target |
756 // bitrate is <= 0. | 756 // bitrate is <= 0. |
757 | 757 |
758 // ISAC, default bitrate == 32000. | 758 // ISAC, default bitrate == 32000. |
759 TestSendBandwidth(kIsacCodec, 0, true, 32000); | 759 TestMaxSendBandwidth(kIsacCodec, 0, true, 32000); |
760 | 760 |
761 // PCMU, default bitrate == 64000. | 761 // PCMU, default bitrate == 64000. |
762 TestSendBandwidth(kPcmuCodec, -1, true, 64000); | 762 TestMaxSendBandwidth(kPcmuCodec, -1, true, 64000); |
763 | 763 |
764 // opus, default bitrate == 64000. | 764 // opus, default bitrate == 64000. |
765 TestSendBandwidth(kOpusCodec, -1, true, 64000); | 765 TestMaxSendBandwidth(kOpusCodec, -1, true, 64000); |
766 } | 766 } |
767 | 767 |
768 TEST_F(WebRtcVoiceEngineTestFake, SetMaxSendBandwidthMultiRateAsCaller) { | 768 TEST_F(WebRtcVoiceEngineTestFake, SetMaxSendBandwidthMultiRateAsCaller) { |
769 EXPECT_TRUE(SetupSendStream()); | 769 EXPECT_TRUE(SetupSendStream()); |
770 | 770 |
771 // Test that the bitrate of a multi-rate codec is always the maximum. | 771 // Test that the bitrate of a multi-rate codec is always the maximum. |
772 | 772 |
773 // ISAC, default bitrate == 32000. | 773 // ISAC, default bitrate == 32000. |
774 TestSendBandwidth(kIsacCodec, 128000, true, 128000); | 774 TestMaxSendBandwidth(kIsacCodec, 40000, true, 40000); |
775 TestSendBandwidth(kIsacCodec, 16000, true, 16000); | 775 TestMaxSendBandwidth(kIsacCodec, 16000, true, 16000); |
| 776 // Rates above the max (56000) should be capped. |
| 777 TestMaxSendBandwidth(kIsacCodec, 100000, true, 56000); |
776 | 778 |
777 // opus, default bitrate == 64000. | 779 // opus, default bitrate == 64000. |
778 TestSendBandwidth(kOpusCodec, 96000, true, 96000); | 780 TestMaxSendBandwidth(kOpusCodec, 96000, true, 96000); |
779 TestSendBandwidth(kOpusCodec, 48000, true, 48000); | 781 TestMaxSendBandwidth(kOpusCodec, 48000, true, 48000); |
| 782 // Rates above the max (510000) should be capped. |
| 783 TestMaxSendBandwidth(kOpusCodec, 600000, true, 510000); |
780 } | 784 } |
781 | 785 |
782 TEST_F(WebRtcVoiceEngineTestFake, SetMaxSendBandwidthFixedRateAsCaller) { | 786 TEST_F(WebRtcVoiceEngineTestFake, SetMaxSendBandwidthFixedRateAsCaller) { |
783 EXPECT_TRUE(SetupSendStream()); | 787 EXPECT_TRUE(SetupSendStream()); |
784 | 788 |
785 // Test that we can only set a maximum bitrate for a fixed-rate codec | 789 // Test that we can only set a maximum bitrate for a fixed-rate codec |
786 // if it's bigger than the fixed rate. | 790 // if it's bigger than the fixed rate. |
787 | 791 |
788 // PCMU, fixed bitrate == 64000. | 792 // PCMU, fixed bitrate == 64000. |
789 TestSendBandwidth(kPcmuCodec, 0, true, 64000); | 793 TestMaxSendBandwidth(kPcmuCodec, 0, true, 64000); |
790 TestSendBandwidth(kPcmuCodec, 1, false, 64000); | 794 TestMaxSendBandwidth(kPcmuCodec, 1, false, 64000); |
791 TestSendBandwidth(kPcmuCodec, 128000, true, 64000); | 795 TestMaxSendBandwidth(kPcmuCodec, 128000, true, 64000); |
792 TestSendBandwidth(kPcmuCodec, 32000, false, 64000); | 796 TestMaxSendBandwidth(kPcmuCodec, 32000, false, 64000); |
793 TestSendBandwidth(kPcmuCodec, 64000, true, 64000); | 797 TestMaxSendBandwidth(kPcmuCodec, 64000, true, 64000); |
794 TestSendBandwidth(kPcmuCodec, 63999, false, 64000); | 798 TestMaxSendBandwidth(kPcmuCodec, 63999, false, 64000); |
795 TestSendBandwidth(kPcmuCodec, 64001, true, 64000); | 799 TestMaxSendBandwidth(kPcmuCodec, 64001, true, 64000); |
796 } | 800 } |
797 | 801 |
798 TEST_F(WebRtcVoiceEngineTestFake, SetMaxSendBandwidthMultiRateAsCallee) { | 802 TEST_F(WebRtcVoiceEngineTestFake, SetMaxSendBandwidthMultiRateAsCallee) { |
799 EXPECT_TRUE(SetupChannel()); | 803 EXPECT_TRUE(SetupChannel()); |
800 const int kDesiredBitrate = 128000; | 804 const int kDesiredBitrate = 128000; |
801 cricket::AudioSendParameters parameters; | 805 cricket::AudioSendParameters parameters; |
802 parameters.codecs = engine_->codecs(); | 806 parameters.codecs = engine_->codecs(); |
803 parameters.max_bandwidth_bps = kDesiredBitrate; | 807 parameters.max_bandwidth_bps = kDesiredBitrate; |
804 EXPECT_TRUE(channel_->SetSendParameters(parameters)); | 808 EXPECT_TRUE(channel_->SetSendParameters(parameters)); |
805 | 809 |
(...skipping 2758 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3564 TEST(WebRtcVoiceEngineTest, SetRecvCodecs) { | 3568 TEST(WebRtcVoiceEngineTest, SetRecvCodecs) { |
3565 cricket::WebRtcVoiceEngine engine(nullptr); | 3569 cricket::WebRtcVoiceEngine engine(nullptr); |
3566 std::unique_ptr<webrtc::Call> call( | 3570 std::unique_ptr<webrtc::Call> call( |
3567 webrtc::Call::Create(webrtc::Call::Config())); | 3571 webrtc::Call::Create(webrtc::Call::Config())); |
3568 cricket::WebRtcVoiceMediaChannel channel(&engine, cricket::MediaConfig(), | 3572 cricket::WebRtcVoiceMediaChannel channel(&engine, cricket::MediaConfig(), |
3569 cricket::AudioOptions(), call.get()); | 3573 cricket::AudioOptions(), call.get()); |
3570 cricket::AudioRecvParameters parameters; | 3574 cricket::AudioRecvParameters parameters; |
3571 parameters.codecs = engine.codecs(); | 3575 parameters.codecs = engine.codecs(); |
3572 EXPECT_TRUE(channel.SetRecvParameters(parameters)); | 3576 EXPECT_TRUE(channel.SetRecvParameters(parameters)); |
3573 } | 3577 } |
OLD | NEW |