Index: webrtc/media/engine/webrtcvoiceengine_unittest.cc |
diff --git a/webrtc/media/engine/webrtcvoiceengine_unittest.cc b/webrtc/media/engine/webrtcvoiceengine_unittest.cc |
index 38d224393c44785ffa728ab842be723ef1233d47..751d41b6aaca498224f0d63a46c90feda899c151 100644 |
--- a/webrtc/media/engine/webrtcvoiceengine_unittest.cc |
+++ b/webrtc/media/engine/webrtcvoiceengine_unittest.cc |
@@ -48,11 +48,13 @@ const cricket::AudioCodec |
const cricket::AudioCodec |
kTelephoneEventCodec2(107, "telephone-event", 32000, 0, 1); |
-const uint32_t kSsrc1 = 0x99; |
-const uint32_t kSsrc2 = 2; |
-const uint32_t kSsrc3 = 3; |
-const uint32_t kSsrc4 = 0x42; |
-const uint32_t kSsrcs4[] = { 1, 2, 3, 4 }; |
+const uint32_t kSsrc0 = 0; |
+const uint32_t kSsrc1 = 1; |
+const uint32_t kSsrcX = 0x99; |
+const uint32_t kSsrcY = 0x17; |
+const uint32_t kSsrcZ = 0x42; |
+const uint32_t kSsrcW = 0x02; |
+const uint32_t kSsrcs4[] = { 11, 200, 30, 44 }; |
constexpr int kRtpHistoryMs = 5000; |
@@ -168,18 +170,18 @@ class WebRtcVoiceEngineTestFake : public testing::Test { |
if (!SetupChannel()) { |
return false; |
} |
- return AddRecvStream(kSsrc1); |
+ return AddRecvStream(kSsrcX); |
} |
bool SetupSendStream() { |
if (!SetupChannel()) { |
return false; |
} |
- if (!channel_->AddSendStream(cricket::StreamParams::CreateLegacy(kSsrc1))) { |
+ if (!channel_->AddSendStream(cricket::StreamParams::CreateLegacy(kSsrcX))) { |
return false; |
} |
EXPECT_CALL(apm_, set_output_will_be_muted(false)); |
- return channel_->SetAudioSend(kSsrc1, true, nullptr, &fake_source_); |
+ return channel_->SetAudioSend(kSsrcX, true, nullptr, &fake_source_); |
} |
bool AddRecvStream(uint32_t ssrc) { |
@@ -190,10 +192,10 @@ class WebRtcVoiceEngineTestFake : public testing::Test { |
void SetupForMultiSendStream() { |
EXPECT_TRUE(SetupSendStream()); |
// Remove stream added in Setup. |
- EXPECT_TRUE(call_.GetAudioSendStream(kSsrc1)); |
- EXPECT_TRUE(channel_->RemoveSendStream(kSsrc1)); |
+ EXPECT_TRUE(call_.GetAudioSendStream(kSsrcX)); |
+ EXPECT_TRUE(channel_->RemoveSendStream(kSsrcX)); |
// Verify the channel does not exist. |
- EXPECT_FALSE(call_.GetAudioSendStream(kSsrc1)); |
+ EXPECT_FALSE(call_.GetAudioSendStream(kSsrcX)); |
} |
void DeliverPacket(const void* data, int len) { |
@@ -262,7 +264,7 @@ class WebRtcVoiceEngineTestFake : public testing::Test { |
// If this is a caller, local description will be applied and add the |
// send stream. |
EXPECT_TRUE(channel_->AddSendStream( |
- cricket::StreamParams::CreateLegacy(kSsrc1))); |
+ cricket::StreamParams::CreateLegacy(kSsrcX))); |
} |
// Test we can only InsertDtmf when the other side supports telephone-event. |
@@ -278,7 +280,7 @@ class WebRtcVoiceEngineTestFake : public testing::Test { |
// If this is callee, there's no active send channel yet. |
EXPECT_FALSE(channel_->InsertDtmf(ssrc, 2, 123)); |
EXPECT_TRUE(channel_->AddSendStream( |
- cricket::StreamParams::CreateLegacy(kSsrc1))); |
+ cricket::StreamParams::CreateLegacy(kSsrcX))); |
} |
// Check we fail if the ssrc is invalid. |
@@ -286,10 +288,10 @@ class WebRtcVoiceEngineTestFake : public testing::Test { |
// Test send. |
cricket::FakeAudioSendStream::TelephoneEvent telephone_event = |
- GetSendStream(kSsrc1).GetLatestTelephoneEvent(); |
+ GetSendStream(kSsrcX).GetLatestTelephoneEvent(); |
EXPECT_EQ(-1, telephone_event.payload_type); |
EXPECT_TRUE(channel_->InsertDtmf(ssrc, 2, 123)); |
- telephone_event = GetSendStream(kSsrc1).GetLatestTelephoneEvent(); |
+ telephone_event = GetSendStream(kSsrcX).GetLatestTelephoneEvent(); |
EXPECT_EQ(codec.id, telephone_event.payload_type); |
EXPECT_EQ(codec.clockrate, telephone_event.payload_frequency); |
EXPECT_EQ(2, telephone_event.event_code); |
@@ -313,7 +315,7 @@ class WebRtcVoiceEngineTestFake : public testing::Test { |
} else { |
EXPECT_FALSE(channel_->SetSendParameters(parameters)); |
} |
- EXPECT_EQ(expected_bitrate, GetCodecBitrate(kSsrc1)); |
+ EXPECT_EQ(expected_bitrate, GetCodecBitrate(kSsrcX)); |
} |
// Sets the per-stream maximum bitrate limit for the specified SSRC. |
@@ -372,22 +374,22 @@ class WebRtcVoiceEngineTestFake : public testing::Test { |
bool expected_result, |
int expected_codec_bitrate) { |
// Clear the bitrate limit from the previous test case. |
- EXPECT_TRUE(SetMaxBitrateForStream(kSsrc1, -1)); |
+ EXPECT_TRUE(SetMaxBitrateForStream(kSsrcX, -1)); |
// Attempt to set the requested bitrate limits. |
SetGlobalMaxBitrate(codec, global_max); |
- EXPECT_EQ(expected_result, SetMaxBitrateForStream(kSsrc1, stream_max)); |
+ EXPECT_EQ(expected_result, SetMaxBitrateForStream(kSsrcX, stream_max)); |
// Verify that reading back the parameters gives results |
// consistent with the Set() result. |
webrtc::RtpParameters resulting_parameters = |
- channel_->GetRtpSendParameters(kSsrc1); |
+ channel_->GetRtpSendParameters(kSsrcX); |
EXPECT_EQ(1UL, resulting_parameters.encodings.size()); |
EXPECT_EQ(expected_result ? stream_max : -1, |
resulting_parameters.encodings[0].max_bitrate_bps); |
// Verify that the codec settings have the expected bitrate. |
- EXPECT_EQ(expected_codec_bitrate, GetCodecBitrate(kSsrc1)); |
+ EXPECT_EQ(expected_codec_bitrate, GetCodecBitrate(kSsrcX)); |
} |
void SetSendCodecsShouldWorkForBitrates(const char* min_bitrate_kbps, |
@@ -417,82 +419,82 @@ class WebRtcVoiceEngineTestFake : public testing::Test { |
EXPECT_TRUE(SetupSendStream()); |
// Ensure extensions are off by default. |
- EXPECT_EQ(0u, GetSendStreamConfig(kSsrc1).rtp.extensions.size()); |
+ EXPECT_EQ(0u, GetSendStreamConfig(kSsrcX).rtp.extensions.size()); |
// Ensure unknown extensions won't cause an error. |
send_parameters_.extensions.push_back( |
webrtc::RtpExtension("urn:ietf:params:unknownextention", 1)); |
SetSendParameters(send_parameters_); |
- EXPECT_EQ(0u, GetSendStreamConfig(kSsrc1).rtp.extensions.size()); |
+ EXPECT_EQ(0u, GetSendStreamConfig(kSsrcX).rtp.extensions.size()); |
// Ensure extensions stay off with an empty list of headers. |
send_parameters_.extensions.clear(); |
SetSendParameters(send_parameters_); |
- EXPECT_EQ(0u, GetSendStreamConfig(kSsrc1).rtp.extensions.size()); |
+ EXPECT_EQ(0u, GetSendStreamConfig(kSsrcX).rtp.extensions.size()); |
// Ensure extension is set properly. |
const int id = 1; |
send_parameters_.extensions.push_back(webrtc::RtpExtension(ext, id)); |
SetSendParameters(send_parameters_); |
- EXPECT_EQ(1u, GetSendStreamConfig(kSsrc1).rtp.extensions.size()); |
- EXPECT_EQ(ext, GetSendStreamConfig(kSsrc1).rtp.extensions[0].uri); |
- EXPECT_EQ(id, GetSendStreamConfig(kSsrc1).rtp.extensions[0].id); |
+ EXPECT_EQ(1u, GetSendStreamConfig(kSsrcX).rtp.extensions.size()); |
+ EXPECT_EQ(ext, GetSendStreamConfig(kSsrcX).rtp.extensions[0].uri); |
+ EXPECT_EQ(id, GetSendStreamConfig(kSsrcX).rtp.extensions[0].id); |
// Ensure extension is set properly on new stream. |
EXPECT_TRUE(channel_->AddSendStream( |
- cricket::StreamParams::CreateLegacy(kSsrc2))); |
- EXPECT_NE(call_.GetAudioSendStream(kSsrc1), |
- call_.GetAudioSendStream(kSsrc2)); |
- EXPECT_EQ(1u, GetSendStreamConfig(kSsrc2).rtp.extensions.size()); |
- EXPECT_EQ(ext, GetSendStreamConfig(kSsrc2).rtp.extensions[0].uri); |
- EXPECT_EQ(id, GetSendStreamConfig(kSsrc2).rtp.extensions[0].id); |
+ cricket::StreamParams::CreateLegacy(kSsrcY))); |
+ EXPECT_NE(call_.GetAudioSendStream(kSsrcX), |
+ call_.GetAudioSendStream(kSsrcY)); |
+ EXPECT_EQ(1u, GetSendStreamConfig(kSsrcY).rtp.extensions.size()); |
+ EXPECT_EQ(ext, GetSendStreamConfig(kSsrcY).rtp.extensions[0].uri); |
+ EXPECT_EQ(id, GetSendStreamConfig(kSsrcY).rtp.extensions[0].id); |
// Ensure all extensions go back off with an empty list. |
send_parameters_.codecs.push_back(kPcmuCodec); |
send_parameters_.extensions.clear(); |
SetSendParameters(send_parameters_); |
- EXPECT_EQ(0u, GetSendStreamConfig(kSsrc1).rtp.extensions.size()); |
- EXPECT_EQ(0u, GetSendStreamConfig(kSsrc2).rtp.extensions.size()); |
+ EXPECT_EQ(0u, GetSendStreamConfig(kSsrcX).rtp.extensions.size()); |
+ EXPECT_EQ(0u, GetSendStreamConfig(kSsrcY).rtp.extensions.size()); |
} |
void TestSetRecvRtpHeaderExtensions(const std::string& ext) { |
EXPECT_TRUE(SetupRecvStream()); |
// Ensure extensions are off by default. |
- EXPECT_EQ(0u, GetRecvStreamConfig(kSsrc1).rtp.extensions.size()); |
+ EXPECT_EQ(0u, GetRecvStreamConfig(kSsrcX).rtp.extensions.size()); |
// Ensure unknown extensions won't cause an error. |
recv_parameters_.extensions.push_back( |
webrtc::RtpExtension("urn:ietf:params:unknownextention", 1)); |
EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_)); |
- EXPECT_EQ(0u, GetRecvStreamConfig(kSsrc1).rtp.extensions.size()); |
+ EXPECT_EQ(0u, GetRecvStreamConfig(kSsrcX).rtp.extensions.size()); |
// Ensure extensions stay off with an empty list of headers. |
recv_parameters_.extensions.clear(); |
EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_)); |
- EXPECT_EQ(0u, GetRecvStreamConfig(kSsrc1).rtp.extensions.size()); |
+ EXPECT_EQ(0u, GetRecvStreamConfig(kSsrcX).rtp.extensions.size()); |
// Ensure extension is set properly. |
const int id = 2; |
recv_parameters_.extensions.push_back(webrtc::RtpExtension(ext, id)); |
EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_)); |
- EXPECT_EQ(1u, GetRecvStreamConfig(kSsrc1).rtp.extensions.size()); |
- EXPECT_EQ(ext, GetRecvStreamConfig(kSsrc1).rtp.extensions[0].uri); |
- EXPECT_EQ(id, GetRecvStreamConfig(kSsrc1).rtp.extensions[0].id); |
+ EXPECT_EQ(1u, GetRecvStreamConfig(kSsrcX).rtp.extensions.size()); |
+ EXPECT_EQ(ext, GetRecvStreamConfig(kSsrcX).rtp.extensions[0].uri); |
+ EXPECT_EQ(id, GetRecvStreamConfig(kSsrcX).rtp.extensions[0].id); |
// Ensure extension is set properly on new stream. |
- EXPECT_TRUE(AddRecvStream(kSsrc2)); |
- EXPECT_NE(call_.GetAudioReceiveStream(kSsrc1), |
- call_.GetAudioReceiveStream(kSsrc2)); |
- EXPECT_EQ(1u, GetRecvStreamConfig(kSsrc2).rtp.extensions.size()); |
- EXPECT_EQ(ext, GetRecvStreamConfig(kSsrc2).rtp.extensions[0].uri); |
- EXPECT_EQ(id, GetRecvStreamConfig(kSsrc2).rtp.extensions[0].id); |
+ EXPECT_TRUE(AddRecvStream(kSsrcY)); |
+ EXPECT_NE(call_.GetAudioReceiveStream(kSsrcX), |
+ call_.GetAudioReceiveStream(kSsrcY)); |
+ EXPECT_EQ(1u, GetRecvStreamConfig(kSsrcY).rtp.extensions.size()); |
+ EXPECT_EQ(ext, GetRecvStreamConfig(kSsrcY).rtp.extensions[0].uri); |
+ EXPECT_EQ(id, GetRecvStreamConfig(kSsrcY).rtp.extensions[0].id); |
// Ensure all extensions go back off with an empty list. |
recv_parameters_.extensions.clear(); |
EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_)); |
- EXPECT_EQ(0u, GetRecvStreamConfig(kSsrc1).rtp.extensions.size()); |
- EXPECT_EQ(0u, GetRecvStreamConfig(kSsrc2).rtp.extensions.size()); |
+ EXPECT_EQ(0u, GetRecvStreamConfig(kSsrcX).rtp.extensions.size()); |
+ EXPECT_EQ(0u, GetRecvStreamConfig(kSsrcY).rtp.extensions.size()); |
} |
webrtc::AudioSendStream::Stats GetAudioSendStreamStats() const { |
@@ -664,9 +666,9 @@ TEST_F(WebRtcVoiceEngineTestFake, CreateChannel) { |
TEST_F(WebRtcVoiceEngineTestFake, CreateSendStream) { |
EXPECT_TRUE(SetupChannel()); |
EXPECT_TRUE( |
- channel_->AddSendStream(cricket::StreamParams::CreateLegacy(kSsrc1))); |
- const webrtc::AudioSendStream::Config& config = GetSendStreamConfig(kSsrc1); |
- EXPECT_EQ(kSsrc1, config.rtp.ssrc); |
+ channel_->AddSendStream(cricket::StreamParams::CreateLegacy(kSsrcX))); |
+ const webrtc::AudioSendStream::Config& config = GetSendStreamConfig(kSsrcX); |
+ EXPECT_EQ(kSsrcX, config.rtp.ssrc); |
EXPECT_EQ("", config.rtp.c_name); |
EXPECT_EQ(0u, config.rtp.extensions.size()); |
EXPECT_EQ(static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_), |
@@ -676,10 +678,10 @@ TEST_F(WebRtcVoiceEngineTestFake, CreateSendStream) { |
// Test that we can add a receive stream and that it has the correct defaults. |
TEST_F(WebRtcVoiceEngineTestFake, CreateRecvStream) { |
EXPECT_TRUE(SetupChannel()); |
- EXPECT_TRUE(AddRecvStream(kSsrc1)); |
+ EXPECT_TRUE(AddRecvStream(kSsrcX)); |
const webrtc::AudioReceiveStream::Config& config = |
- GetRecvStreamConfig(kSsrc1); |
- EXPECT_EQ(kSsrc1, config.rtp.remote_ssrc); |
+ GetRecvStreamConfig(kSsrcX); |
+ EXPECT_EQ(kSsrcX, config.rtp.remote_ssrc); |
EXPECT_EQ(0xFA17FA17, config.rtp.local_ssrc); |
EXPECT_FALSE(config.rtp.transport_cc); |
EXPECT_EQ(0u, config.rtp.extensions.size()); |
@@ -764,7 +766,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetRecvCodecs) { |
parameters.codecs[0].id = 106; // collide with existing CN 32k |
parameters.codecs[2].id = 126; |
EXPECT_TRUE(channel_->SetRecvParameters(parameters)); |
- EXPECT_TRUE(AddRecvStream(kSsrc1)); |
+ EXPECT_TRUE(AddRecvStream(kSsrcX)); |
int channel_num = voe_.GetLastChannel(); |
webrtc::CodecInst gcodec; |
@@ -814,7 +816,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetRecvCodecsWithOpusNoStereo) { |
parameters.codecs.push_back(kPcmuCodec); |
parameters.codecs.push_back(kOpusCodec); |
EXPECT_TRUE(channel_->SetRecvParameters(parameters)); |
- EXPECT_TRUE(AddRecvStream(kSsrc1)); |
+ EXPECT_TRUE(AddRecvStream(kSsrcX)); |
int channel_num = voe_.GetLastChannel(); |
webrtc::CodecInst opus; |
cricket::WebRtcVoiceEngine::ToCodecInst(kOpusCodec, &opus); |
@@ -836,7 +838,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetRecvCodecsWithOpus0Stereo) { |
parameters.codecs.push_back(kOpusCodec); |
parameters.codecs[2].params["stereo"] = "0"; |
EXPECT_TRUE(channel_->SetRecvParameters(parameters)); |
- EXPECT_TRUE(AddRecvStream(kSsrc1)); |
+ EXPECT_TRUE(AddRecvStream(kSsrcX)); |
int channel_num2 = voe_.GetLastChannel(); |
webrtc::CodecInst opus; |
cricket::WebRtcVoiceEngine::ToCodecInst(kOpusCodec, &opus); |
@@ -858,7 +860,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetRecvCodecsWithOpus1Stereo) { |
parameters.codecs.push_back(kOpusCodec); |
parameters.codecs[2].params["stereo"] = "1"; |
EXPECT_TRUE(channel_->SetRecvParameters(parameters)); |
- EXPECT_TRUE(AddRecvStream(kSsrc1)); |
+ EXPECT_TRUE(AddRecvStream(kSsrcX)); |
int channel_num2 = voe_.GetLastChannel(); |
webrtc::CodecInst opus; |
cricket::WebRtcVoiceEngine::ToCodecInst(kOpusCodec, &opus); |
@@ -881,7 +883,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetRecvCodecsWithMultipleStreams) { |
parameters.codecs[0].id = 106; // collide with existing CN 32k |
parameters.codecs[2].id = 126; |
EXPECT_TRUE(channel_->SetRecvParameters(parameters)); |
- EXPECT_TRUE(AddRecvStream(kSsrc1)); |
+ EXPECT_TRUE(AddRecvStream(kSsrcX)); |
int channel_num2 = voe_.GetLastChannel(); |
webrtc::CodecInst gcodec; |
@@ -912,7 +914,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetRecvCodecsAfterAddingStreams) { |
parameters.codecs[0].id = 106; // collide with existing CN 32k |
EXPECT_TRUE(channel_->SetRecvParameters(parameters)); |
- const auto& dm = GetRecvStreamConfig(kSsrc1).decoder_map; |
+ const auto& dm = GetRecvStreamConfig(kSsrcX).decoder_map; |
ASSERT_EQ(1, dm.count(106)); |
EXPECT_EQ(webrtc::SdpAudioFormat("isac", 16000, 1), dm.at(106)); |
} |
@@ -930,7 +932,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetRecvCodecsWhilePlaying) { |
// Changing the payload type of a codec should fail. |
parameters.codecs[0].id = 127; |
EXPECT_FALSE(channel_->SetRecvParameters(parameters)); |
- EXPECT_TRUE(GetRecvStream(kSsrc1).started()); |
+ EXPECT_TRUE(GetRecvStream(kSsrcX).started()); |
} |
// Test that we can add a codec while playing. |
@@ -944,7 +946,7 @@ TEST_F(WebRtcVoiceEngineTestFake, AddRecvCodecsWhilePlaying) { |
parameters.codecs.push_back(kOpusCodec); |
EXPECT_TRUE(channel_->SetRecvParameters(parameters)); |
- EXPECT_TRUE(GetRecvStream(kSsrc1).started()); |
+ EXPECT_TRUE(GetRecvStream(kSsrcX).started()); |
webrtc::CodecInst gcodec; |
EXPECT_TRUE(cricket::WebRtcVoiceEngine::ToCodecInst(kOpusCodec, &gcodec)); |
EXPECT_EQ(kOpusCodec.id, gcodec.pltype); |
@@ -1010,9 +1012,9 @@ TEST_F(WebRtcVoiceEngineTestFake, SetMaxSendBandwidthMultiRateAsCallee) { |
SetSendParameters(parameters); |
EXPECT_TRUE(channel_->AddSendStream( |
- cricket::StreamParams::CreateLegacy(kSsrc1))); |
+ cricket::StreamParams::CreateLegacy(kSsrcX))); |
- EXPECT_EQ(kDesiredBitrate, GetCodecBitrate(kSsrc1)); |
+ EXPECT_EQ(kDesiredBitrate, GetCodecBitrate(kSsrcX)); |
} |
// Test that bitrate cannot be set for CBR codecs. |
@@ -1023,15 +1025,15 @@ TEST_F(WebRtcVoiceEngineTestFake, SetMaxSendBandwidthCbr) { |
// PCMU, default bitrate == 64000. |
SetSendParameters(send_parameters_); |
- EXPECT_EQ(64000, GetCodecBitrate(kSsrc1)); |
+ EXPECT_EQ(64000, GetCodecBitrate(kSsrcX)); |
send_parameters_.max_bandwidth_bps = 128000; |
SetSendParameters(send_parameters_); |
- EXPECT_EQ(64000, GetCodecBitrate(kSsrc1)); |
+ EXPECT_EQ(64000, GetCodecBitrate(kSsrcX)); |
send_parameters_.max_bandwidth_bps = 128; |
EXPECT_FALSE(channel_->SetSendParameters(send_parameters_)); |
- EXPECT_EQ(64000, GetCodecBitrate(kSsrc1)); |
+ EXPECT_EQ(64000, GetCodecBitrate(kSsrcX)); |
} |
// Test that the per-stream bitrate limit and the global |
@@ -1061,11 +1063,11 @@ TEST_F(WebRtcVoiceEngineTestFake, SetMaxBitratePerStream) { |
TEST_F(WebRtcVoiceEngineTestFake, CannotSetMaxBitrateForNonexistentStream) { |
EXPECT_TRUE(SetupChannel()); |
webrtc::RtpParameters nonexistent_parameters = |
- channel_->GetRtpSendParameters(kSsrc1); |
+ channel_->GetRtpSendParameters(kSsrcX); |
EXPECT_EQ(0, nonexistent_parameters.encodings.size()); |
nonexistent_parameters.encodings.push_back(webrtc::RtpEncodingParameters()); |
- EXPECT_FALSE(channel_->SetRtpSendParameters(kSsrc1, nonexistent_parameters)); |
+ EXPECT_FALSE(channel_->SetRtpSendParameters(kSsrcX, nonexistent_parameters)); |
} |
TEST_F(WebRtcVoiceEngineTestFake, |
@@ -1076,21 +1078,21 @@ TEST_F(WebRtcVoiceEngineTestFake, |
// for each encoding individually. |
EXPECT_TRUE(SetupSendStream()); |
- webrtc::RtpParameters parameters = channel_->GetRtpSendParameters(kSsrc1); |
+ webrtc::RtpParameters parameters = channel_->GetRtpSendParameters(kSsrcX); |
// Two or more encodings should result in failure. |
parameters.encodings.push_back(webrtc::RtpEncodingParameters()); |
- EXPECT_FALSE(channel_->SetRtpSendParameters(kSsrc1, parameters)); |
+ EXPECT_FALSE(channel_->SetRtpSendParameters(kSsrcX, parameters)); |
// Zero encodings should also fail. |
parameters.encodings.clear(); |
- EXPECT_FALSE(channel_->SetRtpSendParameters(kSsrc1, parameters)); |
+ EXPECT_FALSE(channel_->SetRtpSendParameters(kSsrcX, parameters)); |
} |
// Changing the SSRC through RtpParameters is not allowed. |
TEST_F(WebRtcVoiceEngineTestFake, CannotSetSsrcInRtpSendParameters) { |
EXPECT_TRUE(SetupSendStream()); |
- webrtc::RtpParameters parameters = channel_->GetRtpSendParameters(kSsrc1); |
+ webrtc::RtpParameters parameters = channel_->GetRtpSendParameters(kSsrcX); |
parameters.encodings[0].ssrc = rtc::Optional<uint32_t>(0xdeadbeef); |
- EXPECT_FALSE(channel_->SetRtpSendParameters(kSsrc1, parameters)); |
+ EXPECT_FALSE(channel_->SetRtpSendParameters(kSsrcX, parameters)); |
} |
// Test that a stream will not be sending if its encoding is made |
@@ -1098,19 +1100,19 @@ TEST_F(WebRtcVoiceEngineTestFake, CannotSetSsrcInRtpSendParameters) { |
TEST_F(WebRtcVoiceEngineTestFake, SetRtpParametersEncodingsActive) { |
EXPECT_TRUE(SetupSendStream()); |
SetSend(true); |
- EXPECT_TRUE(GetSendStream(kSsrc1).IsSending()); |
+ EXPECT_TRUE(GetSendStream(kSsrcX).IsSending()); |
// Get current parameters and change "active" to false. |
- webrtc::RtpParameters parameters = channel_->GetRtpSendParameters(kSsrc1); |
+ webrtc::RtpParameters parameters = channel_->GetRtpSendParameters(kSsrcX); |
ASSERT_EQ(1u, parameters.encodings.size()); |
ASSERT_TRUE(parameters.encodings[0].active); |
parameters.encodings[0].active = false; |
- EXPECT_TRUE(channel_->SetRtpSendParameters(kSsrc1, parameters)); |
- EXPECT_FALSE(GetSendStream(kSsrc1).IsSending()); |
+ EXPECT_TRUE(channel_->SetRtpSendParameters(kSsrcX, parameters)); |
+ EXPECT_FALSE(GetSendStream(kSsrcX).IsSending()); |
// Now change it back to active and verify we resume sending. |
parameters.encodings[0].active = true; |
- EXPECT_TRUE(channel_->SetRtpSendParameters(kSsrc1, parameters)); |
- EXPECT_TRUE(GetSendStream(kSsrc1).IsSending()); |
+ EXPECT_TRUE(channel_->SetRtpSendParameters(kSsrcX, parameters)); |
+ EXPECT_TRUE(GetSendStream(kSsrcX).IsSending()); |
} |
// Test that SetRtpSendParameters configures the correct encoding channel for |
@@ -1150,7 +1152,7 @@ TEST_F(WebRtcVoiceEngineTestFake, GetRtpSendParametersCodecs) { |
parameters.codecs.push_back(kPcmuCodec); |
SetSendParameters(parameters); |
- webrtc::RtpParameters rtp_parameters = channel_->GetRtpSendParameters(kSsrc1); |
+ webrtc::RtpParameters rtp_parameters = channel_->GetRtpSendParameters(kSsrcX); |
ASSERT_EQ(2u, rtp_parameters.codecs.size()); |
EXPECT_EQ(kIsacCodec.ToCodecParameters(), rtp_parameters.codecs[0]); |
EXPECT_EQ(kPcmuCodec.ToCodecParameters(), rtp_parameters.codecs[1]); |
@@ -1159,9 +1161,9 @@ TEST_F(WebRtcVoiceEngineTestFake, GetRtpSendParametersCodecs) { |
// Test that GetRtpSendParameters returns an SSRC. |
TEST_F(WebRtcVoiceEngineTestFake, GetRtpSendParametersSsrc) { |
EXPECT_TRUE(SetupSendStream()); |
- webrtc::RtpParameters rtp_parameters = channel_->GetRtpSendParameters(kSsrc1); |
+ webrtc::RtpParameters rtp_parameters = channel_->GetRtpSendParameters(kSsrcX); |
ASSERT_EQ(1u, rtp_parameters.encodings.size()); |
- EXPECT_EQ(kSsrc1, rtp_parameters.encodings[0].ssrc); |
+ EXPECT_EQ(kSsrcX, rtp_parameters.encodings[0].ssrc); |
} |
// Test that if we set/get parameters multiple times, we get the same results. |
@@ -1172,14 +1174,14 @@ TEST_F(WebRtcVoiceEngineTestFake, SetAndGetRtpSendParameters) { |
parameters.codecs.push_back(kPcmuCodec); |
SetSendParameters(parameters); |
- webrtc::RtpParameters initial_params = channel_->GetRtpSendParameters(kSsrc1); |
+ webrtc::RtpParameters initial_params = channel_->GetRtpSendParameters(kSsrcX); |
// We should be able to set the params we just got. |
- EXPECT_TRUE(channel_->SetRtpSendParameters(kSsrc1, initial_params)); |
+ EXPECT_TRUE(channel_->SetRtpSendParameters(kSsrcX, initial_params)); |
// ... And this shouldn't change the params returned by GetRtpSendParameters. |
- webrtc::RtpParameters new_params = channel_->GetRtpSendParameters(kSsrc1); |
- EXPECT_EQ(initial_params, channel_->GetRtpSendParameters(kSsrc1)); |
+ webrtc::RtpParameters new_params = channel_->GetRtpSendParameters(kSsrcX); |
+ EXPECT_EQ(initial_params, channel_->GetRtpSendParameters(kSsrcX)); |
} |
// Test that GetRtpReceiveParameters returns the currently configured codecs. |
@@ -1191,7 +1193,7 @@ TEST_F(WebRtcVoiceEngineTestFake, GetRtpReceiveParametersCodecs) { |
EXPECT_TRUE(channel_->SetRecvParameters(parameters)); |
webrtc::RtpParameters rtp_parameters = |
- channel_->GetRtpReceiveParameters(kSsrc1); |
+ channel_->GetRtpReceiveParameters(kSsrcX); |
ASSERT_EQ(2u, rtp_parameters.codecs.size()); |
EXPECT_EQ(kIsacCodec.ToCodecParameters(), rtp_parameters.codecs[0]); |
EXPECT_EQ(kPcmuCodec.ToCodecParameters(), rtp_parameters.codecs[1]); |
@@ -1201,9 +1203,9 @@ TEST_F(WebRtcVoiceEngineTestFake, GetRtpReceiveParametersCodecs) { |
TEST_F(WebRtcVoiceEngineTestFake, GetRtpReceiveParametersSsrc) { |
EXPECT_TRUE(SetupRecvStream()); |
webrtc::RtpParameters rtp_parameters = |
- channel_->GetRtpReceiveParameters(kSsrc1); |
+ channel_->GetRtpReceiveParameters(kSsrcX); |
ASSERT_EQ(1u, rtp_parameters.encodings.size()); |
- EXPECT_EQ(kSsrc1, rtp_parameters.encodings[0].ssrc); |
+ EXPECT_EQ(kSsrcX, rtp_parameters.encodings[0].ssrc); |
} |
// Test that if we set/get parameters multiple times, we get the same results. |
@@ -1215,15 +1217,15 @@ TEST_F(WebRtcVoiceEngineTestFake, SetAndGetRtpReceiveParameters) { |
EXPECT_TRUE(channel_->SetRecvParameters(parameters)); |
webrtc::RtpParameters initial_params = |
- channel_->GetRtpReceiveParameters(kSsrc1); |
+ channel_->GetRtpReceiveParameters(kSsrcX); |
// We should be able to set the params we just got. |
- EXPECT_TRUE(channel_->SetRtpReceiveParameters(kSsrc1, initial_params)); |
+ EXPECT_TRUE(channel_->SetRtpReceiveParameters(kSsrcX, initial_params)); |
// ... And this shouldn't change the params returned by |
// GetRtpReceiveParameters. |
- webrtc::RtpParameters new_params = channel_->GetRtpReceiveParameters(kSsrc1); |
- EXPECT_EQ(initial_params, channel_->GetRtpReceiveParameters(kSsrc1)); |
+ webrtc::RtpParameters new_params = channel_->GetRtpReceiveParameters(kSsrcX); |
+ EXPECT_EQ(initial_params, channel_->GetRtpReceiveParameters(kSsrcX)); |
} |
// Test that we apply codecs properly. |
@@ -1238,7 +1240,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecs) { |
const int initial_num = call_.GetNumCreatedSendStreams(); |
SetSendParameters(parameters); |
EXPECT_EQ(initial_num + 1, call_.GetNumCreatedSendStreams()); |
- const auto& send_codec_spec = GetSendStreamConfig(kSsrc1).send_codec_spec; |
+ const auto& send_codec_spec = GetSendStreamConfig(kSsrcX).send_codec_spec; |
EXPECT_EQ(96, send_codec_spec.codec_inst.pltype); |
EXPECT_EQ(48000, send_codec_spec.codec_inst.rate); |
EXPECT_STREQ("ISAC", send_codec_spec.codec_inst.plname); |
@@ -1273,7 +1275,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecG722) { |
cricket::AudioSendParameters parameters; |
parameters.codecs.push_back(kG722CodecSdp); |
SetSendParameters(parameters); |
- const auto& gcodec = GetSendStreamConfig(kSsrc1).send_codec_spec.codec_inst; |
+ const auto& gcodec = GetSendStreamConfig(kSsrcX).send_codec_spec.codec_inst; |
EXPECT_STREQ("G722", gcodec.plname); |
EXPECT_EQ(1, gcodec.channels); |
EXPECT_EQ(16000, gcodec.plfreq); |
@@ -1350,7 +1352,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecOpusGood0BitrateNoStereo) { |
parameters.codecs.push_back(kOpusCodec); |
parameters.codecs[0].bitrate = 0; |
SetSendParameters(parameters); |
- CheckSendCodec(kSsrc1, "opus", 1, 32000); |
+ CheckSendCodec(kSsrcX, "opus", 1, 32000); |
} |
// Test that with bitrate=0 and stereo=0, |
@@ -1362,7 +1364,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecOpusGood0Bitrate0Stereo) { |
parameters.codecs[0].bitrate = 0; |
parameters.codecs[0].params["stereo"] = "0"; |
SetSendParameters(parameters); |
- CheckSendCodec(kSsrc1, "opus", 1, 32000); |
+ CheckSendCodec(kSsrcX, "opus", 1, 32000); |
} |
// Test that with bitrate=invalid and stereo=0, |
@@ -1375,11 +1377,11 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecOpusGoodXBitrate0Stereo) { |
// bitrate that's out of the range between 6000 and 510000 will be clamped. |
parameters.codecs[0].bitrate = 5999; |
SetSendParameters(parameters); |
- CheckSendCodec(kSsrc1, "opus", 1, 6000); |
+ CheckSendCodec(kSsrcX, "opus", 1, 6000); |
parameters.codecs[0].bitrate = 510001; |
SetSendParameters(parameters); |
- CheckSendCodec(kSsrc1, "opus", 1, 510000); |
+ CheckSendCodec(kSsrcX, "opus", 1, 510000); |
} |
// Test that with bitrate=0 and stereo=1, |
@@ -1391,7 +1393,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecOpusGood0Bitrate1Stereo) { |
parameters.codecs[0].bitrate = 0; |
parameters.codecs[0].params["stereo"] = "1"; |
SetSendParameters(parameters); |
- CheckSendCodec(kSsrc1, "opus", 2, 64000); |
+ CheckSendCodec(kSsrcX, "opus", 2, 64000); |
} |
// Test that with bitrate=invalid and stereo=1, |
@@ -1404,11 +1406,11 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecOpusGoodXBitrate1Stereo) { |
// bitrate that's out of the range between 6000 and 510000 will be clamped. |
parameters.codecs[0].bitrate = 5999; |
SetSendParameters(parameters); |
- CheckSendCodec(kSsrc1, "opus", 2, 6000); |
+ CheckSendCodec(kSsrcX, "opus", 2, 6000); |
parameters.codecs[0].bitrate = 510001; |
SetSendParameters(parameters); |
- CheckSendCodec(kSsrc1, "opus", 2, 510000); |
+ CheckSendCodec(kSsrcX, "opus", 2, 510000); |
} |
// Test that with bitrate=N and stereo unset, |
@@ -1419,7 +1421,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecOpusGoodNBitrateNoStereo) { |
parameters.codecs.push_back(kOpusCodec); |
parameters.codecs[0].bitrate = 96000; |
SetSendParameters(parameters); |
- const auto& gcodec = GetSendStreamConfig(kSsrc1).send_codec_spec.codec_inst; |
+ const auto& gcodec = GetSendStreamConfig(kSsrcX).send_codec_spec.codec_inst; |
EXPECT_EQ(111, gcodec.pltype); |
EXPECT_EQ(96000, gcodec.rate); |
EXPECT_STREQ("opus", gcodec.plname); |
@@ -1436,7 +1438,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecOpusGoodNBitrate0Stereo) { |
parameters.codecs[0].bitrate = 30000; |
parameters.codecs[0].params["stereo"] = "0"; |
SetSendParameters(parameters); |
- CheckSendCodec(kSsrc1, "opus", 1, 30000); |
+ CheckSendCodec(kSsrcX, "opus", 1, 30000); |
} |
// Test that with bitrate=N and without any parameters, |
@@ -1447,7 +1449,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecOpusGoodNBitrateNoParameters) { |
parameters.codecs.push_back(kOpusCodec); |
parameters.codecs[0].bitrate = 30000; |
SetSendParameters(parameters); |
- CheckSendCodec(kSsrc1, "opus", 1, 30000); |
+ CheckSendCodec(kSsrcX, "opus", 1, 30000); |
} |
// Test that with bitrate=N and stereo=1, |
@@ -1459,7 +1461,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecOpusGoodNBitrate1Stereo) { |
parameters.codecs[0].bitrate = 30000; |
parameters.codecs[0].params["stereo"] = "1"; |
SetSendParameters(parameters); |
- CheckSendCodec(kSsrc1, "opus", 2, 30000); |
+ CheckSendCodec(kSsrcX, "opus", 2, 30000); |
} |
// Test that bitrate will be overridden by the "maxaveragebitrate" parameter. |
@@ -1473,16 +1475,16 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecOpusMaxAverageBitrate) { |
// Ignore if less than 6000. |
parameters.codecs[0].params["maxaveragebitrate"] = "5999"; |
SetSendParameters(parameters); |
- EXPECT_EQ(6000, GetCodecBitrate(kSsrc1)); |
+ EXPECT_EQ(6000, GetCodecBitrate(kSsrcX)); |
// Ignore if larger than 510000. |
parameters.codecs[0].params["maxaveragebitrate"] = "510001"; |
SetSendParameters(parameters); |
- EXPECT_EQ(510000, GetCodecBitrate(kSsrc1)); |
+ EXPECT_EQ(510000, GetCodecBitrate(kSsrcX)); |
parameters.codecs[0].params["maxaveragebitrate"] = "200000"; |
SetSendParameters(parameters); |
- EXPECT_EQ(200000, GetCodecBitrate(kSsrc1)); |
+ EXPECT_EQ(200000, GetCodecBitrate(kSsrcX)); |
} |
TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsWithBitrates) { |
@@ -1524,9 +1526,9 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecEnableNackAsCaller) { |
parameters.codecs[0].AddFeedbackParam( |
cricket::FeedbackParam(cricket::kRtcpFbParamNack, |
cricket::kParamValueEmpty)); |
- EXPECT_EQ(0, GetSendStreamConfig(kSsrc1).rtp.nack.rtp_history_ms); |
+ EXPECT_EQ(0, GetSendStreamConfig(kSsrcX).rtp.nack.rtp_history_ms); |
SetSendParameters(parameters); |
- EXPECT_EQ(kRtpHistoryMs, GetSendStreamConfig(kSsrc1).rtp.nack.rtp_history_ms); |
+ EXPECT_EQ(kRtpHistoryMs, GetSendStreamConfig(kSsrcX).rtp.nack.rtp_history_ms); |
} |
// Test that we can enable NACK with opus as callee. |
@@ -1537,30 +1539,30 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecEnableNackAsCallee) { |
parameters.codecs[0].AddFeedbackParam( |
cricket::FeedbackParam(cricket::kRtcpFbParamNack, |
cricket::kParamValueEmpty)); |
- EXPECT_EQ(0, GetRecvStreamConfig(kSsrc1).rtp.nack.rtp_history_ms); |
+ EXPECT_EQ(0, GetRecvStreamConfig(kSsrcX).rtp.nack.rtp_history_ms); |
SetSendParameters(parameters); |
// NACK should be enabled even with no send stream. |
- EXPECT_EQ(kRtpHistoryMs, GetRecvStreamConfig(kSsrc1).rtp.nack.rtp_history_ms); |
+ EXPECT_EQ(kRtpHistoryMs, GetRecvStreamConfig(kSsrcX).rtp.nack.rtp_history_ms); |
EXPECT_TRUE(channel_->AddSendStream( |
- cricket::StreamParams::CreateLegacy(kSsrc1))); |
- EXPECT_EQ(kRtpHistoryMs, GetSendStreamConfig(kSsrc1).rtp.nack.rtp_history_ms); |
+ cricket::StreamParams::CreateLegacy(kSsrcX))); |
+ EXPECT_EQ(kRtpHistoryMs, GetSendStreamConfig(kSsrcX).rtp.nack.rtp_history_ms); |
} |
// Test that we can enable NACK on receive streams. |
TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecEnableNackRecvStreams) { |
EXPECT_TRUE(SetupSendStream()); |
- EXPECT_TRUE(AddRecvStream(kSsrc2)); |
+ EXPECT_TRUE(AddRecvStream(kSsrcY)); |
cricket::AudioSendParameters parameters; |
parameters.codecs.push_back(kOpusCodec); |
parameters.codecs[0].AddFeedbackParam( |
cricket::FeedbackParam(cricket::kRtcpFbParamNack, |
cricket::kParamValueEmpty)); |
- EXPECT_EQ(0, GetSendStreamConfig(kSsrc1).rtp.nack.rtp_history_ms); |
- EXPECT_EQ(0, GetRecvStreamConfig(kSsrc2).rtp.nack.rtp_history_ms); |
+ EXPECT_EQ(0, GetSendStreamConfig(kSsrcX).rtp.nack.rtp_history_ms); |
+ EXPECT_EQ(0, GetRecvStreamConfig(kSsrcY).rtp.nack.rtp_history_ms); |
SetSendParameters(parameters); |
- EXPECT_EQ(kRtpHistoryMs, GetSendStreamConfig(kSsrc1).rtp.nack.rtp_history_ms); |
- EXPECT_EQ(kRtpHistoryMs, GetRecvStreamConfig(kSsrc2).rtp.nack.rtp_history_ms); |
+ EXPECT_EQ(kRtpHistoryMs, GetSendStreamConfig(kSsrcX).rtp.nack.rtp_history_ms); |
+ EXPECT_EQ(kRtpHistoryMs, GetRecvStreamConfig(kSsrcY).rtp.nack.rtp_history_ms); |
} |
// Test that we can disable NACK. |
@@ -1572,32 +1574,32 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecDisableNack) { |
cricket::FeedbackParam(cricket::kRtcpFbParamNack, |
cricket::kParamValueEmpty)); |
SetSendParameters(parameters); |
- EXPECT_EQ(kRtpHistoryMs, GetSendStreamConfig(kSsrc1).rtp.nack.rtp_history_ms); |
+ EXPECT_EQ(kRtpHistoryMs, GetSendStreamConfig(kSsrcX).rtp.nack.rtp_history_ms); |
parameters.codecs.clear(); |
parameters.codecs.push_back(kOpusCodec); |
SetSendParameters(parameters); |
- EXPECT_EQ(0, GetSendStreamConfig(kSsrc1).rtp.nack.rtp_history_ms); |
+ EXPECT_EQ(0, GetSendStreamConfig(kSsrcX).rtp.nack.rtp_history_ms); |
} |
// Test that we can disable NACK on receive streams. |
TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecDisableNackRecvStreams) { |
EXPECT_TRUE(SetupSendStream()); |
- EXPECT_TRUE(AddRecvStream(kSsrc2)); |
+ EXPECT_TRUE(AddRecvStream(kSsrcY)); |
cricket::AudioSendParameters parameters; |
parameters.codecs.push_back(kOpusCodec); |
parameters.codecs[0].AddFeedbackParam( |
cricket::FeedbackParam(cricket::kRtcpFbParamNack, |
cricket::kParamValueEmpty)); |
SetSendParameters(parameters); |
- EXPECT_EQ(kRtpHistoryMs, GetSendStreamConfig(kSsrc1).rtp.nack.rtp_history_ms); |
- EXPECT_EQ(kRtpHistoryMs, GetRecvStreamConfig(kSsrc2).rtp.nack.rtp_history_ms); |
+ EXPECT_EQ(kRtpHistoryMs, GetSendStreamConfig(kSsrcX).rtp.nack.rtp_history_ms); |
+ EXPECT_EQ(kRtpHistoryMs, GetRecvStreamConfig(kSsrcY).rtp.nack.rtp_history_ms); |
parameters.codecs.clear(); |
parameters.codecs.push_back(kOpusCodec); |
SetSendParameters(parameters); |
- EXPECT_EQ(0, GetSendStreamConfig(kSsrc1).rtp.nack.rtp_history_ms); |
- EXPECT_EQ(0, GetRecvStreamConfig(kSsrc2).rtp.nack.rtp_history_ms); |
+ EXPECT_EQ(0, GetSendStreamConfig(kSsrcX).rtp.nack.rtp_history_ms); |
+ EXPECT_EQ(0, GetRecvStreamConfig(kSsrcY).rtp.nack.rtp_history_ms); |
} |
// Test that NACK is enabled on a new receive stream. |
@@ -1610,12 +1612,12 @@ TEST_F(WebRtcVoiceEngineTestFake, AddRecvStreamEnableNack) { |
cricket::FeedbackParam(cricket::kRtcpFbParamNack, |
cricket::kParamValueEmpty)); |
SetSendParameters(parameters); |
- EXPECT_EQ(kRtpHistoryMs, GetSendStreamConfig(kSsrc1).rtp.nack.rtp_history_ms); |
+ EXPECT_EQ(kRtpHistoryMs, GetSendStreamConfig(kSsrcX).rtp.nack.rtp_history_ms); |
- EXPECT_TRUE(AddRecvStream(kSsrc2)); |
- EXPECT_EQ(kRtpHistoryMs, GetRecvStreamConfig(kSsrc2).rtp.nack.rtp_history_ms); |
- EXPECT_TRUE(AddRecvStream(kSsrc3)); |
- EXPECT_EQ(kRtpHistoryMs, GetRecvStreamConfig(kSsrc3).rtp.nack.rtp_history_ms); |
+ EXPECT_TRUE(AddRecvStream(kSsrcY)); |
+ EXPECT_EQ(kRtpHistoryMs, GetRecvStreamConfig(kSsrcY).rtp.nack.rtp_history_ms); |
+ EXPECT_TRUE(AddRecvStream(kSsrcZ)); |
+ EXPECT_EQ(kRtpHistoryMs, GetRecvStreamConfig(kSsrcZ).rtp.nack.rtp_history_ms); |
} |
// Test that without useinbandfec, Opus FEC is off. |
@@ -1624,7 +1626,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecNoOpusFec) { |
cricket::AudioSendParameters parameters; |
parameters.codecs.push_back(kOpusCodec); |
SetSendParameters(parameters); |
- EXPECT_FALSE(GetCodecFec(kSsrc1)); |
+ EXPECT_FALSE(GetCodecFec(kSsrcX)); |
} |
// Test that with useinbandfec=0, Opus FEC is off. |
@@ -1635,7 +1637,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecOpusDisableFec) { |
parameters.codecs[0].bitrate = 0; |
parameters.codecs[0].params["useinbandfec"] = "0"; |
SetSendParameters(parameters); |
- CheckSendCodec(kSsrc1, "opus", 1, 32000); |
+ CheckSendCodec(kSsrcX, "opus", 1, 32000); |
} |
// Test that with useinbandfec=1, Opus FEC is on. |
@@ -1646,8 +1648,8 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecOpusEnableFec) { |
parameters.codecs[0].bitrate = 0; |
parameters.codecs[0].params["useinbandfec"] = "1"; |
SetSendParameters(parameters); |
- EXPECT_TRUE(GetCodecFec(kSsrc1)); |
- CheckSendCodec(kSsrc1, "opus", 1, 32000); |
+ EXPECT_TRUE(GetCodecFec(kSsrcX)); |
+ CheckSendCodec(kSsrcX, "opus", 1, 32000); |
} |
// Test that with useinbandfec=1, stereo=1, Opus FEC is on. |
@@ -1659,8 +1661,8 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecOpusEnableFecStereo) { |
parameters.codecs[0].params["stereo"] = "1"; |
parameters.codecs[0].params["useinbandfec"] = "1"; |
SetSendParameters(parameters); |
- EXPECT_TRUE(GetCodecFec(kSsrc1)); |
- CheckSendCodec(kSsrc1, "opus", 2, 64000); |
+ EXPECT_TRUE(GetCodecFec(kSsrcX)); |
+ CheckSendCodec(kSsrcX, "opus", 2, 64000); |
} |
// Test that with non-Opus, codec FEC is off. |
@@ -1669,7 +1671,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecIsacNoFec) { |
cricket::AudioSendParameters parameters; |
parameters.codecs.push_back(kIsacCodec); |
SetSendParameters(parameters); |
- EXPECT_FALSE(GetCodecFec(kSsrc1)); |
+ EXPECT_FALSE(GetCodecFec(kSsrcX)); |
} |
// Test the with non-Opus, even if useinbandfec=1, FEC is off. |
@@ -1679,7 +1681,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecIsacWithParamNoFec) { |
parameters.codecs.push_back(kIsacCodec); |
parameters.codecs[0].params["useinbandfec"] = "1"; |
SetSendParameters(parameters); |
- EXPECT_FALSE(GetCodecFec(kSsrc1)); |
+ EXPECT_FALSE(GetCodecFec(kSsrcX)); |
} |
// Test that Opus FEC status can be changed. |
@@ -1688,11 +1690,11 @@ TEST_F(WebRtcVoiceEngineTestFake, ChangeOpusFecStatus) { |
cricket::AudioSendParameters parameters; |
parameters.codecs.push_back(kOpusCodec); |
SetSendParameters(parameters); |
- EXPECT_FALSE(GetCodecFec(kSsrc1)); |
+ EXPECT_FALSE(GetCodecFec(kSsrcX)); |
parameters.codecs[0].params["useinbandfec"] = "1"; |
SetSendParameters(parameters); |
- EXPECT_TRUE(GetCodecFec(kSsrc1)); |
+ EXPECT_TRUE(GetCodecFec(kSsrcX)); |
} |
TEST_F(WebRtcVoiceEngineTestFake, TransportCcCanBeEnabledAndDisabled) { |
@@ -1705,16 +1707,16 @@ TEST_F(WebRtcVoiceEngineTestFake, TransportCcCanBeEnabledAndDisabled) { |
cricket::AudioRecvParameters recv_parameters; |
recv_parameters.codecs.push_back(kIsacCodec); |
EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters)); |
- EXPECT_TRUE(AddRecvStream(kSsrc1)); |
- ASSERT_TRUE(call_.GetAudioReceiveStream(kSsrc1) != nullptr); |
+ EXPECT_TRUE(AddRecvStream(kSsrcX)); |
+ ASSERT_TRUE(call_.GetAudioReceiveStream(kSsrcX) != nullptr); |
EXPECT_FALSE( |
- call_.GetAudioReceiveStream(kSsrc1)->GetConfig().rtp.transport_cc); |
+ call_.GetAudioReceiveStream(kSsrcX)->GetConfig().rtp.transport_cc); |
send_parameters.codecs = engine_->send_codecs(); |
SetSendParameters(send_parameters); |
- ASSERT_TRUE(call_.GetAudioReceiveStream(kSsrc1) != nullptr); |
+ ASSERT_TRUE(call_.GetAudioReceiveStream(kSsrcX) != nullptr); |
EXPECT_TRUE( |
- call_.GetAudioReceiveStream(kSsrc1)->GetConfig().rtp.transport_cc); |
+ call_.GetAudioReceiveStream(kSsrcX)->GetConfig().rtp.transport_cc); |
} |
// Test maxplaybackrate <= 8000 triggers Opus narrow band mode. |
@@ -1725,12 +1727,12 @@ TEST_F(WebRtcVoiceEngineTestFake, SetOpusMaxPlaybackRateNb) { |
parameters.codecs[0].bitrate = 0; |
parameters.codecs[0].SetParam(cricket::kCodecParamMaxPlaybackRate, 8000); |
SetSendParameters(parameters); |
- EXPECT_EQ(8000, GetOpusMaxPlaybackRate(kSsrc1)); |
- EXPECT_EQ(12000, GetCodecBitrate(kSsrc1)); |
+ EXPECT_EQ(8000, GetOpusMaxPlaybackRate(kSsrcX)); |
+ EXPECT_EQ(12000, GetCodecBitrate(kSsrcX)); |
parameters.codecs[0].SetParam(cricket::kCodecParamStereo, "1"); |
SetSendParameters(parameters); |
- EXPECT_EQ(24000, GetCodecBitrate(kSsrc1)); |
+ EXPECT_EQ(24000, GetCodecBitrate(kSsrcX)); |
} |
// Test 8000 < maxplaybackrate <= 12000 triggers Opus medium band mode. |
@@ -1741,12 +1743,12 @@ TEST_F(WebRtcVoiceEngineTestFake, SetOpusMaxPlaybackRateMb) { |
parameters.codecs[0].bitrate = 0; |
parameters.codecs[0].SetParam(cricket::kCodecParamMaxPlaybackRate, 8001); |
SetSendParameters(parameters); |
- EXPECT_EQ(8001, GetOpusMaxPlaybackRate(kSsrc1)); |
- EXPECT_EQ(20000, GetCodecBitrate(kSsrc1)); |
+ EXPECT_EQ(8001, GetOpusMaxPlaybackRate(kSsrcX)); |
+ EXPECT_EQ(20000, GetCodecBitrate(kSsrcX)); |
parameters.codecs[0].SetParam(cricket::kCodecParamStereo, "1"); |
SetSendParameters(parameters); |
- EXPECT_EQ(40000, GetCodecBitrate(kSsrc1)); |
+ EXPECT_EQ(40000, GetCodecBitrate(kSsrcX)); |
} |
// Test 12000 < maxplaybackrate <= 16000 triggers Opus wide band mode. |
@@ -1757,12 +1759,12 @@ TEST_F(WebRtcVoiceEngineTestFake, SetOpusMaxPlaybackRateWb) { |
parameters.codecs[0].bitrate = 0; |
parameters.codecs[0].SetParam(cricket::kCodecParamMaxPlaybackRate, 12001); |
SetSendParameters(parameters); |
- EXPECT_EQ(12001, GetOpusMaxPlaybackRate(kSsrc1)); |
- EXPECT_EQ(20000, GetCodecBitrate(kSsrc1)); |
+ EXPECT_EQ(12001, GetOpusMaxPlaybackRate(kSsrcX)); |
+ EXPECT_EQ(20000, GetCodecBitrate(kSsrcX)); |
parameters.codecs[0].SetParam(cricket::kCodecParamStereo, "1"); |
SetSendParameters(parameters); |
- EXPECT_EQ(40000, GetCodecBitrate(kSsrc1)); |
+ EXPECT_EQ(40000, GetCodecBitrate(kSsrcX)); |
} |
// Test 16000 < maxplaybackrate <= 24000 triggers Opus super wide band mode. |
@@ -1773,12 +1775,12 @@ TEST_F(WebRtcVoiceEngineTestFake, SetOpusMaxPlaybackRateSwb) { |
parameters.codecs[0].bitrate = 0; |
parameters.codecs[0].SetParam(cricket::kCodecParamMaxPlaybackRate, 16001); |
SetSendParameters(parameters); |
- EXPECT_EQ(16001, GetOpusMaxPlaybackRate(kSsrc1)); |
- EXPECT_EQ(32000, GetCodecBitrate(kSsrc1)); |
+ EXPECT_EQ(16001, GetOpusMaxPlaybackRate(kSsrcX)); |
+ EXPECT_EQ(32000, GetCodecBitrate(kSsrcX)); |
parameters.codecs[0].SetParam(cricket::kCodecParamStereo, "1"); |
SetSendParameters(parameters); |
- EXPECT_EQ(64000, GetCodecBitrate(kSsrc1)); |
+ EXPECT_EQ(64000, GetCodecBitrate(kSsrcX)); |
} |
// Test 24000 < maxplaybackrate triggers Opus full band mode. |
@@ -1789,12 +1791,12 @@ TEST_F(WebRtcVoiceEngineTestFake, SetOpusMaxPlaybackRateFb) { |
parameters.codecs[0].bitrate = 0; |
parameters.codecs[0].SetParam(cricket::kCodecParamMaxPlaybackRate, 24001); |
SetSendParameters(parameters); |
- EXPECT_EQ(24001, GetOpusMaxPlaybackRate(kSsrc1)); |
- EXPECT_EQ(32000, GetCodecBitrate(kSsrc1)); |
+ EXPECT_EQ(24001, GetOpusMaxPlaybackRate(kSsrcX)); |
+ EXPECT_EQ(32000, GetCodecBitrate(kSsrcX)); |
parameters.codecs[0].SetParam(cricket::kCodecParamStereo, "1"); |
SetSendParameters(parameters); |
- EXPECT_EQ(64000, GetCodecBitrate(kSsrc1)); |
+ EXPECT_EQ(64000, GetCodecBitrate(kSsrcX)); |
} |
// Test Opus that without maxplaybackrate, default playback rate is used. |
@@ -1803,7 +1805,7 @@ TEST_F(WebRtcVoiceEngineTestFake, DefaultOpusMaxPlaybackRate) { |
cricket::AudioSendParameters parameters; |
parameters.codecs.push_back(kOpusCodec); |
SetSendParameters(parameters); |
- EXPECT_EQ(48000, GetOpusMaxPlaybackRate(kSsrc1)); |
+ EXPECT_EQ(48000, GetOpusMaxPlaybackRate(kSsrcX)); |
} |
// Test the with non-Opus, maxplaybackrate has no effect. |
@@ -1813,7 +1815,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetNonOpusMaxPlaybackRate) { |
parameters.codecs.push_back(kIsacCodec); |
parameters.codecs[0].SetParam(cricket::kCodecParamMaxPlaybackRate, 32000); |
SetSendParameters(parameters); |
- EXPECT_EQ(0, GetOpusMaxPlaybackRate(kSsrc1)); |
+ EXPECT_EQ(0, GetOpusMaxPlaybackRate(kSsrcX)); |
} |
// Test maxplaybackrate can be set on two streams. |
@@ -1822,14 +1824,14 @@ TEST_F(WebRtcVoiceEngineTestFake, SetOpusMaxPlaybackRateOnTwoStreams) { |
cricket::AudioSendParameters parameters; |
parameters.codecs.push_back(kOpusCodec); |
SetSendParameters(parameters); |
- EXPECT_EQ(48000, GetOpusMaxPlaybackRate(kSsrc1)); |
+ EXPECT_EQ(48000, GetOpusMaxPlaybackRate(kSsrcX)); |
parameters.codecs[0].SetParam(cricket::kCodecParamMaxPlaybackRate, 8000); |
SetSendParameters(parameters); |
- EXPECT_EQ(8000, GetOpusMaxPlaybackRate(kSsrc1)); |
+ EXPECT_EQ(8000, GetOpusMaxPlaybackRate(kSsrcX)); |
- channel_->AddSendStream(cricket::StreamParams::CreateLegacy(kSsrc2)); |
- EXPECT_EQ(8000, GetOpusMaxPlaybackRate(kSsrc2)); |
+ channel_->AddSendStream(cricket::StreamParams::CreateLegacy(kSsrcY)); |
+ EXPECT_EQ(8000, GetOpusMaxPlaybackRate(kSsrcY)); |
} |
// Test that with usedtx=0, Opus DTX is off. |
@@ -1839,7 +1841,7 @@ TEST_F(WebRtcVoiceEngineTestFake, DisableOpusDtxOnOpus) { |
parameters.codecs.push_back(kOpusCodec); |
parameters.codecs[0].params["usedtx"] = "0"; |
SetSendParameters(parameters); |
- EXPECT_FALSE(GetOpusDtx(kSsrc1)); |
+ EXPECT_FALSE(GetOpusDtx(kSsrcX)); |
} |
// Test that with usedtx=1, Opus DTX is on. |
@@ -1849,7 +1851,7 @@ TEST_F(WebRtcVoiceEngineTestFake, EnableOpusDtxOnOpus) { |
parameters.codecs.push_back(kOpusCodec); |
parameters.codecs[0].params["usedtx"] = "1"; |
SetSendParameters(parameters); |
- EXPECT_TRUE(GetOpusDtx(kSsrc1)); |
+ EXPECT_TRUE(GetOpusDtx(kSsrcX)); |
} |
// Test that usedtx=1 works with stereo Opus. |
@@ -1860,7 +1862,7 @@ TEST_F(WebRtcVoiceEngineTestFake, EnableOpusDtxOnOpusStereo) { |
parameters.codecs[0].params["usedtx"] = "1"; |
parameters.codecs[0].params["stereo"] = "1"; |
SetSendParameters(parameters); |
- EXPECT_TRUE(GetOpusDtx(kSsrc1)); |
+ EXPECT_TRUE(GetOpusDtx(kSsrcX)); |
} |
// Test that usedtx=1 does not work with non Opus. |
@@ -1870,7 +1872,7 @@ TEST_F(WebRtcVoiceEngineTestFake, CannotEnableOpusDtxOnNonOpus) { |
parameters.codecs.push_back(kIsacCodec); |
parameters.codecs[0].params["usedtx"] = "1"; |
SetSendParameters(parameters); |
- EXPECT_FALSE(GetOpusDtx(kSsrc1)); |
+ EXPECT_FALSE(GetOpusDtx(kSsrcX)); |
} |
// Test that we can switch back and forth between Opus and ISAC with CN. |
@@ -1881,7 +1883,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsIsacOpusSwitching) { |
opus_parameters.codecs.push_back(kOpusCodec); |
SetSendParameters(opus_parameters); |
{ |
- const auto& gcodec = GetSendStreamConfig(kSsrc1).send_codec_spec.codec_inst; |
+ const auto& gcodec = GetSendStreamConfig(kSsrcX).send_codec_spec.codec_inst; |
EXPECT_EQ(111, gcodec.pltype); |
EXPECT_STREQ("opus", gcodec.plname); |
} |
@@ -1892,14 +1894,14 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsIsacOpusSwitching) { |
isac_parameters.codecs.push_back(kOpusCodec); |
SetSendParameters(isac_parameters); |
{ |
- const auto& gcodec = GetSendStreamConfig(kSsrc1).send_codec_spec.codec_inst; |
+ const auto& gcodec = GetSendStreamConfig(kSsrcX).send_codec_spec.codec_inst; |
EXPECT_EQ(103, gcodec.pltype); |
EXPECT_STREQ("ISAC", gcodec.plname); |
} |
SetSendParameters(opus_parameters); |
{ |
- const auto& gcodec = GetSendStreamConfig(kSsrc1).send_codec_spec.codec_inst; |
+ const auto& gcodec = GetSendStreamConfig(kSsrcX).send_codec_spec.codec_inst; |
EXPECT_EQ(111, gcodec.pltype); |
EXPECT_STREQ("opus", gcodec.plname); |
} |
@@ -1912,7 +1914,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsBitrate) { |
parameters.codecs.push_back(kIsacCodec); // bitrate == 32000 |
SetSendParameters(parameters); |
{ |
- const auto& gcodec = GetSendStreamConfig(kSsrc1).send_codec_spec.codec_inst; |
+ const auto& gcodec = GetSendStreamConfig(kSsrcX).send_codec_spec.codec_inst; |
EXPECT_EQ(103, gcodec.pltype); |
EXPECT_STREQ("ISAC", gcodec.plname); |
EXPECT_EQ(32000, gcodec.rate); |
@@ -1921,7 +1923,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsBitrate) { |
parameters.codecs[0].bitrate = 0; // bitrate == default |
SetSendParameters(parameters); |
{ |
- const auto& gcodec = GetSendStreamConfig(kSsrc1).send_codec_spec.codec_inst; |
+ const auto& gcodec = GetSendStreamConfig(kSsrcX).send_codec_spec.codec_inst; |
EXPECT_EQ(103, gcodec.pltype); |
EXPECT_STREQ("ISAC", gcodec.plname); |
EXPECT_EQ(32000, gcodec.rate); |
@@ -1929,7 +1931,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsBitrate) { |
parameters.codecs[0].bitrate = 28000; // bitrate == 28000 |
SetSendParameters(parameters); |
{ |
- const auto& gcodec = GetSendStreamConfig(kSsrc1).send_codec_spec.codec_inst; |
+ const auto& gcodec = GetSendStreamConfig(kSsrcX).send_codec_spec.codec_inst; |
EXPECT_EQ(103, gcodec.pltype); |
EXPECT_STREQ("ISAC", gcodec.plname); |
EXPECT_EQ(28000, gcodec.rate); |
@@ -1938,7 +1940,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsBitrate) { |
parameters.codecs[0] = kPcmuCodec; // bitrate == 64000 |
SetSendParameters(parameters); |
{ |
- const auto& gcodec = GetSendStreamConfig(kSsrc1).send_codec_spec.codec_inst; |
+ const auto& gcodec = GetSendStreamConfig(kSsrcX).send_codec_spec.codec_inst; |
EXPECT_EQ(0, gcodec.pltype); |
EXPECT_STREQ("PCMU", gcodec.plname); |
EXPECT_EQ(64000, gcodec.rate); |
@@ -1947,7 +1949,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsBitrate) { |
parameters.codecs[0].bitrate = 0; // bitrate == default |
SetSendParameters(parameters); |
{ |
- const auto& gcodec = GetSendStreamConfig(kSsrc1).send_codec_spec.codec_inst; |
+ const auto& gcodec = GetSendStreamConfig(kSsrcX).send_codec_spec.codec_inst; |
EXPECT_EQ(0, gcodec.pltype); |
EXPECT_STREQ("PCMU", gcodec.plname); |
EXPECT_EQ(64000, gcodec.rate); |
@@ -1957,7 +1959,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsBitrate) { |
parameters.codecs[0].bitrate = 0; // bitrate == default |
SetSendParameters(parameters); |
{ |
- const auto& gcodec = GetSendStreamConfig(kSsrc1).send_codec_spec.codec_inst; |
+ const auto& gcodec = GetSendStreamConfig(kSsrcX).send_codec_spec.codec_inst; |
EXPECT_EQ(111, gcodec.pltype); |
EXPECT_STREQ("opus", gcodec.plname); |
EXPECT_EQ(32000, gcodec.rate); |
@@ -1971,27 +1973,27 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsPTimeAsPacketSize) { |
parameters.codecs.push_back(kOpusCodec); |
parameters.codecs[0].SetParam(cricket::kCodecParamPTime, 40); // Within range. |
SetSendParameters(parameters); |
- EXPECT_EQ(1920, GetCodecPacSize(kSsrc1)); // Opus gets 40ms. |
+ EXPECT_EQ(1920, GetCodecPacSize(kSsrcX)); // Opus gets 40ms. |
parameters.codecs[0].SetParam(cricket::kCodecParamPTime, 5); // Below range. |
SetSendParameters(parameters); |
- EXPECT_EQ(480, GetCodecPacSize(kSsrc1)); // Opus gets 10ms. |
+ EXPECT_EQ(480, GetCodecPacSize(kSsrcX)); // Opus gets 10ms. |
parameters.codecs[0].SetParam(cricket::kCodecParamPTime, 80); // Beyond range. |
SetSendParameters(parameters); |
- EXPECT_EQ(2880, GetCodecPacSize(kSsrc1)); // Opus gets 60ms. |
+ EXPECT_EQ(2880, GetCodecPacSize(kSsrcX)); // Opus gets 60ms. |
parameters.codecs[0] = kIsacCodec; // Also try Isac, with unsupported size. |
parameters.codecs[0].SetParam(cricket::kCodecParamPTime, 40); // Within range. |
SetSendParameters(parameters); |
EXPECT_EQ(480, GetCodecPacSize( |
- kSsrc1)); // Isac gets 30ms as the next smallest value. |
+ kSsrcX)); // Isac gets 30ms as the next smallest value. |
parameters.codecs[0] = kG722CodecSdp; // Try G722 @8kHz as negotiated in SDP. |
parameters.codecs[0].SetParam(cricket::kCodecParamPTime, 40); |
SetSendParameters(parameters); |
EXPECT_EQ(640, GetCodecPacSize( |
- kSsrc1)); // G722 gets 40ms @16kHz as defined in VoE. |
+ kSsrcX)); // G722 gets 40ms @16kHz as defined in VoE. |
} |
// Test that we fail if no codecs are specified. |
@@ -2012,7 +2014,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsDTMFOnTop) { |
parameters.codecs[0].id = 98; // DTMF |
parameters.codecs[1].id = 96; |
SetSendParameters(parameters); |
- const auto& gcodec = GetSendStreamConfig(kSsrc1).send_codec_spec.codec_inst; |
+ const auto& gcodec = GetSendStreamConfig(kSsrcX).send_codec_spec.codec_inst; |
EXPECT_EQ(96, gcodec.pltype); |
EXPECT_STREQ("ISAC", gcodec.plname); |
EXPECT_TRUE(channel_->CanInsertDtmf()); |
@@ -2050,7 +2052,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsCNOnTop) { |
parameters.codecs[0].id = 98; // wideband CN |
parameters.codecs[1].id = 96; |
SetSendParameters(parameters); |
- const auto& send_codec_spec = GetSendStreamConfig(kSsrc1).send_codec_spec; |
+ const auto& send_codec_spec = GetSendStreamConfig(kSsrcX).send_codec_spec; |
EXPECT_EQ(96, send_codec_spec.codec_inst.pltype); |
EXPECT_STREQ("ISAC", send_codec_spec.codec_inst.plname); |
EXPECT_EQ(98, send_codec_spec.cng_payload_type); |
@@ -2071,7 +2073,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsCNandDTMFAsCaller) { |
parameters.codecs[2].id = 97; // wideband CN |
parameters.codecs[4].id = 98; // DTMF |
SetSendParameters(parameters); |
- const auto& send_codec_spec = GetSendStreamConfig(kSsrc1).send_codec_spec; |
+ const auto& send_codec_spec = GetSendStreamConfig(kSsrcX).send_codec_spec; |
EXPECT_EQ(96, send_codec_spec.codec_inst.pltype); |
EXPECT_STREQ("ISAC", send_codec_spec.codec_inst.plname); |
EXPECT_EQ(1, send_codec_spec.codec_inst.channels); |
@@ -2096,9 +2098,9 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsCNandDTMFAsCallee) { |
parameters.codecs[4].id = 98; // DTMF |
SetSendParameters(parameters); |
EXPECT_TRUE(channel_->AddSendStream( |
- cricket::StreamParams::CreateLegacy(kSsrc1))); |
+ cricket::StreamParams::CreateLegacy(kSsrcX))); |
- const auto& send_codec_spec = GetSendStreamConfig(kSsrc1).send_codec_spec; |
+ const auto& send_codec_spec = GetSendStreamConfig(kSsrcX).send_codec_spec; |
EXPECT_EQ(96, send_codec_spec.codec_inst.pltype); |
EXPECT_STREQ("ISAC", send_codec_spec.codec_inst.plname); |
EXPECT_EQ(1, send_codec_spec.codec_inst.channels); |
@@ -2119,7 +2121,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsCNNoMatch) { |
parameters.codecs[1].id = 97; |
SetSendParameters(parameters); |
{ |
- const auto& send_codec_spec = GetSendStreamConfig(kSsrc1).send_codec_spec; |
+ const auto& send_codec_spec = GetSendStreamConfig(kSsrcX).send_codec_spec; |
EXPECT_STREQ("ISAC", send_codec_spec.codec_inst.plname); |
EXPECT_EQ(1, send_codec_spec.codec_inst.channels); |
EXPECT_EQ(send_codec_spec.codec_inst.plfreq, send_codec_spec.cng_plfreq); |
@@ -2130,7 +2132,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsCNNoMatch) { |
parameters.codecs[0] = kPcmuCodec; |
SetSendParameters(parameters); |
{ |
- const auto& send_codec_spec = GetSendStreamConfig(kSsrc1).send_codec_spec; |
+ const auto& send_codec_spec = GetSendStreamConfig(kSsrcX).send_codec_spec; |
EXPECT_STREQ("PCMU", send_codec_spec.codec_inst.plname); |
EXPECT_NE(send_codec_spec.codec_inst.plfreq, send_codec_spec.cng_plfreq); |
} |
@@ -2138,7 +2140,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsCNNoMatch) { |
parameters.codecs[1] = kCn8000Codec; |
SetSendParameters(parameters); |
{ |
- const auto& send_codec_spec = GetSendStreamConfig(kSsrc1).send_codec_spec; |
+ const auto& send_codec_spec = GetSendStreamConfig(kSsrcX).send_codec_spec; |
EXPECT_STREQ("PCMU", send_codec_spec.codec_inst.plname); |
EXPECT_EQ(1, send_codec_spec.codec_inst.channels); |
EXPECT_EQ(send_codec_spec.codec_inst.plfreq, send_codec_spec.cng_plfreq); |
@@ -2149,7 +2151,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsCNNoMatch) { |
parameters.codecs[0] = kIsacCodec; |
SetSendParameters(parameters); |
{ |
- const auto& send_codec_spec = GetSendStreamConfig(kSsrc1).send_codec_spec; |
+ const auto& send_codec_spec = GetSendStreamConfig(kSsrcX).send_codec_spec; |
EXPECT_STREQ("ISAC", send_codec_spec.codec_inst.plname); |
EXPECT_NE(send_codec_spec.codec_inst.plfreq, send_codec_spec.cng_plfreq); |
} |
@@ -2169,7 +2171,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsCaseInsensitive) { |
parameters.codecs[2].id = 97; // wideband CN |
parameters.codecs[4].id = 98; // DTMF |
SetSendParameters(parameters); |
- const auto& send_codec_spec = GetSendStreamConfig(kSsrc1).send_codec_spec; |
+ const auto& send_codec_spec = GetSendStreamConfig(kSsrcX).send_codec_spec; |
EXPECT_EQ(96, send_codec_spec.codec_inst.pltype); |
EXPECT_STREQ("ISAC", send_codec_spec.codec_inst.plname); |
EXPECT_EQ(1, send_codec_spec.codec_inst.channels); |
@@ -2222,9 +2224,9 @@ TEST_F(WebRtcVoiceEngineTestFake, Send) { |
EXPECT_TRUE(SetupSendStream()); |
SetSendParameters(send_parameters_); |
SetSend(true); |
- EXPECT_TRUE(GetSendStream(kSsrc1).IsSending()); |
+ EXPECT_TRUE(GetSendStream(kSsrcX).IsSending()); |
SetSend(false); |
- EXPECT_FALSE(GetSendStream(kSsrc1).IsSending()); |
+ EXPECT_FALSE(GetSendStream(kSsrcX).IsSending()); |
} |
// Test that a channel will send if and only if it has a source and is enabled |
@@ -2232,49 +2234,49 @@ TEST_F(WebRtcVoiceEngineTestFake, Send) { |
TEST_F(WebRtcVoiceEngineTestFake, SendStateWithAndWithoutSource) { |
EXPECT_TRUE(SetupSendStream()); |
SetSendParameters(send_parameters_); |
- SetAudioSend(kSsrc1, true, nullptr); |
+ SetAudioSend(kSsrcX, true, nullptr); |
SetSend(true); |
- EXPECT_FALSE(GetSendStream(kSsrc1).IsSending()); |
- SetAudioSend(kSsrc1, true, &fake_source_); |
- EXPECT_TRUE(GetSendStream(kSsrc1).IsSending()); |
- SetAudioSend(kSsrc1, true, nullptr); |
- EXPECT_FALSE(GetSendStream(kSsrc1).IsSending()); |
+ EXPECT_FALSE(GetSendStream(kSsrcX).IsSending()); |
+ SetAudioSend(kSsrcX, true, &fake_source_); |
+ EXPECT_TRUE(GetSendStream(kSsrcX).IsSending()); |
+ SetAudioSend(kSsrcX, true, nullptr); |
+ EXPECT_FALSE(GetSendStream(kSsrcX).IsSending()); |
} |
// Test that a channel is muted/unmuted. |
TEST_F(WebRtcVoiceEngineTestFake, SendStateMuteUnmute) { |
EXPECT_TRUE(SetupSendStream()); |
SetSendParameters(send_parameters_); |
- EXPECT_FALSE(GetSendStream(kSsrc1).muted()); |
- SetAudioSend(kSsrc1, true, nullptr); |
- EXPECT_FALSE(GetSendStream(kSsrc1).muted()); |
- SetAudioSend(kSsrc1, false, nullptr); |
- EXPECT_TRUE(GetSendStream(kSsrc1).muted()); |
+ EXPECT_FALSE(GetSendStream(kSsrcX).muted()); |
+ SetAudioSend(kSsrcX, true, nullptr); |
+ EXPECT_FALSE(GetSendStream(kSsrcX).muted()); |
+ SetAudioSend(kSsrcX, false, nullptr); |
+ EXPECT_TRUE(GetSendStream(kSsrcX).muted()); |
} |
// Test that SetSendParameters() does not alter a stream's send state. |
TEST_F(WebRtcVoiceEngineTestFake, SendStateWhenStreamsAreRecreated) { |
EXPECT_TRUE(SetupSendStream()); |
- EXPECT_FALSE(GetSendStream(kSsrc1).IsSending()); |
+ EXPECT_FALSE(GetSendStream(kSsrcX).IsSending()); |
// Turn on sending. |
SetSend(true); |
- EXPECT_TRUE(GetSendStream(kSsrc1).IsSending()); |
+ EXPECT_TRUE(GetSendStream(kSsrcX).IsSending()); |
// Changing RTP header extensions will recreate the AudioSendStream. |
send_parameters_.extensions.push_back( |
webrtc::RtpExtension(webrtc::RtpExtension::kAudioLevelUri, 12)); |
SetSendParameters(send_parameters_); |
- EXPECT_TRUE(GetSendStream(kSsrc1).IsSending()); |
+ EXPECT_TRUE(GetSendStream(kSsrcX).IsSending()); |
// Turn off sending. |
SetSend(false); |
- EXPECT_FALSE(GetSendStream(kSsrc1).IsSending()); |
+ EXPECT_FALSE(GetSendStream(kSsrcX).IsSending()); |
// Changing RTP header extensions will recreate the AudioSendStream. |
send_parameters_.extensions.clear(); |
SetSendParameters(send_parameters_); |
- EXPECT_FALSE(GetSendStream(kSsrc1).IsSending()); |
+ EXPECT_FALSE(GetSendStream(kSsrcX).IsSending()); |
} |
// Test that we can create a channel and start playing out on it. |
@@ -2282,9 +2284,9 @@ TEST_F(WebRtcVoiceEngineTestFake, Playout) { |
EXPECT_TRUE(SetupRecvStream()); |
EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_)); |
channel_->SetPlayout(true); |
- EXPECT_TRUE(GetRecvStream(kSsrc1).started()); |
+ EXPECT_TRUE(GetRecvStream(kSsrcX).started()); |
channel_->SetPlayout(false); |
- EXPECT_FALSE(GetRecvStream(kSsrc1).started()); |
+ EXPECT_FALSE(GetRecvStream(kSsrcX).started()); |
} |
// Test that we can add and remove send streams. |
@@ -2394,7 +2396,7 @@ TEST_F(WebRtcVoiceEngineTestFake, GetStatsWithMultipleSendStreams) { |
// Create a receive stream to check that none of the send streams end up in |
// the receive stream stats. |
- EXPECT_TRUE(AddRecvStream(kSsrc2)); |
+ EXPECT_TRUE(AddRecvStream(kSsrcY)); |
// We need send codec to be set to get all stats. |
SetSendParameters(send_parameters_); |
@@ -2418,10 +2420,10 @@ TEST_F(WebRtcVoiceEngineTestFake, GetStatsWithMultipleSendStreams) { |
EXPECT_EQ(info.receivers[0].ssrc(), 0); |
} |
- // Remove the kSsrc2 stream. No receiver stats. |
+ // Remove the kSsrcY stream. No receiver stats. |
{ |
cricket::VoiceMediaInfo info; |
- EXPECT_TRUE(channel_->RemoveRecvStream(kSsrc2)); |
+ EXPECT_TRUE(channel_->RemoveRecvStream(kSsrcY)); |
EXPECT_EQ(true, channel_->GetStats(&info)); |
EXPECT_EQ(static_cast<size_t>(arraysize(kSsrcs4)), info.senders.size()); |
EXPECT_EQ(0u, info.receivers.size()); |
@@ -2451,35 +2453,35 @@ TEST_F(WebRtcVoiceEngineTestFake, PlayoutWithMultipleStreams) { |
channel_->SetPlayout(true); |
// Adding another stream should enable playout on the new stream only. |
- EXPECT_TRUE(AddRecvStream(kSsrc2)); |
+ EXPECT_TRUE(AddRecvStream(kSsrcY)); |
SetSend(true); |
- EXPECT_TRUE(GetSendStream(kSsrc1).IsSending()); |
+ EXPECT_TRUE(GetSendStream(kSsrcX).IsSending()); |
// Make sure only the new stream is played out. |
- EXPECT_TRUE(GetRecvStream(kSsrc2).started()); |
+ EXPECT_TRUE(GetRecvStream(kSsrcY).started()); |
// Adding yet another stream should have stream 2 and 3 enabled for playout. |
- EXPECT_TRUE(AddRecvStream(kSsrc3)); |
- EXPECT_TRUE(GetRecvStream(kSsrc2).started()); |
- EXPECT_TRUE(GetRecvStream(kSsrc3).started()); |
+ EXPECT_TRUE(AddRecvStream(kSsrcZ)); |
+ EXPECT_TRUE(GetRecvStream(kSsrcY).started()); |
+ EXPECT_TRUE(GetRecvStream(kSsrcZ).started()); |
// Stop sending. |
SetSend(false); |
- EXPECT_FALSE(GetSendStream(kSsrc1).IsSending()); |
+ EXPECT_FALSE(GetSendStream(kSsrcX).IsSending()); |
// Stop playout. |
channel_->SetPlayout(false); |
- EXPECT_FALSE(GetRecvStream(kSsrc2).started()); |
- EXPECT_FALSE(GetRecvStream(kSsrc3).started()); |
+ EXPECT_FALSE(GetRecvStream(kSsrcY).started()); |
+ EXPECT_FALSE(GetRecvStream(kSsrcZ).started()); |
// Restart playout and make sure recv streams are played out. |
channel_->SetPlayout(true); |
- EXPECT_TRUE(GetRecvStream(kSsrc2).started()); |
- EXPECT_TRUE(GetRecvStream(kSsrc3).started()); |
+ EXPECT_TRUE(GetRecvStream(kSsrcY).started()); |
+ EXPECT_TRUE(GetRecvStream(kSsrcZ).started()); |
// Now remove the recv streams. |
- EXPECT_TRUE(channel_->RemoveRecvStream(3)); |
- EXPECT_TRUE(channel_->RemoveRecvStream(2)); |
+ EXPECT_TRUE(channel_->RemoveRecvStream(kSsrcZ)); |
+ EXPECT_TRUE(channel_->RemoveRecvStream(kSsrcY)); |
} |
// Test that we can create a channel configured for Codian bridges, |
@@ -2491,9 +2493,9 @@ TEST_F(WebRtcVoiceEngineTestFake, CodianSend) { |
set_target_level_dbfs(11)).Times(2).WillRepeatedly(Return(0)); |
SetSendParameters(send_parameters_); |
SetSend(true); |
- EXPECT_TRUE(GetSendStream(kSsrc1).IsSending()); |
+ EXPECT_TRUE(GetSendStream(kSsrcX).IsSending()); |
SetSend(false); |
- EXPECT_FALSE(GetSendStream(kSsrc1).IsSending()); |
+ EXPECT_FALSE(GetSendStream(kSsrcX).IsSending()); |
} |
TEST_F(WebRtcVoiceEngineTestFake, TxAgcConfigViaOptions) { |
@@ -2536,7 +2538,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetAudioNetworkAdaptorViaOptions) { |
rtc::Optional<std::string>("1234"); |
SetSendParameters(send_parameters_); |
EXPECT_EQ(send_parameters_.options.audio_network_adaptor_config, |
- GetAudioNetworkAdaptorConfig(kSsrc1)); |
+ GetAudioNetworkAdaptorConfig(kSsrcX)); |
} |
TEST_F(WebRtcVoiceEngineTestFake, AudioSendResetAudioNetworkAdaptor) { |
@@ -2546,14 +2548,14 @@ TEST_F(WebRtcVoiceEngineTestFake, AudioSendResetAudioNetworkAdaptor) { |
rtc::Optional<std::string>("1234"); |
SetSendParameters(send_parameters_); |
EXPECT_EQ(send_parameters_.options.audio_network_adaptor_config, |
- GetAudioNetworkAdaptorConfig(kSsrc1)); |
+ GetAudioNetworkAdaptorConfig(kSsrcX)); |
const int initial_num = call_.GetNumCreatedSendStreams(); |
cricket::AudioOptions options; |
options.audio_network_adaptor = rtc::Optional<bool>(false); |
- SetAudioSend(kSsrc1, true, nullptr, &options); |
+ SetAudioSend(kSsrcX, true, nullptr, &options); |
// AudioSendStream expected to be recreated. |
EXPECT_EQ(initial_num + 1, call_.GetNumCreatedSendStreams()); |
- EXPECT_EQ(rtc::Optional<std::string>(), GetAudioNetworkAdaptorConfig(kSsrc1)); |
+ EXPECT_EQ(rtc::Optional<std::string>(), GetAudioNetworkAdaptorConfig(kSsrcX)); |
} |
TEST_F(WebRtcVoiceEngineTestFake, AudioNetworkAdaptorNotGetOverridden) { |
@@ -2563,17 +2565,17 @@ TEST_F(WebRtcVoiceEngineTestFake, AudioNetworkAdaptorNotGetOverridden) { |
rtc::Optional<std::string>("1234"); |
SetSendParameters(send_parameters_); |
EXPECT_EQ(send_parameters_.options.audio_network_adaptor_config, |
- GetAudioNetworkAdaptorConfig(kSsrc1)); |
+ GetAudioNetworkAdaptorConfig(kSsrcX)); |
const int initial_num = call_.GetNumCreatedSendStreams(); |
cricket::AudioOptions options; |
options.audio_network_adaptor = rtc::Optional<bool>(); |
// Unvalued |options.audio_network_adaptor|.should not reset audio network |
// adaptor. |
- SetAudioSend(kSsrc1, true, nullptr, &options); |
+ SetAudioSend(kSsrcX, true, nullptr, &options); |
// AudioSendStream not expected to be recreated. |
EXPECT_EQ(initial_num, call_.GetNumCreatedSendStreams()); |
EXPECT_EQ(send_parameters_.options.audio_network_adaptor_config, |
- GetAudioNetworkAdaptorConfig(kSsrc1)); |
+ GetAudioNetworkAdaptorConfig(kSsrcX)); |
} |
class WebRtcVoiceEngineWithSendSideBweWithOverheadTest |
@@ -2602,10 +2604,10 @@ TEST_F(WebRtcVoiceEngineWithSendSideBweWithOverheadTest, MinAndMaxBitrate) { |
constexpr int kOpusMinBitrateBps = 6000; |
EXPECT_EQ(kOpusMinBitrateBps + kMinOverheadBps, |
- GetSendStreamConfig(kSsrc1).min_bitrate_bps); |
+ GetSendStreamConfig(kSsrcX).min_bitrate_bps); |
constexpr int kOpusBitrateFbBps = 32000; |
EXPECT_EQ(kOpusBitrateFbBps + kMaxOverheadBps, |
- GetSendStreamConfig(kSsrc1).max_bitrate_bps); |
+ GetSendStreamConfig(kSsrcX).max_bitrate_bps); |
parameters.options.audio_network_adaptor = rtc::Optional<bool>(true); |
parameters.options.audio_network_adaptor_config = |
@@ -2617,25 +2619,25 @@ TEST_F(WebRtcVoiceEngineWithSendSideBweWithOverheadTest, MinAndMaxBitrate) { |
constexpr int kMaxOverheadWithAnaBps = kOverheadPerPacket * 8 * 1000 / 20; |
EXPECT_EQ(kOpusMinBitrateBps + kMinOverheadWithAnaBps, |
- GetSendStreamConfig(kSsrc1).min_bitrate_bps); |
+ GetSendStreamConfig(kSsrcX).min_bitrate_bps); |
EXPECT_EQ(kOpusBitrateFbBps + kMaxOverheadWithAnaBps, |
- GetSendStreamConfig(kSsrc1).max_bitrate_bps); |
+ GetSendStreamConfig(kSsrcX).max_bitrate_bps); |
} |
// Test that we can set the outgoing SSRC properly. |
// SSRC is set in SetupSendStream() by calling AddSendStream. |
TEST_F(WebRtcVoiceEngineTestFake, SetSendSsrc) { |
EXPECT_TRUE(SetupSendStream()); |
- EXPECT_TRUE(call_.GetAudioSendStream(kSsrc1)); |
+ EXPECT_TRUE(call_.GetAudioSendStream(kSsrcX)); |
} |
TEST_F(WebRtcVoiceEngineTestFake, GetStats) { |
// Setup. We need send codec to be set to get all stats. |
EXPECT_TRUE(SetupSendStream()); |
- // SetupSendStream adds a send stream with kSsrc1, so the receive |
+ // SetupSendStream adds a send stream with kSsrcX, so the receive |
// stream has to use a different SSRC. |
- EXPECT_TRUE(AddRecvStream(kSsrc2)); |
+ EXPECT_TRUE(AddRecvStream(kSsrcY)); |
SetSendParameters(send_parameters_); |
EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_)); |
SetAudioSendStreamStats(); |
@@ -2662,10 +2664,10 @@ TEST_F(WebRtcVoiceEngineTestFake, GetStats) { |
VerifyVoiceSendRecvCodecs(info); |
} |
- // Remove the kSsrc2 stream. No receiver stats. |
+ // Remove the kSsrcY stream. No receiver stats. |
{ |
cricket::VoiceMediaInfo info; |
- EXPECT_TRUE(channel_->RemoveRecvStream(kSsrc2)); |
+ EXPECT_TRUE(channel_->RemoveRecvStream(kSsrcY)); |
EXPECT_EQ(true, channel_->GetStats(&info)); |
EXPECT_EQ(1u, info.senders.size()); |
EXPECT_EQ(0u, info.receivers.size()); |
@@ -2689,20 +2691,20 @@ TEST_F(WebRtcVoiceEngineTestFake, GetStats) { |
// SSRC is set in SetupSendStream() by calling AddSendStream. |
TEST_F(WebRtcVoiceEngineTestFake, SetSendSsrcWithMultipleStreams) { |
EXPECT_TRUE(SetupSendStream()); |
- EXPECT_TRUE(call_.GetAudioSendStream(kSsrc1)); |
- EXPECT_TRUE(AddRecvStream(kSsrc2)); |
- EXPECT_EQ(kSsrc1, GetRecvStreamConfig(kSsrc2).rtp.local_ssrc); |
+ EXPECT_TRUE(call_.GetAudioSendStream(kSsrcX)); |
+ EXPECT_TRUE(AddRecvStream(kSsrcY)); |
+ EXPECT_EQ(kSsrcX, GetRecvStreamConfig(kSsrcY).rtp.local_ssrc); |
} |
// Test that the local SSRC is the same on sending and receiving channels if the |
// receive channel is created before the send channel. |
TEST_F(WebRtcVoiceEngineTestFake, SetSendSsrcAfterCreatingReceiveChannel) { |
EXPECT_TRUE(SetupChannel()); |
- EXPECT_TRUE(AddRecvStream(kSsrc2)); |
+ EXPECT_TRUE(AddRecvStream(kSsrcY)); |
EXPECT_TRUE(channel_->AddSendStream( |
- cricket::StreamParams::CreateLegacy(kSsrc1))); |
- EXPECT_TRUE(call_.GetAudioSendStream(kSsrc1)); |
- EXPECT_EQ(kSsrc1, GetRecvStreamConfig(kSsrc2).rtp.local_ssrc); |
+ cricket::StreamParams::CreateLegacy(kSsrcX))); |
+ EXPECT_TRUE(call_.GetAudioSendStream(kSsrcX)); |
+ EXPECT_EQ(kSsrcX, GetRecvStreamConfig(kSsrcY).rtp.local_ssrc); |
} |
// Test that we can properly receive packets. |
@@ -2767,50 +2769,69 @@ TEST_F(WebRtcVoiceEngineTestFake, RecvWithMultipleStreams) { |
EXPECT_TRUE(channel_->RemoveRecvStream(ssrc1)); |
} |
-// Test that receiving on an unsignalled stream works (default channel will be |
-// created). |
-TEST_F(WebRtcVoiceEngineTestFake, RecvUnsignalled) { |
+// Test that receiving on an unsignaled stream works (a stream is created). |
+TEST_F(WebRtcVoiceEngineTestFake, RecvUnsignaled) { |
EXPECT_TRUE(SetupChannel()); |
EXPECT_EQ(0, call_.GetAudioReceiveStreams().size()); |
DeliverPacket(kPcmuFrame, sizeof(kPcmuFrame)); |
EXPECT_EQ(1, call_.GetAudioReceiveStreams().size()); |
- EXPECT_TRUE(GetRecvStream(1).VerifyLastPacket(kPcmuFrame, |
- sizeof(kPcmuFrame))); |
+ EXPECT_TRUE(GetRecvStream(kSsrc1).VerifyLastPacket(kPcmuFrame, |
+ sizeof(kPcmuFrame))); |
} |
-// Test that receiving on an unsignalled stream works (default channel will be |
-// created), and that packets will be forwarded to the default channel |
-// regardless of their SSRCs. |
-TEST_F(WebRtcVoiceEngineTestFake, RecvUnsignalledWithSsrcSwitch) { |
+// Test that receiving N unsignaled stream works (streams will be created), and |
+// that packets are forwarded to them all. |
+TEST_F(WebRtcVoiceEngineTestFake, RecvMultipleUnsignaled) { |
EXPECT_TRUE(SetupChannel()); |
unsigned char packet[sizeof(kPcmuFrame)]; |
memcpy(packet, kPcmuFrame, sizeof(kPcmuFrame)); |
- // Note that ssrc = 0 is not supported. |
- uint32_t ssrc = 1; |
- for (; ssrc < 10; ++ssrc) { |
+ constexpr uint32_t kMaxUnsignaledCount = 50; |
+ |
+ // Note that SSRC = 0 is not supported. |
+ for (uint32_t ssrc = 1; ssrc < (1 + kMaxUnsignaledCount); ++ssrc) { |
rtc::SetBE32(&packet[8], ssrc); |
DeliverPacket(packet, sizeof(packet)); |
- // Verify we only have one default stream. |
- EXPECT_EQ(1, call_.GetAudioReceiveStreams().size()); |
+ // Verify we have one new stream for each loop iteration. |
+ EXPECT_EQ(ssrc, call_.GetAudioReceiveStreams().size()); |
EXPECT_EQ(1, GetRecvStream(ssrc).received_packets()); |
EXPECT_TRUE(GetRecvStream(ssrc).VerifyLastPacket(packet, sizeof(packet))); |
} |
- // Sending the same ssrc again should not create a new stream. |
- --ssrc; |
+ // Sending on the same SSRCs again should not create new streams. |
+ for (uint32_t ssrc = 1; ssrc < (1 + kMaxUnsignaledCount); ++ssrc) { |
+ rtc::SetBE32(&packet[8], ssrc); |
+ DeliverPacket(packet, sizeof(packet)); |
+ |
+ EXPECT_EQ(kMaxUnsignaledCount, call_.GetAudioReceiveStreams().size()); |
+ EXPECT_EQ(2, GetRecvStream(ssrc).received_packets()); |
+ EXPECT_TRUE(GetRecvStream(ssrc).VerifyLastPacket(packet, sizeof(packet))); |
+ } |
+ |
+ // Send on another SSRC, the oldest unsignaled stream (SSRC=1) is replaced. |
+ constexpr uint32_t kAnotherSsrc = 667; |
+ rtc::SetBE32(&packet[8], kAnotherSsrc); |
DeliverPacket(packet, sizeof(packet)); |
- EXPECT_EQ(1, call_.GetAudioReceiveStreams().size()); |
- EXPECT_EQ(2, GetRecvStream(ssrc).received_packets()); |
- EXPECT_TRUE(GetRecvStream(ssrc).VerifyLastPacket(packet, sizeof(packet))); |
+ |
+ const auto& streams = call_.GetAudioReceiveStreams(); |
+ EXPECT_EQ(kMaxUnsignaledCount, streams.size()); |
+ size_t i = 0; |
+ for (uint32_t ssrc = 2; ssrc < (1 + kMaxUnsignaledCount); ++ssrc, ++i) { |
+ EXPECT_EQ(ssrc, streams[i]->GetConfig().rtp.remote_ssrc); |
+ EXPECT_EQ(2, streams[i]->received_packets()); |
+ } |
+ EXPECT_EQ(kAnotherSsrc, streams[i]->GetConfig().rtp.remote_ssrc); |
+ EXPECT_EQ(1, streams[i]->received_packets()); |
+ // Sanity check that we've checked all streams. |
+ EXPECT_EQ(kMaxUnsignaledCount, (i + 1)); |
} |
-// Test that a default channel is created even after a signalled stream has been |
+// Test that a default channel is created even after a signaled stream has been |
// added, and that this stream will get any packets for unknown SSRCs. |
-TEST_F(WebRtcVoiceEngineTestFake, RecvUnsignalledAfterSignalled) { |
+TEST_F(WebRtcVoiceEngineTestFake, RecvUnsignaledAfterSignaled) { |
EXPECT_TRUE(SetupChannel()); |
unsigned char packet[sizeof(kPcmuFrame)]; |
memcpy(packet, kPcmuFrame, sizeof(kPcmuFrame)); |
@@ -2822,6 +2843,7 @@ TEST_F(WebRtcVoiceEngineTestFake, RecvUnsignalledAfterSignalled) { |
DeliverPacket(packet, sizeof(packet)); |
EXPECT_TRUE(GetRecvStream(signaled_ssrc).VerifyLastPacket( |
packet, sizeof(packet))); |
+ EXPECT_EQ(1, call_.GetAudioReceiveStreams().size()); |
// Note that the first unknown SSRC cannot be 0, because we only support |
// creating receive streams for SSRC!=0. |
@@ -2915,7 +2937,7 @@ TEST_F(WebRtcVoiceEngineTestFake, AddRecvStreamUnsupportedCodec) { |
parameters.codecs.push_back(kIsacCodec); |
parameters.codecs.push_back(kPcmuCodec); |
EXPECT_TRUE(channel_->SetRecvParameters(parameters)); |
- EXPECT_TRUE(AddRecvStream(kSsrc1)); |
+ EXPECT_TRUE(AddRecvStream(kSsrcX)); |
int channel_num2 = voe_.GetLastChannel(); |
webrtc::CodecInst gcodec; |
rtc::strcpyn(gcodec.plname, arraysize(gcodec.plname), "opus"); |
@@ -2968,12 +2990,12 @@ TEST_F(WebRtcVoiceEngineTestFake, InsertDtmfOnDefaultSendStreamAsCallee) { |
// Test the InsertDtmf on specified send stream as caller. |
TEST_F(WebRtcVoiceEngineTestFake, InsertDtmfOnSendStreamAsCaller) { |
- TestInsertDtmf(kSsrc1, true, kTelephoneEventCodec2); |
+ TestInsertDtmf(kSsrcX, true, kTelephoneEventCodec2); |
} |
// Test the InsertDtmf on specified send stream as callee. |
TEST_F(WebRtcVoiceEngineTestFake, InsertDtmfOnSendStreamAsCallee) { |
- TestInsertDtmf(kSsrc1, false, kTelephoneEventCodec1); |
+ TestInsertDtmf(kSsrcX, false, kTelephoneEventCodec1); |
} |
TEST_F(WebRtcVoiceEngineTestFake, SetAudioOptions) { |
@@ -3227,13 +3249,13 @@ TEST_F(WebRtcVoiceEngineTestFake, TestGetReceiveChannelId) { |
cricket::WebRtcVoiceMediaChannel* media_channel = |
static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_); |
EXPECT_EQ(-1, media_channel->GetReceiveChannelId(0)); |
- EXPECT_TRUE(AddRecvStream(kSsrc1)); |
+ EXPECT_TRUE(AddRecvStream(kSsrcX)); |
int channel_id = voe_.GetLastChannel(); |
- EXPECT_EQ(channel_id, media_channel->GetReceiveChannelId(kSsrc1)); |
- EXPECT_EQ(-1, media_channel->GetReceiveChannelId(kSsrc2)); |
- EXPECT_TRUE(AddRecvStream(kSsrc2)); |
+ EXPECT_EQ(channel_id, media_channel->GetReceiveChannelId(kSsrcX)); |
+ EXPECT_EQ(-1, media_channel->GetReceiveChannelId(kSsrcY)); |
+ EXPECT_TRUE(AddRecvStream(kSsrcY)); |
int channel_id2 = voe_.GetLastChannel(); |
- EXPECT_EQ(channel_id2, media_channel->GetReceiveChannelId(kSsrc2)); |
+ EXPECT_EQ(channel_id2, media_channel->GetReceiveChannelId(kSsrcY)); |
} |
TEST_F(WebRtcVoiceEngineTestFake, TestGetSendChannelId) { |
@@ -3242,36 +3264,55 @@ TEST_F(WebRtcVoiceEngineTestFake, TestGetSendChannelId) { |
static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_); |
EXPECT_EQ(-1, media_channel->GetSendChannelId(0)); |
EXPECT_TRUE(channel_->AddSendStream( |
- cricket::StreamParams::CreateLegacy(kSsrc1))); |
+ cricket::StreamParams::CreateLegacy(kSsrcX))); |
int channel_id = voe_.GetLastChannel(); |
- EXPECT_EQ(channel_id, media_channel->GetSendChannelId(kSsrc1)); |
- EXPECT_EQ(-1, media_channel->GetSendChannelId(kSsrc2)); |
+ EXPECT_EQ(channel_id, media_channel->GetSendChannelId(kSsrcX)); |
+ EXPECT_EQ(-1, media_channel->GetSendChannelId(kSsrcY)); |
EXPECT_TRUE(channel_->AddSendStream( |
- cricket::StreamParams::CreateLegacy(kSsrc2))); |
+ cricket::StreamParams::CreateLegacy(kSsrcY))); |
int channel_id2 = voe_.GetLastChannel(); |
- EXPECT_EQ(channel_id2, media_channel->GetSendChannelId(kSsrc2)); |
+ EXPECT_EQ(channel_id2, media_channel->GetSendChannelId(kSsrcY)); |
} |
TEST_F(WebRtcVoiceEngineTestFake, SetOutputVolume) { |
EXPECT_TRUE(SetupChannel()); |
- EXPECT_FALSE(channel_->SetOutputVolume(kSsrc2, 0.5)); |
+ EXPECT_FALSE(channel_->SetOutputVolume(kSsrcY, 0.5)); |
cricket::StreamParams stream; |
- stream.ssrcs.push_back(kSsrc2); |
+ stream.ssrcs.push_back(kSsrcY); |
EXPECT_TRUE(channel_->AddRecvStream(stream)); |
- EXPECT_DOUBLE_EQ(1, GetRecvStream(kSsrc2).gain()); |
- EXPECT_TRUE(channel_->SetOutputVolume(kSsrc2, 3)); |
- EXPECT_DOUBLE_EQ(3, GetRecvStream(kSsrc2).gain()); |
+ EXPECT_DOUBLE_EQ(1, GetRecvStream(kSsrcY).gain()); |
+ EXPECT_TRUE(channel_->SetOutputVolume(kSsrcY, 3)); |
+ EXPECT_DOUBLE_EQ(3, GetRecvStream(kSsrcY).gain()); |
} |
-TEST_F(WebRtcVoiceEngineTestFake, SetOutputVolumeDefaultRecvStream) { |
+TEST_F(WebRtcVoiceEngineTestFake, SetOutputVolumeUnsignaledRecvStream) { |
EXPECT_TRUE(SetupChannel()); |
- EXPECT_TRUE(channel_->SetOutputVolume(0, 2)); |
+ |
+ // Spawn an unsignaled stream by sending a packet - gain should be 1. |
DeliverPacket(kPcmuFrame, sizeof(kPcmuFrame)); |
- EXPECT_DOUBLE_EQ(2, GetRecvStream(1).gain()); |
- EXPECT_TRUE(channel_->SetOutputVolume(0, 3)); |
- EXPECT_DOUBLE_EQ(3, GetRecvStream(1).gain()); |
- EXPECT_TRUE(channel_->SetOutputVolume(1, 4)); |
- EXPECT_DOUBLE_EQ(4, GetRecvStream(1).gain()); |
+ EXPECT_DOUBLE_EQ(1, GetRecvStream(kSsrc1).gain()); |
+ |
+ // Should remember the volume "2" which will be set on new unsignaled streams, |
+ // and also set the gain to 2 on existing unsignaled streams. |
+ EXPECT_TRUE(channel_->SetOutputVolume(kSsrc0, 2)); |
+ EXPECT_DOUBLE_EQ(2, GetRecvStream(kSsrc1).gain()); |
+ |
+ // Spawn an unsignaled stream by sending a packet - gain should be 2. |
+ unsigned char pcmuFrame2[sizeof(kPcmuFrame)]; |
+ memcpy(pcmuFrame2, kPcmuFrame, sizeof(kPcmuFrame)); |
+ rtc::SetBE32(&pcmuFrame2[8], kSsrcX); |
+ DeliverPacket(pcmuFrame2, sizeof(pcmuFrame2)); |
+ EXPECT_DOUBLE_EQ(2, GetRecvStream(kSsrcX).gain()); |
+ |
+ // Setting gain with SSRC=0 should affect all unsignaled streams. |
+ EXPECT_TRUE(channel_->SetOutputVolume(kSsrc0, 3)); |
+ EXPECT_DOUBLE_EQ(3, GetRecvStream(kSsrc1).gain()); |
+ EXPECT_DOUBLE_EQ(3, GetRecvStream(kSsrcX).gain()); |
+ |
+ // Setting gain on an individual stream affects only that. |
+ EXPECT_TRUE(channel_->SetOutputVolume(kSsrcX, 4)); |
+ EXPECT_DOUBLE_EQ(3, GetRecvStream(kSsrc1).gain()); |
+ EXPECT_DOUBLE_EQ(4, GetRecvStream(kSsrcX).gain()); |
} |
TEST_F(WebRtcVoiceEngineTestFake, SetsSyncGroupFromSyncLabel) { |
@@ -3381,27 +3422,27 @@ TEST_F(WebRtcVoiceEngineTestFake, DeliverAudioPacket_Call) { |
// since they do not send RTCP SR. |
TEST_F(WebRtcVoiceEngineTestFake, AssociateFirstSendChannel_SendCreatedFirst) { |
EXPECT_TRUE(SetupSendStream()); |
- EXPECT_TRUE(AddRecvStream(kSsrc2)); |
- EXPECT_EQ(kSsrc1, GetRecvStreamConfig(kSsrc2).rtp.local_ssrc); |
+ EXPECT_TRUE(AddRecvStream(kSsrcY)); |
+ EXPECT_EQ(kSsrcX, GetRecvStreamConfig(kSsrcY).rtp.local_ssrc); |
EXPECT_TRUE(channel_->AddSendStream( |
- cricket::StreamParams::CreateLegacy(kSsrc3))); |
- EXPECT_EQ(kSsrc1, GetRecvStreamConfig(kSsrc2).rtp.local_ssrc); |
- EXPECT_TRUE(AddRecvStream(kSsrc4)); |
- EXPECT_EQ(kSsrc1, GetRecvStreamConfig(kSsrc4).rtp.local_ssrc); |
+ cricket::StreamParams::CreateLegacy(kSsrcZ))); |
+ EXPECT_EQ(kSsrcX, GetRecvStreamConfig(kSsrcY).rtp.local_ssrc); |
+ EXPECT_TRUE(AddRecvStream(kSsrcW)); |
+ EXPECT_EQ(kSsrcX, GetRecvStreamConfig(kSsrcW).rtp.local_ssrc); |
} |
TEST_F(WebRtcVoiceEngineTestFake, AssociateFirstSendChannel_RecvCreatedFirst) { |
EXPECT_TRUE(SetupRecvStream()); |
- EXPECT_EQ(0xFA17FA17u, GetRecvStreamConfig(kSsrc1).rtp.local_ssrc); |
+ EXPECT_EQ(0xFA17FA17u, GetRecvStreamConfig(kSsrcX).rtp.local_ssrc); |
EXPECT_TRUE(channel_->AddSendStream( |
- cricket::StreamParams::CreateLegacy(kSsrc2))); |
- EXPECT_EQ(kSsrc2, GetRecvStreamConfig(kSsrc1).rtp.local_ssrc); |
- EXPECT_TRUE(AddRecvStream(kSsrc3)); |
- EXPECT_EQ(kSsrc2, GetRecvStreamConfig(kSsrc3).rtp.local_ssrc); |
+ cricket::StreamParams::CreateLegacy(kSsrcY))); |
+ EXPECT_EQ(kSsrcY, GetRecvStreamConfig(kSsrcX).rtp.local_ssrc); |
+ EXPECT_TRUE(AddRecvStream(kSsrcZ)); |
+ EXPECT_EQ(kSsrcY, GetRecvStreamConfig(kSsrcZ).rtp.local_ssrc); |
EXPECT_TRUE(channel_->AddSendStream( |
- cricket::StreamParams::CreateLegacy(kSsrc4))); |
- EXPECT_EQ(kSsrc2, GetRecvStreamConfig(kSsrc1).rtp.local_ssrc); |
- EXPECT_EQ(kSsrc2, GetRecvStreamConfig(kSsrc3).rtp.local_ssrc); |
+ cricket::StreamParams::CreateLegacy(kSsrcW))); |
+ EXPECT_EQ(kSsrcY, GetRecvStreamConfig(kSsrcX).rtp.local_ssrc); |
+ EXPECT_EQ(kSsrcY, GetRecvStreamConfig(kSsrcZ).rtp.local_ssrc); |
} |
TEST_F(WebRtcVoiceEngineTestFake, SetRawAudioSink) { |
@@ -3410,43 +3451,71 @@ TEST_F(WebRtcVoiceEngineTestFake, SetRawAudioSink) { |
std::unique_ptr<FakeAudioSink> fake_sink_2(new FakeAudioSink()); |
// Setting the sink before a recv stream exists should do nothing. |
- channel_->SetRawAudioSink(kSsrc1, std::move(fake_sink_1)); |
- EXPECT_TRUE(AddRecvStream(kSsrc1)); |
- EXPECT_EQ(nullptr, GetRecvStream(kSsrc1).sink()); |
+ channel_->SetRawAudioSink(kSsrcX, std::move(fake_sink_1)); |
+ EXPECT_TRUE(AddRecvStream(kSsrcX)); |
+ EXPECT_EQ(nullptr, GetRecvStream(kSsrcX).sink()); |
// Now try actually setting the sink. |
- channel_->SetRawAudioSink(kSsrc1, std::move(fake_sink_2)); |
- EXPECT_NE(nullptr, GetRecvStream(kSsrc1).sink()); |
+ channel_->SetRawAudioSink(kSsrcX, std::move(fake_sink_2)); |
+ EXPECT_NE(nullptr, GetRecvStream(kSsrcX).sink()); |
// Now try resetting it. |
- channel_->SetRawAudioSink(kSsrc1, nullptr); |
- EXPECT_EQ(nullptr, GetRecvStream(kSsrc1).sink()); |
+ channel_->SetRawAudioSink(kSsrcX, nullptr); |
+ EXPECT_EQ(nullptr, GetRecvStream(kSsrcX).sink()); |
} |
-TEST_F(WebRtcVoiceEngineTestFake, SetRawAudioSinkDefaultRecvStream) { |
+TEST_F(WebRtcVoiceEngineTestFake, SetRawAudioSinkUnsignaledRecvStream) { |
EXPECT_TRUE(SetupChannel()); |
std::unique_ptr<FakeAudioSink> fake_sink_1(new FakeAudioSink()); |
std::unique_ptr<FakeAudioSink> fake_sink_2(new FakeAudioSink()); |
+ std::unique_ptr<FakeAudioSink> fake_sink_3(new FakeAudioSink()); |
+ std::unique_ptr<FakeAudioSink> fake_sink_4(new FakeAudioSink()); |
// Should be able to set a default sink even when no stream exists. |
channel_->SetRawAudioSink(0, std::move(fake_sink_1)); |
- // Create default channel and ensure it's assigned the default sink. |
+ // Spawn an unsignaled stream by sending a packet - it should be assigned the |
+ // default sink. |
DeliverPacket(kPcmuFrame, sizeof(kPcmuFrame)); |
- EXPECT_NE(nullptr, GetRecvStream(0x01).sink()); |
+ EXPECT_NE(nullptr, GetRecvStream(kSsrc1).sink()); |
// Try resetting the default sink. |
- channel_->SetRawAudioSink(0, nullptr); |
- EXPECT_EQ(nullptr, GetRecvStream(0x01).sink()); |
+ channel_->SetRawAudioSink(kSsrc0, nullptr); |
+ EXPECT_EQ(nullptr, GetRecvStream(kSsrc1).sink()); |
// Try setting the default sink while the default stream exists. |
- channel_->SetRawAudioSink(0, std::move(fake_sink_2)); |
- EXPECT_NE(nullptr, GetRecvStream(0x01).sink()); |
+ channel_->SetRawAudioSink(kSsrc0, std::move(fake_sink_2)); |
+ EXPECT_NE(nullptr, GetRecvStream(kSsrc1).sink()); |
// If we remove and add a default stream, it should get the same sink. |
- EXPECT_TRUE(channel_->RemoveRecvStream(0x01)); |
+ EXPECT_TRUE(channel_->RemoveRecvStream(kSsrc1)); |
DeliverPacket(kPcmuFrame, sizeof(kPcmuFrame)); |
- EXPECT_NE(nullptr, GetRecvStream(0x01).sink()); |
+ EXPECT_NE(nullptr, GetRecvStream(kSsrc1).sink()); |
+ |
+ // Spawn another unsignaled stream - it should be assigned the default sink |
+ // and the previous unsignaled stream should lose it. |
+ unsigned char pcmuFrame2[sizeof(kPcmuFrame)]; |
+ memcpy(pcmuFrame2, kPcmuFrame, sizeof(kPcmuFrame)); |
+ rtc::SetBE32(&pcmuFrame2[8], kSsrcX); |
+ DeliverPacket(pcmuFrame2, sizeof(pcmuFrame2)); |
+ EXPECT_EQ(nullptr, GetRecvStream(kSsrc1).sink()); |
+ EXPECT_NE(nullptr, GetRecvStream(kSsrcX).sink()); |
+ |
+ // Reset the default sink - the second unsignaled stream should lose it. |
+ channel_->SetRawAudioSink(kSsrc0, nullptr); |
+ EXPECT_EQ(nullptr, GetRecvStream(kSsrc1).sink()); |
+ EXPECT_EQ(nullptr, GetRecvStream(kSsrcX).sink()); |
+ |
+ // Try setting the default sink while two streams exists. |
+ channel_->SetRawAudioSink(kSsrc0, std::move(fake_sink_3)); |
+ EXPECT_EQ(nullptr, GetRecvStream(kSsrc1).sink()); |
+ EXPECT_NE(nullptr, GetRecvStream(kSsrcX).sink()); |
+ |
+ // Try setting the sink for the first unsignaled stream using its known SSRC. |
+ channel_->SetRawAudioSink(kSsrc1, std::move(fake_sink_4)); |
+ EXPECT_NE(nullptr, GetRecvStream(kSsrc1).sink()); |
+ EXPECT_NE(nullptr, GetRecvStream(kSsrcX).sink()); |
+ EXPECT_NE(GetRecvStream(kSsrc1).sink(), GetRecvStream(kSsrcX).sink()); |
} |
// Test that, just like the video channel, the voice channel communicates the |
@@ -3476,7 +3545,7 @@ TEST_F(WebRtcVoiceEngineTestFake, OnReadyToSendSignalsNetworkState) { |
TEST_F(WebRtcVoiceEngineTestFake, PreservePlayoutWhenRecreateRecvStream) { |
SetupRecvStream(); |
channel_->SetPlayout(true); |
- EXPECT_TRUE(GetRecvStream(kSsrc1).started()); |
+ EXPECT_TRUE(GetRecvStream(kSsrcX).started()); |
// Changing RTP header extensions will recreate the AudioReceiveStream. |
cricket::AudioRecvParameters parameters; |
@@ -3484,7 +3553,7 @@ TEST_F(WebRtcVoiceEngineTestFake, PreservePlayoutWhenRecreateRecvStream) { |
webrtc::RtpExtension(webrtc::RtpExtension::kAudioLevelUri, 12)); |
channel_->SetRecvParameters(parameters); |
- EXPECT_TRUE(GetRecvStream(kSsrc1).started()); |
+ EXPECT_TRUE(GetRecvStream(kSsrcX).started()); |
} |
// Tests that the library initializes and shuts down properly. |