| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2008 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2008 The WebRTC project authors. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| 11 #include <memory> | 11 #include <memory> |
| 12 | 12 |
| 13 #include "webrtc/pc/channel.h" | 13 #include "webrtc/pc/channel.h" |
| 14 #include "webrtc/base/arraysize.h" | 14 #include "webrtc/base/arraysize.h" |
| 15 #include "webrtc/base/byteorder.h" | 15 #include "webrtc/base/byteorder.h" |
| 16 #include "webrtc/base/gunit.h" | 16 #include "webrtc/base/gunit.h" |
| 17 #include "webrtc/call.h" | 17 #include "webrtc/call.h" |
| 18 #include "webrtc/p2p/base/faketransportcontroller.h" | 18 #include "webrtc/p2p/base/faketransportcontroller.h" |
| 19 #include "webrtc/test/field_trial.h" | 19 #include "webrtc/test/field_trial.h" |
| 20 #include "webrtc/media/base/fakemediaengine.h" | 20 #include "webrtc/media/base/fakemediaengine.h" |
| 21 #include "webrtc/media/base/fakenetworkinterface.h" | 21 #include "webrtc/media/base/fakenetworkinterface.h" |
| 22 #include "webrtc/media/base/fakertp.h" | 22 #include "webrtc/media/base/fakertp.h" |
| 23 #include "webrtc/media/base/mediaconstants.h" | 23 #include "webrtc/media/base/mediaconstants.h" |
| 24 #include "webrtc/media/engine/fakewebrtccall.h" | 24 #include "webrtc/media/engine/fakewebrtccall.h" |
| 25 #include "webrtc/media/engine/fakewebrtcvoiceengine.h" | 25 #include "webrtc/media/engine/fakewebrtcvoiceengine.h" |
| 26 #include "webrtc/media/engine/webrtcvoiceengine.h" | 26 #include "webrtc/media/engine/webrtcvoiceengine.h" |
| 27 #include "webrtc/modules/audio_device/include/mock_audio_device.h" | 27 #include "webrtc/modules/audio_device/include/mock_audio_device.h" |
| 28 | 28 |
| 29 using cricket::kRtpAudioLevelHeaderExtension; | |
| 30 using cricket::kRtpAbsoluteSenderTimeHeaderExtension; | |
| 31 using testing::Return; | 29 using testing::Return; |
| 32 using testing::StrictMock; | 30 using testing::StrictMock; |
| 33 | 31 |
| 34 namespace { | 32 namespace { |
| 35 | 33 |
| 36 const cricket::AudioCodec kPcmuCodec(0, "PCMU", 8000, 64000, 1); | 34 const cricket::AudioCodec kPcmuCodec(0, "PCMU", 8000, 64000, 1); |
| 37 const cricket::AudioCodec kIsacCodec(103, "ISAC", 16000, 32000, 1); | 35 const cricket::AudioCodec kIsacCodec(103, "ISAC", 16000, 32000, 1); |
| 38 const cricket::AudioCodec kOpusCodec(111, "opus", 48000, 64000, 2); | 36 const cricket::AudioCodec kOpusCodec(111, "opus", 48000, 64000, 2); |
| 39 const cricket::AudioCodec kG722CodecVoE(9, "G722", 16000, 64000, 1); | 37 const cricket::AudioCodec kG722CodecVoE(9, "G722", 16000, 64000, 1); |
| 40 const cricket::AudioCodec kG722CodecSdp(9, "G722", 8000, 64000, 1); | 38 const cricket::AudioCodec kG722CodecSdp(9, "G722", 8000, 64000, 1); |
| (...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 282 EXPECT_EQ(expected_codec_bitrate, GetCodecBitrate(kSsrc1)); | 280 EXPECT_EQ(expected_codec_bitrate, GetCodecBitrate(kSsrc1)); |
| 283 } | 281 } |
| 284 | 282 |
| 285 void TestSetSendRtpHeaderExtensions(const std::string& ext) { | 283 void TestSetSendRtpHeaderExtensions(const std::string& ext) { |
| 286 EXPECT_TRUE(SetupSendStream()); | 284 EXPECT_TRUE(SetupSendStream()); |
| 287 | 285 |
| 288 // Ensure extensions are off by default. | 286 // Ensure extensions are off by default. |
| 289 EXPECT_EQ(0u, GetSendStreamConfig(kSsrc1).rtp.extensions.size()); | 287 EXPECT_EQ(0u, GetSendStreamConfig(kSsrc1).rtp.extensions.size()); |
| 290 | 288 |
| 291 // Ensure unknown extensions won't cause an error. | 289 // Ensure unknown extensions won't cause an error. |
| 292 send_parameters_.extensions.push_back(cricket::RtpHeaderExtension( | 290 send_parameters_.extensions.push_back( |
| 293 "urn:ietf:params:unknownextention", 1)); | 291 webrtc::RtpExtension("urn:ietf:params:unknownextention", 1)); |
| 294 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); | 292 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); |
| 295 EXPECT_EQ(0u, GetSendStreamConfig(kSsrc1).rtp.extensions.size()); | 293 EXPECT_EQ(0u, GetSendStreamConfig(kSsrc1).rtp.extensions.size()); |
| 296 | 294 |
| 297 // Ensure extensions stay off with an empty list of headers. | 295 // Ensure extensions stay off with an empty list of headers. |
| 298 send_parameters_.extensions.clear(); | 296 send_parameters_.extensions.clear(); |
| 299 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); | 297 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); |
| 300 EXPECT_EQ(0u, GetSendStreamConfig(kSsrc1).rtp.extensions.size()); | 298 EXPECT_EQ(0u, GetSendStreamConfig(kSsrc1).rtp.extensions.size()); |
| 301 | 299 |
| 302 // Ensure extension is set properly. | 300 // Ensure extension is set properly. |
| 303 const int id = 1; | 301 const int id = 1; |
| 304 send_parameters_.extensions.push_back(cricket::RtpHeaderExtension(ext, id)); | 302 send_parameters_.extensions.push_back(webrtc::RtpExtension(ext, id)); |
| 305 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); | 303 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); |
| 306 EXPECT_EQ(1u, GetSendStreamConfig(kSsrc1).rtp.extensions.size()); | 304 EXPECT_EQ(1u, GetSendStreamConfig(kSsrc1).rtp.extensions.size()); |
| 307 EXPECT_EQ(ext, GetSendStreamConfig(kSsrc1).rtp.extensions[0].name); | 305 EXPECT_EQ(ext, GetSendStreamConfig(kSsrc1).rtp.extensions[0].uri); |
| 308 EXPECT_EQ(id, GetSendStreamConfig(kSsrc1).rtp.extensions[0].id); | 306 EXPECT_EQ(id, GetSendStreamConfig(kSsrc1).rtp.extensions[0].id); |
| 309 | 307 |
| 310 // Ensure extension is set properly on new stream. | 308 // Ensure extension is set properly on new stream. |
| 311 EXPECT_TRUE(channel_->AddSendStream( | 309 EXPECT_TRUE(channel_->AddSendStream( |
| 312 cricket::StreamParams::CreateLegacy(kSsrc2))); | 310 cricket::StreamParams::CreateLegacy(kSsrc2))); |
| 313 EXPECT_NE(call_.GetAudioSendStream(kSsrc1), | 311 EXPECT_NE(call_.GetAudioSendStream(kSsrc1), |
| 314 call_.GetAudioSendStream(kSsrc2)); | 312 call_.GetAudioSendStream(kSsrc2)); |
| 315 EXPECT_EQ(1u, GetSendStreamConfig(kSsrc2).rtp.extensions.size()); | 313 EXPECT_EQ(1u, GetSendStreamConfig(kSsrc2).rtp.extensions.size()); |
| 316 EXPECT_EQ(ext, GetSendStreamConfig(kSsrc2).rtp.extensions[0].name); | 314 EXPECT_EQ(ext, GetSendStreamConfig(kSsrc2).rtp.extensions[0].uri); |
| 317 EXPECT_EQ(id, GetSendStreamConfig(kSsrc2).rtp.extensions[0].id); | 315 EXPECT_EQ(id, GetSendStreamConfig(kSsrc2).rtp.extensions[0].id); |
| 318 | 316 |
| 319 // Ensure all extensions go back off with an empty list. | 317 // Ensure all extensions go back off with an empty list. |
| 320 send_parameters_.codecs.push_back(kPcmuCodec); | 318 send_parameters_.codecs.push_back(kPcmuCodec); |
| 321 send_parameters_.extensions.clear(); | 319 send_parameters_.extensions.clear(); |
| 322 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); | 320 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); |
| 323 EXPECT_EQ(0u, GetSendStreamConfig(kSsrc1).rtp.extensions.size()); | 321 EXPECT_EQ(0u, GetSendStreamConfig(kSsrc1).rtp.extensions.size()); |
| 324 EXPECT_EQ(0u, GetSendStreamConfig(kSsrc2).rtp.extensions.size()); | 322 EXPECT_EQ(0u, GetSendStreamConfig(kSsrc2).rtp.extensions.size()); |
| 325 } | 323 } |
| 326 | 324 |
| 327 void TestSetRecvRtpHeaderExtensions(const std::string& ext) { | 325 void TestSetRecvRtpHeaderExtensions(const std::string& ext) { |
| 328 EXPECT_TRUE(SetupRecvStream()); | 326 EXPECT_TRUE(SetupRecvStream()); |
| 329 | 327 |
| 330 // Ensure extensions are off by default. | 328 // Ensure extensions are off by default. |
| 331 EXPECT_EQ(0u, GetRecvStreamConfig(kSsrc1).rtp.extensions.size()); | 329 EXPECT_EQ(0u, GetRecvStreamConfig(kSsrc1).rtp.extensions.size()); |
| 332 | 330 |
| 333 // Ensure unknown extensions won't cause an error. | 331 // Ensure unknown extensions won't cause an error. |
| 334 recv_parameters_.extensions.push_back(cricket::RtpHeaderExtension( | 332 recv_parameters_.extensions.push_back( |
| 335 "urn:ietf:params:unknownextention", 1)); | 333 webrtc::RtpExtension("urn:ietf:params:unknownextention", 1)); |
| 336 EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_)); | 334 EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_)); |
| 337 EXPECT_EQ(0u, GetRecvStreamConfig(kSsrc1).rtp.extensions.size()); | 335 EXPECT_EQ(0u, GetRecvStreamConfig(kSsrc1).rtp.extensions.size()); |
| 338 | 336 |
| 339 // Ensure extensions stay off with an empty list of headers. | 337 // Ensure extensions stay off with an empty list of headers. |
| 340 recv_parameters_.extensions.clear(); | 338 recv_parameters_.extensions.clear(); |
| 341 EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_)); | 339 EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_)); |
| 342 EXPECT_EQ(0u, GetRecvStreamConfig(kSsrc1).rtp.extensions.size()); | 340 EXPECT_EQ(0u, GetRecvStreamConfig(kSsrc1).rtp.extensions.size()); |
| 343 | 341 |
| 344 // Ensure extension is set properly. | 342 // Ensure extension is set properly. |
| 345 const int id = 2; | 343 const int id = 2; |
| 346 recv_parameters_.extensions.push_back(cricket::RtpHeaderExtension(ext, id)); | 344 recv_parameters_.extensions.push_back(webrtc::RtpExtension(ext, id)); |
| 347 EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_)); | 345 EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_)); |
| 348 EXPECT_EQ(1u, GetRecvStreamConfig(kSsrc1).rtp.extensions.size()); | 346 EXPECT_EQ(1u, GetRecvStreamConfig(kSsrc1).rtp.extensions.size()); |
| 349 EXPECT_EQ(ext, GetRecvStreamConfig(kSsrc1).rtp.extensions[0].name); | 347 EXPECT_EQ(ext, GetRecvStreamConfig(kSsrc1).rtp.extensions[0].uri); |
| 350 EXPECT_EQ(id, GetRecvStreamConfig(kSsrc1).rtp.extensions[0].id); | 348 EXPECT_EQ(id, GetRecvStreamConfig(kSsrc1).rtp.extensions[0].id); |
| 351 | 349 |
| 352 // Ensure extension is set properly on new stream. | 350 // Ensure extension is set properly on new stream. |
| 353 EXPECT_TRUE(channel_->AddRecvStream( | 351 EXPECT_TRUE(channel_->AddRecvStream( |
| 354 cricket::StreamParams::CreateLegacy(kSsrc2))); | 352 cricket::StreamParams::CreateLegacy(kSsrc2))); |
| 355 EXPECT_NE(call_.GetAudioReceiveStream(kSsrc1), | 353 EXPECT_NE(call_.GetAudioReceiveStream(kSsrc1), |
| 356 call_.GetAudioReceiveStream(kSsrc2)); | 354 call_.GetAudioReceiveStream(kSsrc2)); |
| 357 EXPECT_EQ(1u, GetRecvStreamConfig(kSsrc2).rtp.extensions.size()); | 355 EXPECT_EQ(1u, GetRecvStreamConfig(kSsrc2).rtp.extensions.size()); |
| 358 EXPECT_EQ(ext, GetRecvStreamConfig(kSsrc2).rtp.extensions[0].name); | 356 EXPECT_EQ(ext, GetRecvStreamConfig(kSsrc2).rtp.extensions[0].uri); |
| 359 EXPECT_EQ(id, GetRecvStreamConfig(kSsrc2).rtp.extensions[0].id); | 357 EXPECT_EQ(id, GetRecvStreamConfig(kSsrc2).rtp.extensions[0].id); |
| 360 | 358 |
| 361 // Ensure all extensions go back off with an empty list. | 359 // Ensure all extensions go back off with an empty list. |
| 362 recv_parameters_.extensions.clear(); | 360 recv_parameters_.extensions.clear(); |
| 363 EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_)); | 361 EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_)); |
| 364 EXPECT_EQ(0u, GetRecvStreamConfig(kSsrc1).rtp.extensions.size()); | 362 EXPECT_EQ(0u, GetRecvStreamConfig(kSsrc1).rtp.extensions.size()); |
| 365 EXPECT_EQ(0u, GetRecvStreamConfig(kSsrc2).rtp.extensions.size()); | 363 EXPECT_EQ(0u, GetRecvStreamConfig(kSsrc2).rtp.extensions.size()); |
| 366 } | 364 } |
| 367 | 365 |
| 368 webrtc::AudioSendStream::Stats GetAudioSendStreamStats() const { | 366 webrtc::AudioSendStream::Stats GetAudioSendStreamStats() const { |
| (...skipping 1848 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2217 class WebRtcVoiceEngineWithSendSideBweTest : public WebRtcVoiceEngineTestFake { | 2215 class WebRtcVoiceEngineWithSendSideBweTest : public WebRtcVoiceEngineTestFake { |
| 2218 public: | 2216 public: |
| 2219 WebRtcVoiceEngineWithSendSideBweTest() | 2217 WebRtcVoiceEngineWithSendSideBweTest() |
| 2220 : WebRtcVoiceEngineTestFake("WebRTC-Audio-SendSideBwe/Enabled/") {} | 2218 : WebRtcVoiceEngineTestFake("WebRTC-Audio-SendSideBwe/Enabled/") {} |
| 2221 }; | 2219 }; |
| 2222 | 2220 |
| 2223 TEST_F(WebRtcVoiceEngineWithSendSideBweTest, | 2221 TEST_F(WebRtcVoiceEngineWithSendSideBweTest, |
| 2224 SupportsTransportSequenceNumberHeaderExtension) { | 2222 SupportsTransportSequenceNumberHeaderExtension) { |
| 2225 cricket::RtpCapabilities capabilities = engine_->GetCapabilities(); | 2223 cricket::RtpCapabilities capabilities = engine_->GetCapabilities(); |
| 2226 ASSERT_FALSE(capabilities.header_extensions.empty()); | 2224 ASSERT_FALSE(capabilities.header_extensions.empty()); |
| 2227 for (const cricket::RtpHeaderExtension& extension : | 2225 for (const webrtc::RtpExtension& extension : capabilities.header_extensions) { |
| 2228 capabilities.header_extensions) { | 2226 if (extension.uri == webrtc::RtpExtension::kTransportSequenceNumberUri) { |
| 2229 if (extension.uri == cricket::kRtpTransportSequenceNumberHeaderExtension) { | 2227 EXPECT_EQ(webrtc::RtpExtension::kTransportSequenceNumberDefaultId, |
| 2230 EXPECT_EQ(cricket::kRtpTransportSequenceNumberHeaderExtensionDefaultId, | |
| 2231 extension.id); | 2228 extension.id); |
| 2232 return; | 2229 return; |
| 2233 } | 2230 } |
| 2234 } | 2231 } |
| 2235 FAIL() << "Transport sequence number extension not in header-extension list."; | 2232 FAIL() << "Transport sequence number extension not in header-extension list."; |
| 2236 } | 2233 } |
| 2237 | 2234 |
| 2238 // Test support for audio level header extension. | 2235 // Test support for audio level header extension. |
| 2239 TEST_F(WebRtcVoiceEngineTestFake, SendAudioLevelHeaderExtensions) { | 2236 TEST_F(WebRtcVoiceEngineTestFake, SendAudioLevelHeaderExtensions) { |
| 2240 TestSetSendRtpHeaderExtensions(kRtpAudioLevelHeaderExtension); | 2237 TestSetSendRtpHeaderExtensions(webrtc::RtpExtension::kAudioLevelUri); |
| 2241 } | 2238 } |
| 2242 TEST_F(WebRtcVoiceEngineTestFake, RecvAudioLevelHeaderExtensions) { | 2239 TEST_F(WebRtcVoiceEngineTestFake, RecvAudioLevelHeaderExtensions) { |
| 2243 TestSetRecvRtpHeaderExtensions(kRtpAudioLevelHeaderExtension); | 2240 TestSetRecvRtpHeaderExtensions(webrtc::RtpExtension::kAudioLevelUri); |
| 2244 } | 2241 } |
| 2245 | 2242 |
| 2246 // Test support for absolute send time header extension. | 2243 // Test support for absolute send time header extension. |
| 2247 TEST_F(WebRtcVoiceEngineTestFake, SendAbsoluteSendTimeHeaderExtensions) { | 2244 TEST_F(WebRtcVoiceEngineTestFake, SendAbsoluteSendTimeHeaderExtensions) { |
| 2248 TestSetSendRtpHeaderExtensions(kRtpAbsoluteSenderTimeHeaderExtension); | 2245 TestSetSendRtpHeaderExtensions(webrtc::RtpExtension::kAbsSendTimeUri); |
| 2249 } | 2246 } |
| 2250 TEST_F(WebRtcVoiceEngineTestFake, RecvAbsoluteSendTimeHeaderExtensions) { | 2247 TEST_F(WebRtcVoiceEngineTestFake, RecvAbsoluteSendTimeHeaderExtensions) { |
| 2251 TestSetRecvRtpHeaderExtensions(kRtpAbsoluteSenderTimeHeaderExtension); | 2248 TestSetRecvRtpHeaderExtensions(webrtc::RtpExtension::kAbsSendTimeUri); |
| 2252 } | 2249 } |
| 2253 | 2250 |
| 2254 // Test that we can create a channel and start sending on it. | 2251 // Test that we can create a channel and start sending on it. |
| 2255 TEST_F(WebRtcVoiceEngineTestFake, Send) { | 2252 TEST_F(WebRtcVoiceEngineTestFake, Send) { |
| 2256 EXPECT_TRUE(SetupSendStream()); | 2253 EXPECT_TRUE(SetupSendStream()); |
| 2257 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); | 2254 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); |
| 2258 SetSend(channel_, true); | 2255 SetSend(channel_, true); |
| 2259 EXPECT_TRUE(GetSendStream(kSsrc1).IsSending()); | 2256 EXPECT_TRUE(GetSendStream(kSsrc1).IsSending()); |
| 2260 SetSend(channel_, false); | 2257 SetSend(channel_, false); |
| 2261 EXPECT_FALSE(GetSendStream(kSsrc1).IsSending()); | 2258 EXPECT_FALSE(GetSendStream(kSsrc1).IsSending()); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 2279 TEST_F(WebRtcVoiceEngineTestFake, SendStateWhenStreamsAreRecreated) { | 2276 TEST_F(WebRtcVoiceEngineTestFake, SendStateWhenStreamsAreRecreated) { |
| 2280 EXPECT_TRUE(SetupSendStream()); | 2277 EXPECT_TRUE(SetupSendStream()); |
| 2281 EXPECT_FALSE(GetSendStream(kSsrc1).IsSending()); | 2278 EXPECT_FALSE(GetSendStream(kSsrc1).IsSending()); |
| 2282 | 2279 |
| 2283 // Turn on sending. | 2280 // Turn on sending. |
| 2284 SetSend(channel_, true); | 2281 SetSend(channel_, true); |
| 2285 EXPECT_TRUE(GetSendStream(kSsrc1).IsSending()); | 2282 EXPECT_TRUE(GetSendStream(kSsrc1).IsSending()); |
| 2286 | 2283 |
| 2287 // Changing RTP header extensions will recreate the AudioSendStream. | 2284 // Changing RTP header extensions will recreate the AudioSendStream. |
| 2288 send_parameters_.extensions.push_back( | 2285 send_parameters_.extensions.push_back( |
| 2289 cricket::RtpHeaderExtension(kRtpAudioLevelHeaderExtension, 12)); | 2286 webrtc::RtpExtension(webrtc::RtpExtension::kAudioLevelUri, 12)); |
| 2290 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); | 2287 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); |
| 2291 EXPECT_TRUE(GetSendStream(kSsrc1).IsSending()); | 2288 EXPECT_TRUE(GetSendStream(kSsrc1).IsSending()); |
| 2292 | 2289 |
| 2293 // Turn off sending. | 2290 // Turn off sending. |
| 2294 SetSend(channel_, false); | 2291 SetSend(channel_, false); |
| 2295 EXPECT_FALSE(GetSendStream(kSsrc1).IsSending()); | 2292 EXPECT_FALSE(GetSendStream(kSsrc1).IsSending()); |
| 2296 | 2293 |
| 2297 // Changing RTP header extensions will recreate the AudioSendStream. | 2294 // Changing RTP header extensions will recreate the AudioSendStream. |
| 2298 send_parameters_.extensions.clear(); | 2295 send_parameters_.extensions.clear(); |
| 2299 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); | 2296 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); |
| (...skipping 1047 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3347 channel_->SetRecvParameters(recv_parameters); | 3344 channel_->SetRecvParameters(recv_parameters); |
| 3348 EXPECT_EQ(2, call_.GetAudioReceiveStreams().size()); | 3345 EXPECT_EQ(2, call_.GetAudioReceiveStreams().size()); |
| 3349 for (uint32_t ssrc : ssrcs) { | 3346 for (uint32_t ssrc : ssrcs) { |
| 3350 const auto* s = call_.GetAudioReceiveStream(ssrc); | 3347 const auto* s = call_.GetAudioReceiveStream(ssrc); |
| 3351 EXPECT_NE(nullptr, s); | 3348 EXPECT_NE(nullptr, s); |
| 3352 const auto& s_exts = s->GetConfig().rtp.extensions; | 3349 const auto& s_exts = s->GetConfig().rtp.extensions; |
| 3353 EXPECT_EQ(capabilities.header_extensions.size(), s_exts.size()); | 3350 EXPECT_EQ(capabilities.header_extensions.size(), s_exts.size()); |
| 3354 for (const auto& e_ext : capabilities.header_extensions) { | 3351 for (const auto& e_ext : capabilities.header_extensions) { |
| 3355 for (const auto& s_ext : s_exts) { | 3352 for (const auto& s_ext : s_exts) { |
| 3356 if (e_ext.id == s_ext.id) { | 3353 if (e_ext.id == s_ext.id) { |
| 3357 EXPECT_EQ(e_ext.uri, s_ext.name); | 3354 EXPECT_EQ(e_ext.uri, s_ext.uri); |
| 3358 } | 3355 } |
| 3359 } | 3356 } |
| 3360 } | 3357 } |
| 3361 } | 3358 } |
| 3362 | 3359 |
| 3363 // Disable receive extensions. | 3360 // Disable receive extensions. |
| 3364 channel_->SetRecvParameters(cricket::AudioRecvParameters()); | 3361 channel_->SetRecvParameters(cricket::AudioRecvParameters()); |
| 3365 for (uint32_t ssrc : ssrcs) { | 3362 for (uint32_t ssrc : ssrcs) { |
| 3366 const auto* s = call_.GetAudioReceiveStream(ssrc); | 3363 const auto* s = call_.GetAudioReceiveStream(ssrc); |
| 3367 EXPECT_NE(nullptr, s); | 3364 EXPECT_NE(nullptr, s); |
| (...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3644 TEST(WebRtcVoiceEngineTest, SetRecvCodecs) { | 3641 TEST(WebRtcVoiceEngineTest, SetRecvCodecs) { |
| 3645 cricket::WebRtcVoiceEngine engine(nullptr); | 3642 cricket::WebRtcVoiceEngine engine(nullptr); |
| 3646 std::unique_ptr<webrtc::Call> call( | 3643 std::unique_ptr<webrtc::Call> call( |
| 3647 webrtc::Call::Create(webrtc::Call::Config())); | 3644 webrtc::Call::Create(webrtc::Call::Config())); |
| 3648 cricket::WebRtcVoiceMediaChannel channel(&engine, cricket::MediaConfig(), | 3645 cricket::WebRtcVoiceMediaChannel channel(&engine, cricket::MediaConfig(), |
| 3649 cricket::AudioOptions(), call.get()); | 3646 cricket::AudioOptions(), call.get()); |
| 3650 cricket::AudioRecvParameters parameters; | 3647 cricket::AudioRecvParameters parameters; |
| 3651 parameters.codecs = engine.codecs(); | 3648 parameters.codecs = engine.codecs(); |
| 3652 EXPECT_TRUE(channel.SetRecvParameters(parameters)); | 3649 EXPECT_TRUE(channel.SetRecvParameters(parameters)); |
| 3653 } | 3650 } |
| OLD | NEW |