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

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

Issue 1418503010: Move some send stream configuration into webrtc::AudioSendStream. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: rebase Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « talk/media/webrtc/webrtcvoiceengine.cc ('k') | webrtc/audio/audio_receive_stream_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * libjingle 2 * libjingle
3 * Copyright 2008 Google Inc. 3 * Copyright 2008 Google Inc.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met: 6 * modification, are permitted provided that the following conditions are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright notice, 8 * 1. Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer. 9 * this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright notice, 10 * 2. Redistributions in binary form must reproduce the above copyright notice,
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
117 bool SetupEngineWithSendStream() { 117 bool SetupEngineWithSendStream() {
118 if (!SetupEngine()) { 118 if (!SetupEngine()) {
119 return false; 119 return false;
120 } 120 }
121 return channel_->AddSendStream( 121 return channel_->AddSendStream(
122 cricket::StreamParams::CreateLegacy(kSsrc1)); 122 cricket::StreamParams::CreateLegacy(kSsrc1));
123 } 123 }
124 void SetupForMultiSendStream() { 124 void SetupForMultiSendStream() {
125 EXPECT_TRUE(SetupEngineWithSendStream()); 125 EXPECT_TRUE(SetupEngineWithSendStream());
126 // Remove stream added in Setup. 126 // Remove stream added in Setup.
127 int default_channel_num = voe_.GetLastChannel(); 127 EXPECT_TRUE(call_.GetAudioSendStream(kSsrc1));
128 EXPECT_EQ(kSsrc1, voe_.GetLocalSSRC(default_channel_num));
129 EXPECT_TRUE(channel_->RemoveSendStream(kSsrc1)); 128 EXPECT_TRUE(channel_->RemoveSendStream(kSsrc1));
130
131 // Verify the channel does not exist. 129 // Verify the channel does not exist.
132 EXPECT_EQ(-1, voe_.GetChannelFromLocalSsrc(kSsrc1)); 130 EXPECT_FALSE(call_.GetAudioSendStream(kSsrc1));
133 } 131 }
134 void DeliverPacket(const void* data, int len) { 132 void DeliverPacket(const void* data, int len) {
135 rtc::Buffer packet(reinterpret_cast<const uint8_t*>(data), len); 133 rtc::Buffer packet(reinterpret_cast<const uint8_t*>(data), len);
136 channel_->OnPacketReceived(&packet, rtc::PacketTime()); 134 channel_->OnPacketReceived(&packet, rtc::PacketTime());
137 } 135 }
138 void TearDown() override { 136 void TearDown() override {
139 delete channel_; 137 delete channel_;
140 engine_.Terminate(); 138 engine_.Terminate();
141 } 139 }
142 140
141 const webrtc::AudioSendStream::Config& GetSendStreamConfig(uint32_t ssrc) {
142 const auto* send_stream = call_.GetAudioSendStream(ssrc);
143 EXPECT_TRUE(send_stream);
144 return send_stream->GetConfig();
145 }
146
143 void TestInsertDtmf(uint32_t ssrc, bool caller) { 147 void TestInsertDtmf(uint32_t ssrc, bool caller) {
144 EXPECT_TRUE(engine_.Init(rtc::Thread::Current())); 148 EXPECT_TRUE(engine_.Init(rtc::Thread::Current()));
145 channel_ = engine_.CreateChannel(&call_, cricket::AudioOptions()); 149 channel_ = engine_.CreateChannel(&call_, cricket::AudioOptions());
146 EXPECT_TRUE(channel_ != nullptr); 150 EXPECT_TRUE(channel_ != nullptr);
147 if (caller) { 151 if (caller) {
148 // If this is a caller, local description will be applied and add the 152 // If this is a caller, local description will be applied and add the
149 // send stream. 153 // send stream.
150 EXPECT_TRUE(channel_->AddSendStream( 154 EXPECT_TRUE(channel_->AddSendStream(
151 cricket::StreamParams::CreateLegacy(kSsrc1))); 155 cricket::StreamParams::CreateLegacy(kSsrc1)));
152 } 156 }
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 EXPECT_EQ(expected_result, channel_->SetSendParameters(parameters)); 209 EXPECT_EQ(expected_result, channel_->SetSendParameters(parameters));
206 210
207 int channel_num = voe_.GetLastChannel(); 211 int channel_num = voe_.GetLastChannel();
208 webrtc::CodecInst temp_codec; 212 webrtc::CodecInst temp_codec;
209 EXPECT_FALSE(voe_.GetSendCodec(channel_num, temp_codec)); 213 EXPECT_FALSE(voe_.GetSendCodec(channel_num, temp_codec));
210 EXPECT_EQ(expected_bitrate, temp_codec.rate); 214 EXPECT_EQ(expected_bitrate, temp_codec.rate);
211 } 215 }
212 216
213 void TestSetSendRtpHeaderExtensions(const std::string& ext) { 217 void TestSetSendRtpHeaderExtensions(const std::string& ext) {
214 EXPECT_TRUE(SetupEngineWithSendStream()); 218 EXPECT_TRUE(SetupEngineWithSendStream());
215 int channel_num = voe_.GetLastChannel();
216 219
217 // Ensure extensions are off by default. 220 // Ensure extensions are off by default.
218 EXPECT_EQ(-1, voe_.GetSendRtpExtensionId(channel_num, ext)); 221 EXPECT_EQ(0u, GetSendStreamConfig(kSsrc1).rtp.extensions.size());
219 222
220 // Ensure unknown extensions won't cause an error. 223 // Ensure unknown extensions won't cause an error.
221 send_parameters_.extensions.push_back(cricket::RtpHeaderExtension( 224 send_parameters_.extensions.push_back(cricket::RtpHeaderExtension(
222 "urn:ietf:params:unknownextention", 1)); 225 "urn:ietf:params:unknownextention", 1));
223 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); 226 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_));
224 EXPECT_EQ(-1, voe_.GetSendRtpExtensionId(channel_num, ext)); 227 EXPECT_EQ(0u, GetSendStreamConfig(kSsrc1).rtp.extensions.size());
225 228
226 // Ensure extensions stay off with an empty list of headers. 229 // Ensure extensions stay off with an empty list of headers.
227 send_parameters_.extensions.clear(); 230 send_parameters_.extensions.clear();
228 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); 231 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_));
229 EXPECT_EQ(-1, voe_.GetSendRtpExtensionId(channel_num, ext)); 232 EXPECT_EQ(0u, GetSendStreamConfig(kSsrc1).rtp.extensions.size());
230 233
231 // Ensure extension is set properly. 234 // Ensure extension is set properly.
232 const int id = 1; 235 const int id = 1;
233 send_parameters_.extensions.push_back(cricket::RtpHeaderExtension(ext, id)); 236 send_parameters_.extensions.push_back(cricket::RtpHeaderExtension(ext, id));
234 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); 237 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_));
235 EXPECT_EQ(id, voe_.GetSendRtpExtensionId(channel_num, ext)); 238 EXPECT_EQ(1u, GetSendStreamConfig(kSsrc1).rtp.extensions.size());
239 EXPECT_EQ(ext, GetSendStreamConfig(kSsrc1).rtp.extensions[0].name);
240 EXPECT_EQ(id, GetSendStreamConfig(kSsrc1).rtp.extensions[0].id);
236 241
237 // Ensure extension is set properly on new channels. 242 // Ensure extension is set properly on new channels.
238 EXPECT_TRUE(channel_->AddSendStream( 243 EXPECT_TRUE(channel_->AddSendStream(
239 cricket::StreamParams::CreateLegacy(kSsrc2))); 244 cricket::StreamParams::CreateLegacy(kSsrc2)));
240 int new_channel_num = voe_.GetLastChannel(); 245 EXPECT_NE(call_.GetAudioSendStream(kSsrc1),
241 EXPECT_NE(channel_num, new_channel_num); 246 call_.GetAudioSendStream(kSsrc2));
242 EXPECT_EQ(id, voe_.GetSendRtpExtensionId(new_channel_num, ext)); 247 EXPECT_EQ(1u, GetSendStreamConfig(kSsrc2).rtp.extensions.size());
248 EXPECT_EQ(ext, GetSendStreamConfig(kSsrc2).rtp.extensions[0].name);
249 EXPECT_EQ(id, GetSendStreamConfig(kSsrc2).rtp.extensions[0].id);
243 250
244 // Ensure all extensions go back off with an empty list. 251 // Ensure all extensions go back off with an empty list.
245 send_parameters_.codecs.push_back(kPcmuCodec); 252 send_parameters_.codecs.push_back(kPcmuCodec);
246 send_parameters_.extensions.clear(); 253 send_parameters_.extensions.clear();
247 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); 254 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_));
248 EXPECT_EQ(-1, voe_.GetSendRtpExtensionId(channel_num, ext)); 255 EXPECT_EQ(0u, GetSendStreamConfig(kSsrc1).rtp.extensions.size());
249 EXPECT_EQ(-1, voe_.GetSendRtpExtensionId(new_channel_num, ext)); 256 EXPECT_EQ(0u, GetSendStreamConfig(kSsrc2).rtp.extensions.size());
250 } 257 }
251 258
252 void TestSetRecvRtpHeaderExtensions(const std::string& ext) { 259 void TestSetRecvRtpHeaderExtensions(const std::string& ext) {
253 EXPECT_TRUE(SetupEngineWithRecvStream()); 260 EXPECT_TRUE(SetupEngineWithRecvStream());
254 int channel_num = voe_.GetLastChannel(); 261 int channel_num = voe_.GetLastChannel();
255 262
256 // Ensure extensions are off by default. 263 // Ensure extensions are off by default.
257 EXPECT_EQ(-1, voe_.GetReceiveRtpExtensionId(channel_num, ext)); 264 EXPECT_EQ(-1, voe_.GetReceiveRtpExtensionId(channel_num, ext));
258 265
259 cricket::AudioRecvParameters parameters; 266 cricket::AudioRecvParameters parameters;
(...skipping 1709 matching lines...) Expand 10 before | Expand all | Expand 10 after
1969 // Test that we can add and remove send streams. 1976 // Test that we can add and remove send streams.
1970 TEST_F(WebRtcVoiceEngineTestFake, CreateAndDeleteMultipleSendStreams) { 1977 TEST_F(WebRtcVoiceEngineTestFake, CreateAndDeleteMultipleSendStreams) {
1971 SetupForMultiSendStream(); 1978 SetupForMultiSendStream();
1972 1979
1973 // Set the global state for sending. 1980 // Set the global state for sending.
1974 EXPECT_TRUE(channel_->SetSend(cricket::SEND_MICROPHONE)); 1981 EXPECT_TRUE(channel_->SetSend(cricket::SEND_MICROPHONE));
1975 1982
1976 for (uint32_t ssrc : kSsrcs4) { 1983 for (uint32_t ssrc : kSsrcs4) {
1977 EXPECT_TRUE(channel_->AddSendStream( 1984 EXPECT_TRUE(channel_->AddSendStream(
1978 cricket::StreamParams::CreateLegacy(ssrc))); 1985 cricket::StreamParams::CreateLegacy(ssrc)));
1979 EXPECT_NE(nullptr, call_.GetAudioSendStream(ssrc));
1980
1981 // Verify that we are in a sending state for all the created streams. 1986 // Verify that we are in a sending state for all the created streams.
1982 int channel_num = voe_.GetChannelFromLocalSsrc(ssrc); 1987 EXPECT_TRUE(voe_.GetSend(GetSendStreamConfig(ssrc).voe_channel_id));
1983 EXPECT_TRUE(voe_.GetSend(channel_num));
1984 } 1988 }
1985 EXPECT_EQ(arraysize(kSsrcs4), call_.GetAudioSendStreams().size()); 1989 EXPECT_EQ(arraysize(kSsrcs4), call_.GetAudioSendStreams().size());
1986 1990
1987 // Delete the send streams. 1991 // Delete the send streams.
1988 for (uint32_t ssrc : kSsrcs4) { 1992 for (uint32_t ssrc : kSsrcs4) {
1989 EXPECT_TRUE(channel_->RemoveSendStream(ssrc)); 1993 EXPECT_TRUE(channel_->RemoveSendStream(ssrc));
1990 EXPECT_EQ(nullptr, call_.GetAudioSendStream(ssrc)); 1994 EXPECT_FALSE(call_.GetAudioSendStream(ssrc));
1991 // Stream should already be deleted.
1992 EXPECT_FALSE(channel_->RemoveSendStream(ssrc)); 1995 EXPECT_FALSE(channel_->RemoveSendStream(ssrc));
1993 EXPECT_EQ(-1, voe_.GetChannelFromLocalSsrc(ssrc));
1994 } 1996 }
1995 EXPECT_EQ(0u, call_.GetAudioSendStreams().size()); 1997 EXPECT_EQ(0u, call_.GetAudioSendStreams().size());
1996 } 1998 }
1997 1999
1998 // Test SetSendCodecs correctly configure the codecs in all send streams. 2000 // Test SetSendCodecs correctly configure the codecs in all send streams.
1999 TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsWithMultipleSendStreams) { 2001 TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsWithMultipleSendStreams) {
2000 SetupForMultiSendStream(); 2002 SetupForMultiSendStream();
2001 2003
2002 // Create send streams. 2004 // Create send streams.
2003 for (uint32_t ssrc : kSsrcs4) { 2005 for (uint32_t ssrc : kSsrcs4) {
2004 EXPECT_TRUE(channel_->AddSendStream( 2006 EXPECT_TRUE(channel_->AddSendStream(
2005 cricket::StreamParams::CreateLegacy(ssrc))); 2007 cricket::StreamParams::CreateLegacy(ssrc)));
2006 } 2008 }
2007 2009
2008 cricket::AudioSendParameters parameters; 2010 cricket::AudioSendParameters parameters;
2009 // Set ISAC(16K) and CN(16K). VAD should be activated. 2011 // Set ISAC(16K) and CN(16K). VAD should be activated.
2010 parameters.codecs.push_back(kIsacCodec); 2012 parameters.codecs.push_back(kIsacCodec);
2011 parameters.codecs.push_back(kCn16000Codec); 2013 parameters.codecs.push_back(kCn16000Codec);
2012 parameters.codecs[1].id = 97; 2014 parameters.codecs[1].id = 97;
2013 EXPECT_TRUE(channel_->SetSendParameters(parameters)); 2015 EXPECT_TRUE(channel_->SetSendParameters(parameters));
2014 2016
2015 // Verify ISAC and VAD are corrected configured on all send channels. 2017 // Verify ISAC and VAD are corrected configured on all send channels.
2016 webrtc::CodecInst gcodec; 2018 webrtc::CodecInst gcodec;
2017 for (uint32_t ssrc : kSsrcs4) { 2019 for (uint32_t ssrc : kSsrcs4) {
2018 int channel_num = voe_.GetChannelFromLocalSsrc(ssrc); 2020 int channel_num = GetSendStreamConfig(ssrc).voe_channel_id;
2019 EXPECT_EQ(0, voe_.GetSendCodec(channel_num, gcodec)); 2021 EXPECT_EQ(0, voe_.GetSendCodec(channel_num, gcodec));
2020 EXPECT_STREQ("ISAC", gcodec.plname); 2022 EXPECT_STREQ("ISAC", gcodec.plname);
2021 EXPECT_TRUE(voe_.GetVAD(channel_num)); 2023 EXPECT_TRUE(voe_.GetVAD(channel_num));
2022 EXPECT_EQ(97, voe_.GetSendCNPayloadType(channel_num, true)); 2024 EXPECT_EQ(97, voe_.GetSendCNPayloadType(channel_num, true));
2023 } 2025 }
2024 2026
2025 // Change to PCMU(8K) and CN(16K). VAD should not be activated. 2027 // Change to PCMU(8K) and CN(16K). VAD should not be activated.
2026 parameters.codecs[0] = kPcmuCodec; 2028 parameters.codecs[0] = kPcmuCodec;
2027 EXPECT_TRUE(channel_->SetSendParameters(parameters)); 2029 EXPECT_TRUE(channel_->SetSendParameters(parameters));
2028 for (uint32_t ssrc : kSsrcs4) { 2030 for (uint32_t ssrc : kSsrcs4) {
2029 int channel_num = voe_.GetChannelFromLocalSsrc(ssrc); 2031 int channel_num = GetSendStreamConfig(ssrc).voe_channel_id;
2030 EXPECT_EQ(0, voe_.GetSendCodec(channel_num, gcodec)); 2032 EXPECT_EQ(0, voe_.GetSendCodec(channel_num, gcodec));
2031 EXPECT_STREQ("PCMU", gcodec.plname); 2033 EXPECT_STREQ("PCMU", gcodec.plname);
2032 EXPECT_FALSE(voe_.GetVAD(channel_num)); 2034 EXPECT_FALSE(voe_.GetVAD(channel_num));
2033 } 2035 }
2034 } 2036 }
2035 2037
2036 // Test we can SetSend on all send streams correctly. 2038 // Test we can SetSend on all send streams correctly.
2037 TEST_F(WebRtcVoiceEngineTestFake, SetSendWithMultipleSendStreams) { 2039 TEST_F(WebRtcVoiceEngineTestFake, SetSendWithMultipleSendStreams) {
2038 SetupForMultiSendStream(); 2040 SetupForMultiSendStream();
2039 2041
2040 // Create the send channels and they should be a SEND_NOTHING date. 2042 // Create the send channels and they should be a SEND_NOTHING date.
2041 for (uint32_t ssrc : kSsrcs4) { 2043 for (uint32_t ssrc : kSsrcs4) {
2042 EXPECT_TRUE(channel_->AddSendStream( 2044 EXPECT_TRUE(channel_->AddSendStream(
2043 cricket::StreamParams::CreateLegacy(ssrc))); 2045 cricket::StreamParams::CreateLegacy(ssrc)));
2044 int channel_num = voe_.GetLastChannel(); 2046 int channel_num = voe_.GetLastChannel();
2045 EXPECT_FALSE(voe_.GetSend(channel_num)); 2047 EXPECT_FALSE(voe_.GetSend(channel_num));
2046 } 2048 }
2047 2049
2048 // Set the global state for starting sending. 2050 // Set the global state for starting sending.
2049 EXPECT_TRUE(channel_->SetSend(cricket::SEND_MICROPHONE)); 2051 EXPECT_TRUE(channel_->SetSend(cricket::SEND_MICROPHONE));
2050 for (uint32_t ssrc : kSsrcs4) { 2052 for (uint32_t ssrc : kSsrcs4) {
2051 // Verify that we are in a sending state for all the send streams. 2053 // Verify that we are in a sending state for all the send streams.
2052 int channel_num = voe_.GetChannelFromLocalSsrc(ssrc); 2054 int channel_num = GetSendStreamConfig(ssrc).voe_channel_id;
2053 EXPECT_TRUE(voe_.GetSend(channel_num)); 2055 EXPECT_TRUE(voe_.GetSend(channel_num));
2054 } 2056 }
2055 2057
2056 // Set the global state for stopping sending. 2058 // Set the global state for stopping sending.
2057 EXPECT_TRUE(channel_->SetSend(cricket::SEND_NOTHING)); 2059 EXPECT_TRUE(channel_->SetSend(cricket::SEND_NOTHING));
2058 for (uint32_t ssrc : kSsrcs4) { 2060 for (uint32_t ssrc : kSsrcs4) {
2059 // Verify that we are in a stop state for all the send streams. 2061 // Verify that we are in a stop state for all the send streams.
2060 int channel_num = voe_.GetChannelFromLocalSsrc(ssrc); 2062 int channel_num = GetSendStreamConfig(ssrc).voe_channel_id;
2061 EXPECT_FALSE(voe_.GetSend(channel_num)); 2063 EXPECT_FALSE(voe_.GetSend(channel_num));
2062 } 2064 }
2063 } 2065 }
2064 2066
2065 // Test we can set the correct statistics on all send streams. 2067 // Test we can set the correct statistics on all send streams.
2066 TEST_F(WebRtcVoiceEngineTestFake, GetStatsWithMultipleSendStreams) { 2068 TEST_F(WebRtcVoiceEngineTestFake, GetStatsWithMultipleSendStreams) {
2067 SetupForMultiSendStream(); 2069 SetupForMultiSendStream();
2068 2070
2069 // Create send streams. 2071 // Create send streams.
2070 for (uint32_t ssrc : kSsrcs4) { 2072 for (uint32_t ssrc : kSsrcs4) {
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
2331 "tracefilter " + rtc::ToString(webrtc::kTraceDefault); 2333 "tracefilter " + rtc::ToString(webrtc::kTraceDefault);
2332 engine_.SetLogging(rtc::LS_VERBOSE, filter.c_str()); 2334 engine_.SetLogging(rtc::LS_VERBOSE, filter.c_str());
2333 EXPECT_EQ(static_cast<unsigned int>(webrtc::kTraceDefault), 2335 EXPECT_EQ(static_cast<unsigned int>(webrtc::kTraceDefault),
2334 trace_wrapper_->filter_); 2336 trace_wrapper_->filter_);
2335 } 2337 }
2336 2338
2337 // Test that we can set the outgoing SSRC properly. 2339 // Test that we can set the outgoing SSRC properly.
2338 // SSRC is set in SetupEngine by calling AddSendStream. 2340 // SSRC is set in SetupEngine by calling AddSendStream.
2339 TEST_F(WebRtcVoiceEngineTestFake, SetSendSsrc) { 2341 TEST_F(WebRtcVoiceEngineTestFake, SetSendSsrc) {
2340 EXPECT_TRUE(SetupEngineWithSendStream()); 2342 EXPECT_TRUE(SetupEngineWithSendStream());
2341 EXPECT_EQ(kSsrc1, voe_.GetLocalSSRC(voe_.GetLastChannel())); 2343 EXPECT_TRUE(call_.GetAudioSendStream(kSsrc1));
2342 } 2344 }
2343 2345
2344 TEST_F(WebRtcVoiceEngineTestFake, GetStats) { 2346 TEST_F(WebRtcVoiceEngineTestFake, GetStats) {
2345 // Setup. We need send codec to be set to get all stats. 2347 // Setup. We need send codec to be set to get all stats.
2346 EXPECT_TRUE(SetupEngineWithSendStream()); 2348 EXPECT_TRUE(SetupEngineWithSendStream());
2347 SetAudioSendStreamStats(); 2349 SetAudioSendStreamStats();
2348 // SetupEngineWithSendStream adds a send stream with kSsrc1, so the receive 2350 // SetupEngineWithSendStream adds a send stream with kSsrc1, so the receive
2349 // stream has to use a different SSRC. 2351 // stream has to use a different SSRC.
2350 EXPECT_TRUE(channel_->AddRecvStream( 2352 EXPECT_TRUE(channel_->AddRecvStream(
2351 cricket::StreamParams::CreateLegacy(kSsrc2))); 2353 cricket::StreamParams::CreateLegacy(kSsrc2)));
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
2392 EXPECT_EQ(1u, info.senders.size()); 2394 EXPECT_EQ(1u, info.senders.size());
2393 EXPECT_EQ(1u, info.receivers.size()); 2395 EXPECT_EQ(1u, info.receivers.size());
2394 VerifyVoiceReceiverInfo(info.receivers[0]); 2396 VerifyVoiceReceiverInfo(info.receivers[0]);
2395 } 2397 }
2396 } 2398 }
2397 2399
2398 // Test that we can set the outgoing SSRC properly with multiple streams. 2400 // Test that we can set the outgoing SSRC properly with multiple streams.
2399 // SSRC is set in SetupEngine by calling AddSendStream. 2401 // SSRC is set in SetupEngine by calling AddSendStream.
2400 TEST_F(WebRtcVoiceEngineTestFake, SetSendSsrcWithMultipleStreams) { 2402 TEST_F(WebRtcVoiceEngineTestFake, SetSendSsrcWithMultipleStreams) {
2401 EXPECT_TRUE(SetupEngineWithSendStream()); 2403 EXPECT_TRUE(SetupEngineWithSendStream());
2402 EXPECT_EQ(kSsrc1, voe_.GetLocalSSRC(voe_.GetLastChannel())); 2404 EXPECT_TRUE(call_.GetAudioSendStream(kSsrc1));
2403 EXPECT_TRUE(channel_->AddRecvStream(cricket::StreamParams::CreateLegacy(2))); 2405 EXPECT_TRUE(channel_->AddRecvStream(cricket::StreamParams::CreateLegacy(2)));
2404 EXPECT_EQ(kSsrc1, voe_.GetLocalSSRC(voe_.GetLastChannel())); 2406 EXPECT_EQ(kSsrc1, voe_.GetLocalSSRC(voe_.GetLastChannel()));
2405 } 2407 }
2406 2408
2407 // Test that the local SSRC is the same on sending and receiving channels if the 2409 // Test that the local SSRC is the same on sending and receiving channels if the
2408 // receive channel is created before the send channel. 2410 // receive channel is created before the send channel.
2409 TEST_F(WebRtcVoiceEngineTestFake, SetSendSsrcAfterCreatingReceiveChannel) { 2411 TEST_F(WebRtcVoiceEngineTestFake, SetSendSsrcAfterCreatingReceiveChannel) {
2410 EXPECT_TRUE(engine_.Init(rtc::Thread::Current())); 2412 EXPECT_TRUE(engine_.Init(rtc::Thread::Current()));
2411 channel_ = engine_.CreateChannel(&call_, cricket::AudioOptions()); 2413 channel_ = engine_.CreateChannel(&call_, cricket::AudioOptions());
2412 2414
2413 EXPECT_TRUE(channel_->AddRecvStream(cricket::StreamParams::CreateLegacy(1))); 2415 EXPECT_TRUE(channel_->AddRecvStream(cricket::StreamParams::CreateLegacy(1)));
2414 int receive_channel_num = voe_.GetLastChannel(); 2416 int receive_channel_num = voe_.GetLastChannel();
2415 EXPECT_TRUE(channel_->AddSendStream( 2417 EXPECT_TRUE(channel_->AddSendStream(
2416 cricket::StreamParams::CreateLegacy(1234))); 2418 cricket::StreamParams::CreateLegacy(1234)));
2417 int send_channel_num = voe_.GetLastChannel();
2418 2419
2419 EXPECT_EQ(1234U, voe_.GetLocalSSRC(send_channel_num)); 2420 EXPECT_TRUE(call_.GetAudioSendStream(1234));
2420 EXPECT_EQ(1234U, voe_.GetLocalSSRC(receive_channel_num)); 2421 EXPECT_EQ(1234U, voe_.GetLocalSSRC(receive_channel_num));
2421 } 2422 }
2422 2423
2423 // Test that we can properly receive packets. 2424 // Test that we can properly receive packets.
2424 TEST_F(WebRtcVoiceEngineTestFake, Recv) { 2425 TEST_F(WebRtcVoiceEngineTestFake, Recv) {
2425 EXPECT_TRUE(SetupEngine()); 2426 EXPECT_TRUE(SetupEngine());
2426 DeliverPacket(kPcmuFrame, sizeof(kPcmuFrame)); 2427 DeliverPacket(kPcmuFrame, sizeof(kPcmuFrame));
2427 int channel_num = voe_.GetLastChannel(); 2428 int channel_num = voe_.GetLastChannel();
2428 EXPECT_TRUE(voe_.CheckPacket(channel_num, kPcmuFrame, 2429 EXPECT_TRUE(voe_.CheckPacket(channel_num, kPcmuFrame,
2429 sizeof(kPcmuFrame))); 2430 sizeof(kPcmuFrame)));
(...skipping 616 matching lines...) Expand 10 before | Expand all | Expand 10 after
3046 3047
3047 static const uint32_t kSsrcs[] = {1, 2, 3, 4}; 3048 static const uint32_t kSsrcs[] = {1, 2, 3, 4};
3048 for (unsigned int i = 0; i < arraysize(kSsrcs); ++i) { 3049 for (unsigned int i = 0; i < arraysize(kSsrcs); ++i) {
3049 EXPECT_TRUE(media_channel->AddRecvStream( 3050 EXPECT_TRUE(media_channel->AddRecvStream(
3050 cricket::StreamParams::CreateLegacy(kSsrcs[i]))); 3051 cricket::StreamParams::CreateLegacy(kSsrcs[i])));
3051 EXPECT_NE(nullptr, call_.GetAudioReceiveStream(kSsrcs[i])); 3052 EXPECT_NE(nullptr, call_.GetAudioReceiveStream(kSsrcs[i]));
3052 } 3053 }
3053 EXPECT_EQ(arraysize(kSsrcs), call_.GetAudioReceiveStreams().size()); 3054 EXPECT_EQ(arraysize(kSsrcs), call_.GetAudioReceiveStreams().size());
3054 } 3055 }
3055 3056
3057 // TODO(solenberg): Remove, once recv streams are configured through Call.
3058 // (This is then covered by TestSetRecvRtpHeaderExtensions.)
3056 TEST_F(WebRtcVoiceEngineTestFake, ConfiguresAudioReceiveStreamRtpExtensions) { 3059 TEST_F(WebRtcVoiceEngineTestFake, ConfiguresAudioReceiveStreamRtpExtensions) {
3057 // Test that setting the header extensions results in the expected state 3060 // Test that setting the header extensions results in the expected state
3058 // changes on an associated Call. 3061 // changes on an associated Call.
3059 std::vector<uint32_t> ssrcs; 3062 std::vector<uint32_t> ssrcs;
3060 ssrcs.push_back(223); 3063 ssrcs.push_back(223);
3061 ssrcs.push_back(224); 3064 ssrcs.push_back(224);
3062 3065
3063 EXPECT_TRUE(SetupEngineWithSendStream()); 3066 EXPECT_TRUE(SetupEngineWithSendStream());
3064 cricket::WebRtcVoiceMediaChannel* media_channel = 3067 cricket::WebRtcVoiceMediaChannel* media_channel =
3065 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_); 3068 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_);
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
3317 cricket::WebRtcVoiceEngine engine; 3320 cricket::WebRtcVoiceEngine engine;
3318 EXPECT_TRUE(engine.Init(rtc::Thread::Current())); 3321 EXPECT_TRUE(engine.Init(rtc::Thread::Current()));
3319 rtc::scoped_ptr<webrtc::Call> call( 3322 rtc::scoped_ptr<webrtc::Call> call(
3320 webrtc::Call::Create(webrtc::Call::Config())); 3323 webrtc::Call::Create(webrtc::Call::Config()));
3321 cricket::WebRtcVoiceMediaChannel channel(&engine, cricket::AudioOptions(), 3324 cricket::WebRtcVoiceMediaChannel channel(&engine, cricket::AudioOptions(),
3322 call.get()); 3325 call.get());
3323 cricket::AudioRecvParameters parameters; 3326 cricket::AudioRecvParameters parameters;
3324 parameters.codecs = engine.codecs(); 3327 parameters.codecs = engine.codecs();
3325 EXPECT_TRUE(channel.SetRecvParameters(parameters)); 3328 EXPECT_TRUE(channel.SetRecvParameters(parameters));
3326 } 3329 }
OLDNEW
« no previous file with comments | « talk/media/webrtc/webrtcvoiceengine.cc ('k') | webrtc/audio/audio_receive_stream_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698