| Index: talk/media/webrtc/webrtcvoiceengine_unittest.cc
|
| diff --git a/talk/media/webrtc/webrtcvoiceengine_unittest.cc b/talk/media/webrtc/webrtcvoiceengine_unittest.cc
|
| index 0e2781b94719e5f2a5e11cb973889b51e0671f33..b123a8430b154e527134bce5af31ad70b7f81f3c 100644
|
| --- a/talk/media/webrtc/webrtcvoiceengine_unittest.cc
|
| +++ b/talk/media/webrtc/webrtcvoiceengine_unittest.cc
|
| @@ -124,12 +124,10 @@ class WebRtcVoiceEngineTestFake : public testing::Test {
|
| void SetupForMultiSendStream() {
|
| EXPECT_TRUE(SetupEngineWithSendStream());
|
| // Remove stream added in Setup.
|
| - int default_channel_num = voe_.GetLastChannel();
|
| - EXPECT_EQ(kSsrc1, voe_.GetLocalSSRC(default_channel_num));
|
| + EXPECT_TRUE(call_.GetAudioSendStream(kSsrc1));
|
| EXPECT_TRUE(channel_->RemoveSendStream(kSsrc1));
|
| -
|
| // Verify the channel does not exist.
|
| - EXPECT_EQ(-1, voe_.GetChannelFromLocalSsrc(kSsrc1));
|
| + EXPECT_FALSE(call_.GetAudioSendStream(kSsrc1));
|
| }
|
| void DeliverPacket(const void* data, int len) {
|
| rtc::Buffer packet(reinterpret_cast<const uint8_t*>(data), len);
|
| @@ -140,6 +138,12 @@ class WebRtcVoiceEngineTestFake : public testing::Test {
|
| engine_.Terminate();
|
| }
|
|
|
| + const webrtc::AudioSendStream::Config& GetSendStreamConfig(uint32_t ssrc) {
|
| + const auto* send_stream = call_.GetAudioSendStream(ssrc);
|
| + EXPECT_TRUE(send_stream);
|
| + return send_stream->GetConfig();
|
| + }
|
| +
|
| void TestInsertDtmf(uint32_t ssrc, bool caller) {
|
| EXPECT_TRUE(engine_.Init(rtc::Thread::Current()));
|
| channel_ = engine_.CreateChannel(&call_, cricket::AudioOptions());
|
| @@ -212,41 +216,44 @@ class WebRtcVoiceEngineTestFake : public testing::Test {
|
|
|
| void TestSetSendRtpHeaderExtensions(const std::string& ext) {
|
| EXPECT_TRUE(SetupEngineWithSendStream());
|
| - int channel_num = voe_.GetLastChannel();
|
|
|
| // Ensure extensions are off by default.
|
| - EXPECT_EQ(-1, voe_.GetSendRtpExtensionId(channel_num, ext));
|
| + EXPECT_EQ(0u, GetSendStreamConfig(kSsrc1).rtp.extensions.size());
|
|
|
| // Ensure unknown extensions won't cause an error.
|
| send_parameters_.extensions.push_back(cricket::RtpHeaderExtension(
|
| "urn:ietf:params:unknownextention", 1));
|
| EXPECT_TRUE(channel_->SetSendParameters(send_parameters_));
|
| - EXPECT_EQ(-1, voe_.GetSendRtpExtensionId(channel_num, ext));
|
| + EXPECT_EQ(0u, GetSendStreamConfig(kSsrc1).rtp.extensions.size());
|
|
|
| // Ensure extensions stay off with an empty list of headers.
|
| send_parameters_.extensions.clear();
|
| EXPECT_TRUE(channel_->SetSendParameters(send_parameters_));
|
| - EXPECT_EQ(-1, voe_.GetSendRtpExtensionId(channel_num, ext));
|
| + EXPECT_EQ(0u, GetSendStreamConfig(kSsrc1).rtp.extensions.size());
|
|
|
| // Ensure extension is set properly.
|
| const int id = 1;
|
| send_parameters_.extensions.push_back(cricket::RtpHeaderExtension(ext, id));
|
| EXPECT_TRUE(channel_->SetSendParameters(send_parameters_));
|
| - EXPECT_EQ(id, voe_.GetSendRtpExtensionId(channel_num, ext));
|
| + EXPECT_EQ(1u, GetSendStreamConfig(kSsrc1).rtp.extensions.size());
|
| + EXPECT_EQ(ext, GetSendStreamConfig(kSsrc1).rtp.extensions[0].name);
|
| + EXPECT_EQ(id, GetSendStreamConfig(kSsrc1).rtp.extensions[0].id);
|
|
|
| // Ensure extension is set properly on new channels.
|
| EXPECT_TRUE(channel_->AddSendStream(
|
| cricket::StreamParams::CreateLegacy(kSsrc2)));
|
| - int new_channel_num = voe_.GetLastChannel();
|
| - EXPECT_NE(channel_num, new_channel_num);
|
| - EXPECT_EQ(id, voe_.GetSendRtpExtensionId(new_channel_num, ext));
|
| + EXPECT_NE(call_.GetAudioSendStream(kSsrc1),
|
| + call_.GetAudioSendStream(kSsrc2));
|
| + EXPECT_EQ(1u, GetSendStreamConfig(kSsrc2).rtp.extensions.size());
|
| + EXPECT_EQ(ext, GetSendStreamConfig(kSsrc2).rtp.extensions[0].name);
|
| + EXPECT_EQ(id, GetSendStreamConfig(kSsrc2).rtp.extensions[0].id);
|
|
|
| // Ensure all extensions go back off with an empty list.
|
| send_parameters_.codecs.push_back(kPcmuCodec);
|
| send_parameters_.extensions.clear();
|
| EXPECT_TRUE(channel_->SetSendParameters(send_parameters_));
|
| - EXPECT_EQ(-1, voe_.GetSendRtpExtensionId(channel_num, ext));
|
| - EXPECT_EQ(-1, voe_.GetSendRtpExtensionId(new_channel_num, ext));
|
| + EXPECT_EQ(0u, GetSendStreamConfig(kSsrc1).rtp.extensions.size());
|
| + EXPECT_EQ(0u, GetSendStreamConfig(kSsrc2).rtp.extensions.size());
|
| }
|
|
|
| void TestSetRecvRtpHeaderExtensions(const std::string& ext) {
|
| @@ -1976,21 +1983,16 @@ TEST_F(WebRtcVoiceEngineTestFake, CreateAndDeleteMultipleSendStreams) {
|
| for (uint32_t ssrc : kSsrcs4) {
|
| EXPECT_TRUE(channel_->AddSendStream(
|
| cricket::StreamParams::CreateLegacy(ssrc)));
|
| - EXPECT_NE(nullptr, call_.GetAudioSendStream(ssrc));
|
| -
|
| // Verify that we are in a sending state for all the created streams.
|
| - int channel_num = voe_.GetChannelFromLocalSsrc(ssrc);
|
| - EXPECT_TRUE(voe_.GetSend(channel_num));
|
| + EXPECT_TRUE(voe_.GetSend(GetSendStreamConfig(ssrc).voe_channel_id));
|
| }
|
| EXPECT_EQ(arraysize(kSsrcs4), call_.GetAudioSendStreams().size());
|
|
|
| // Delete the send streams.
|
| for (uint32_t ssrc : kSsrcs4) {
|
| EXPECT_TRUE(channel_->RemoveSendStream(ssrc));
|
| - EXPECT_EQ(nullptr, call_.GetAudioSendStream(ssrc));
|
| - // Stream should already be deleted.
|
| + EXPECT_FALSE(call_.GetAudioSendStream(ssrc));
|
| EXPECT_FALSE(channel_->RemoveSendStream(ssrc));
|
| - EXPECT_EQ(-1, voe_.GetChannelFromLocalSsrc(ssrc));
|
| }
|
| EXPECT_EQ(0u, call_.GetAudioSendStreams().size());
|
| }
|
| @@ -2015,7 +2017,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsWithMultipleSendStreams) {
|
| // Verify ISAC and VAD are corrected configured on all send channels.
|
| webrtc::CodecInst gcodec;
|
| for (uint32_t ssrc : kSsrcs4) {
|
| - int channel_num = voe_.GetChannelFromLocalSsrc(ssrc);
|
| + int channel_num = GetSendStreamConfig(ssrc).voe_channel_id;
|
| EXPECT_EQ(0, voe_.GetSendCodec(channel_num, gcodec));
|
| EXPECT_STREQ("ISAC", gcodec.plname);
|
| EXPECT_TRUE(voe_.GetVAD(channel_num));
|
| @@ -2026,7 +2028,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsWithMultipleSendStreams) {
|
| parameters.codecs[0] = kPcmuCodec;
|
| EXPECT_TRUE(channel_->SetSendParameters(parameters));
|
| for (uint32_t ssrc : kSsrcs4) {
|
| - int channel_num = voe_.GetChannelFromLocalSsrc(ssrc);
|
| + int channel_num = GetSendStreamConfig(ssrc).voe_channel_id;
|
| EXPECT_EQ(0, voe_.GetSendCodec(channel_num, gcodec));
|
| EXPECT_STREQ("PCMU", gcodec.plname);
|
| EXPECT_FALSE(voe_.GetVAD(channel_num));
|
| @@ -2049,7 +2051,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendWithMultipleSendStreams) {
|
| EXPECT_TRUE(channel_->SetSend(cricket::SEND_MICROPHONE));
|
| for (uint32_t ssrc : kSsrcs4) {
|
| // Verify that we are in a sending state for all the send streams.
|
| - int channel_num = voe_.GetChannelFromLocalSsrc(ssrc);
|
| + int channel_num = GetSendStreamConfig(ssrc).voe_channel_id;
|
| EXPECT_TRUE(voe_.GetSend(channel_num));
|
| }
|
|
|
| @@ -2057,7 +2059,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendWithMultipleSendStreams) {
|
| EXPECT_TRUE(channel_->SetSend(cricket::SEND_NOTHING));
|
| for (uint32_t ssrc : kSsrcs4) {
|
| // Verify that we are in a stop state for all the send streams.
|
| - int channel_num = voe_.GetChannelFromLocalSsrc(ssrc);
|
| + int channel_num = GetSendStreamConfig(ssrc).voe_channel_id;
|
| EXPECT_FALSE(voe_.GetSend(channel_num));
|
| }
|
| }
|
| @@ -2338,7 +2340,7 @@ TEST_F(WebRtcVoiceEngineTestFake, TraceFilterViaTraceOptions) {
|
| // SSRC is set in SetupEngine by calling AddSendStream.
|
| TEST_F(WebRtcVoiceEngineTestFake, SetSendSsrc) {
|
| EXPECT_TRUE(SetupEngineWithSendStream());
|
| - EXPECT_EQ(kSsrc1, voe_.GetLocalSSRC(voe_.GetLastChannel()));
|
| + EXPECT_TRUE(call_.GetAudioSendStream(kSsrc1));
|
| }
|
|
|
| TEST_F(WebRtcVoiceEngineTestFake, GetStats) {
|
| @@ -2399,7 +2401,7 @@ TEST_F(WebRtcVoiceEngineTestFake, GetStats) {
|
| // SSRC is set in SetupEngine by calling AddSendStream.
|
| TEST_F(WebRtcVoiceEngineTestFake, SetSendSsrcWithMultipleStreams) {
|
| EXPECT_TRUE(SetupEngineWithSendStream());
|
| - EXPECT_EQ(kSsrc1, voe_.GetLocalSSRC(voe_.GetLastChannel()));
|
| + EXPECT_TRUE(call_.GetAudioSendStream(kSsrc1));
|
| EXPECT_TRUE(channel_->AddRecvStream(cricket::StreamParams::CreateLegacy(2)));
|
| EXPECT_EQ(kSsrc1, voe_.GetLocalSSRC(voe_.GetLastChannel()));
|
| }
|
| @@ -2414,9 +2416,8 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendSsrcAfterCreatingReceiveChannel) {
|
| int receive_channel_num = voe_.GetLastChannel();
|
| EXPECT_TRUE(channel_->AddSendStream(
|
| cricket::StreamParams::CreateLegacy(1234)));
|
| - int send_channel_num = voe_.GetLastChannel();
|
|
|
| - EXPECT_EQ(1234U, voe_.GetLocalSSRC(send_channel_num));
|
| + EXPECT_TRUE(call_.GetAudioSendStream(1234));
|
| EXPECT_EQ(1234U, voe_.GetLocalSSRC(receive_channel_num));
|
| }
|
|
|
| @@ -3053,6 +3054,8 @@ TEST_F(WebRtcVoiceEngineTestFake, ConfigureCombinedBweForNewRecvStreams) {
|
| EXPECT_EQ(arraysize(kSsrcs), call_.GetAudioReceiveStreams().size());
|
| }
|
|
|
| +// TODO(solenberg): Remove, once recv streams are configured through Call.
|
| +// (This is then covered by TestSetRecvRtpHeaderExtensions.)
|
| TEST_F(WebRtcVoiceEngineTestFake, ConfiguresAudioReceiveStreamRtpExtensions) {
|
| // Test that setting the header extensions results in the expected state
|
| // changes on an associated Call.
|
|
|