| 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 1877 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2246 class WebRtcVoiceEngineWithSendSideBweTest : public WebRtcVoiceEngineTestFake { | 2244 class WebRtcVoiceEngineWithSendSideBweTest : public WebRtcVoiceEngineTestFake { |
| 2247 public: | 2245 public: |
| 2248 WebRtcVoiceEngineWithSendSideBweTest() | 2246 WebRtcVoiceEngineWithSendSideBweTest() |
| 2249 : WebRtcVoiceEngineTestFake("WebRTC-Audio-SendSideBwe/Enabled/") {} | 2247 : WebRtcVoiceEngineTestFake("WebRTC-Audio-SendSideBwe/Enabled/") {} |
| 2250 }; | 2248 }; |
| 2251 | 2249 |
| 2252 TEST_F(WebRtcVoiceEngineWithSendSideBweTest, | 2250 TEST_F(WebRtcVoiceEngineWithSendSideBweTest, |
| 2253 SupportsTransportSequenceNumberHeaderExtension) { | 2251 SupportsTransportSequenceNumberHeaderExtension) { |
| 2254 cricket::RtpCapabilities capabilities = engine_->GetCapabilities(); | 2252 cricket::RtpCapabilities capabilities = engine_->GetCapabilities(); |
| 2255 ASSERT_FALSE(capabilities.header_extensions.empty()); | 2253 ASSERT_FALSE(capabilities.header_extensions.empty()); |
| 2256 for (const cricket::RtpHeaderExtension& extension : | 2254 for (const webrtc::RtpExtension& extension : capabilities.header_extensions) { |
| 2257 capabilities.header_extensions) { | 2255 if (extension.uri == webrtc::RtpExtension::kTransportSequenceNumberUri) { |
| 2258 if (extension.uri == cricket::kRtpTransportSequenceNumberHeaderExtension) { | 2256 EXPECT_EQ(webrtc::RtpExtension::kTransportSequenceNumberDefaultId, |
| 2259 EXPECT_EQ(cricket::kRtpTransportSequenceNumberHeaderExtensionDefaultId, | |
| 2260 extension.id); | 2257 extension.id); |
| 2261 return; | 2258 return; |
| 2262 } | 2259 } |
| 2263 } | 2260 } |
| 2264 FAIL() << "Transport sequence number extension not in header-extension list."; | 2261 FAIL() << "Transport sequence number extension not in header-extension list."; |
| 2265 } | 2262 } |
| 2266 | 2263 |
| 2267 // Test support for audio level header extension. | 2264 // Test support for audio level header extension. |
| 2268 TEST_F(WebRtcVoiceEngineTestFake, SendAudioLevelHeaderExtensions) { | 2265 TEST_F(WebRtcVoiceEngineTestFake, SendAudioLevelHeaderExtensions) { |
| 2269 TestSetSendRtpHeaderExtensions(kRtpAudioLevelHeaderExtension); | 2266 TestSetSendRtpHeaderExtensions(webrtc::RtpExtension::kAudioLevelUri); |
| 2270 } | 2267 } |
| 2271 TEST_F(WebRtcVoiceEngineTestFake, RecvAudioLevelHeaderExtensions) { | 2268 TEST_F(WebRtcVoiceEngineTestFake, RecvAudioLevelHeaderExtensions) { |
| 2272 TestSetRecvRtpHeaderExtensions(kRtpAudioLevelHeaderExtension); | 2269 TestSetRecvRtpHeaderExtensions(webrtc::RtpExtension::kAudioLevelUri); |
| 2273 } | 2270 } |
| 2274 | 2271 |
| 2275 // Test support for absolute send time header extension. | 2272 // Test support for absolute send time header extension. |
| 2276 TEST_F(WebRtcVoiceEngineTestFake, SendAbsoluteSendTimeHeaderExtensions) { | 2273 TEST_F(WebRtcVoiceEngineTestFake, SendAbsoluteSendTimeHeaderExtensions) { |
| 2277 TestSetSendRtpHeaderExtensions(kRtpAbsoluteSenderTimeHeaderExtension); | 2274 TestSetSendRtpHeaderExtensions(webrtc::RtpExtension::kAbsSendTimeUri); |
| 2278 } | 2275 } |
| 2279 TEST_F(WebRtcVoiceEngineTestFake, RecvAbsoluteSendTimeHeaderExtensions) { | 2276 TEST_F(WebRtcVoiceEngineTestFake, RecvAbsoluteSendTimeHeaderExtensions) { |
| 2280 TestSetRecvRtpHeaderExtensions(kRtpAbsoluteSenderTimeHeaderExtension); | 2277 TestSetRecvRtpHeaderExtensions(webrtc::RtpExtension::kAbsSendTimeUri); |
| 2281 } | 2278 } |
| 2282 | 2279 |
| 2283 // Test that we can create a channel and start sending on it. | 2280 // Test that we can create a channel and start sending on it. |
| 2284 TEST_F(WebRtcVoiceEngineTestFake, Send) { | 2281 TEST_F(WebRtcVoiceEngineTestFake, Send) { |
| 2285 EXPECT_TRUE(SetupSendStream()); | 2282 EXPECT_TRUE(SetupSendStream()); |
| 2286 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); | 2283 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); |
| 2287 SetSend(channel_, true); | 2284 SetSend(channel_, true); |
| 2288 EXPECT_TRUE(GetSendStream(kSsrc1).IsSending()); | 2285 EXPECT_TRUE(GetSendStream(kSsrc1).IsSending()); |
| 2289 SetSend(channel_, false); | 2286 SetSend(channel_, false); |
| 2290 EXPECT_FALSE(GetSendStream(kSsrc1).IsSending()); | 2287 EXPECT_FALSE(GetSendStream(kSsrc1).IsSending()); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 2308 TEST_F(WebRtcVoiceEngineTestFake, SendStateWhenStreamsAreRecreated) { | 2305 TEST_F(WebRtcVoiceEngineTestFake, SendStateWhenStreamsAreRecreated) { |
| 2309 EXPECT_TRUE(SetupSendStream()); | 2306 EXPECT_TRUE(SetupSendStream()); |
| 2310 EXPECT_FALSE(GetSendStream(kSsrc1).IsSending()); | 2307 EXPECT_FALSE(GetSendStream(kSsrc1).IsSending()); |
| 2311 | 2308 |
| 2312 // Turn on sending. | 2309 // Turn on sending. |
| 2313 SetSend(channel_, true); | 2310 SetSend(channel_, true); |
| 2314 EXPECT_TRUE(GetSendStream(kSsrc1).IsSending()); | 2311 EXPECT_TRUE(GetSendStream(kSsrc1).IsSending()); |
| 2315 | 2312 |
| 2316 // Changing RTP header extensions will recreate the AudioSendStream. | 2313 // Changing RTP header extensions will recreate the AudioSendStream. |
| 2317 send_parameters_.extensions.push_back( | 2314 send_parameters_.extensions.push_back( |
| 2318 cricket::RtpHeaderExtension(kRtpAudioLevelHeaderExtension, 12)); | 2315 webrtc::RtpExtension(webrtc::RtpExtension::kAudioLevelUri, 12)); |
| 2319 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); | 2316 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); |
| 2320 EXPECT_TRUE(GetSendStream(kSsrc1).IsSending()); | 2317 EXPECT_TRUE(GetSendStream(kSsrc1).IsSending()); |
| 2321 | 2318 |
| 2322 // Turn off sending. | 2319 // Turn off sending. |
| 2323 SetSend(channel_, false); | 2320 SetSend(channel_, false); |
| 2324 EXPECT_FALSE(GetSendStream(kSsrc1).IsSending()); | 2321 EXPECT_FALSE(GetSendStream(kSsrc1).IsSending()); |
| 2325 | 2322 |
| 2326 // Changing RTP header extensions will recreate the AudioSendStream. | 2323 // Changing RTP header extensions will recreate the AudioSendStream. |
| 2327 send_parameters_.extensions.clear(); | 2324 send_parameters_.extensions.clear(); |
| 2328 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); | 2325 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); |
| (...skipping 1047 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3376 channel_->SetRecvParameters(recv_parameters); | 3373 channel_->SetRecvParameters(recv_parameters); |
| 3377 EXPECT_EQ(2, call_.GetAudioReceiveStreams().size()); | 3374 EXPECT_EQ(2, call_.GetAudioReceiveStreams().size()); |
| 3378 for (uint32_t ssrc : ssrcs) { | 3375 for (uint32_t ssrc : ssrcs) { |
| 3379 const auto* s = call_.GetAudioReceiveStream(ssrc); | 3376 const auto* s = call_.GetAudioReceiveStream(ssrc); |
| 3380 EXPECT_NE(nullptr, s); | 3377 EXPECT_NE(nullptr, s); |
| 3381 const auto& s_exts = s->GetConfig().rtp.extensions; | 3378 const auto& s_exts = s->GetConfig().rtp.extensions; |
| 3382 EXPECT_EQ(capabilities.header_extensions.size(), s_exts.size()); | 3379 EXPECT_EQ(capabilities.header_extensions.size(), s_exts.size()); |
| 3383 for (const auto& e_ext : capabilities.header_extensions) { | 3380 for (const auto& e_ext : capabilities.header_extensions) { |
| 3384 for (const auto& s_ext : s_exts) { | 3381 for (const auto& s_ext : s_exts) { |
| 3385 if (e_ext.id == s_ext.id) { | 3382 if (e_ext.id == s_ext.id) { |
| 3386 EXPECT_EQ(e_ext.uri, s_ext.name); | 3383 EXPECT_EQ(e_ext.uri, s_ext.uri); |
| 3387 } | 3384 } |
| 3388 } | 3385 } |
| 3389 } | 3386 } |
| 3390 } | 3387 } |
| 3391 | 3388 |
| 3392 // Disable receive extensions. | 3389 // Disable receive extensions. |
| 3393 channel_->SetRecvParameters(cricket::AudioRecvParameters()); | 3390 channel_->SetRecvParameters(cricket::AudioRecvParameters()); |
| 3394 for (uint32_t ssrc : ssrcs) { | 3391 for (uint32_t ssrc : ssrcs) { |
| 3395 const auto* s = call_.GetAudioReceiveStream(ssrc); | 3392 const auto* s = call_.GetAudioReceiveStream(ssrc); |
| 3396 EXPECT_NE(nullptr, s); | 3393 EXPECT_NE(nullptr, s); |
| (...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3673 TEST(WebRtcVoiceEngineTest, SetRecvCodecs) { | 3670 TEST(WebRtcVoiceEngineTest, SetRecvCodecs) { |
| 3674 cricket::WebRtcVoiceEngine engine(nullptr); | 3671 cricket::WebRtcVoiceEngine engine(nullptr); |
| 3675 std::unique_ptr<webrtc::Call> call( | 3672 std::unique_ptr<webrtc::Call> call( |
| 3676 webrtc::Call::Create(webrtc::Call::Config())); | 3673 webrtc::Call::Create(webrtc::Call::Config())); |
| 3677 cricket::WebRtcVoiceMediaChannel channel(&engine, cricket::MediaConfig(), | 3674 cricket::WebRtcVoiceMediaChannel channel(&engine, cricket::MediaConfig(), |
| 3678 cricket::AudioOptions(), call.get()); | 3675 cricket::AudioOptions(), call.get()); |
| 3679 cricket::AudioRecvParameters parameters; | 3676 cricket::AudioRecvParameters parameters; |
| 3680 parameters.codecs = engine.codecs(); | 3677 parameters.codecs = engine.codecs(); |
| 3681 EXPECT_TRUE(channel.SetRecvParameters(parameters)); | 3678 EXPECT_TRUE(channel.SetRecvParameters(parameters)); |
| 3682 } | 3679 } |
| OLD | NEW |