OLD | NEW |
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 3336 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3347 CoUninitialize(); | 3347 CoUninitialize(); |
3348 delete engine; | 3348 delete engine; |
3349 | 3349 |
3350 // Ensure refcount is 0. | 3350 // Ensure refcount is 0. |
3351 EXPECT_EQ(S_OK, CoInitializeEx(NULL, COINIT_MULTITHREADED)); | 3351 EXPECT_EQ(S_OK, CoInitializeEx(NULL, COINIT_MULTITHREADED)); |
3352 CoUninitialize(); | 3352 CoUninitialize(); |
3353 } | 3353 } |
3354 #endif | 3354 #endif |
3355 | 3355 |
3356 TEST_F(WebRtcVoiceEngineTestFake, SetsSyncGroupFromSyncLabel) { | 3356 TEST_F(WebRtcVoiceEngineTestFake, SetsSyncGroupFromSyncLabel) { |
3357 cricket::FakeCall call(webrtc::Call::Config(nullptr)); | 3357 cricket::FakeCall call((webrtc::Call::Config())); |
3358 const uint32 kAudioSsrc = 123; | 3358 const uint32 kAudioSsrc = 123; |
3359 const std::string kSyncLabel = "AvSyncLabel"; | 3359 const std::string kSyncLabel = "AvSyncLabel"; |
3360 | 3360 |
3361 EXPECT_TRUE(SetupEngine()); | 3361 EXPECT_TRUE(SetupEngine()); |
3362 cricket::WebRtcVoiceMediaChannel* media_channel = | 3362 cricket::WebRtcVoiceMediaChannel* media_channel = |
3363 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_); | 3363 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_); |
3364 media_channel->SetCall(&call); | 3364 media_channel->SetCall(&call); |
3365 cricket::StreamParams sp = cricket::StreamParams::CreateLegacy(kAudioSsrc); | 3365 cricket::StreamParams sp = cricket::StreamParams::CreateLegacy(kAudioSsrc); |
3366 sp.sync_label = kSyncLabel; | 3366 sp.sync_label = kSyncLabel; |
3367 // Creating two channels to make sure that sync label is set properly for both | 3367 // Creating two channels to make sure that sync label is set properly for both |
3368 // the default voice channel and following ones. | 3368 // the default voice channel and following ones. |
3369 EXPECT_TRUE(channel_->AddRecvStream(sp)); | 3369 EXPECT_TRUE(channel_->AddRecvStream(sp)); |
3370 sp.ssrcs[0] += 1; | 3370 sp.ssrcs[0] += 1; |
3371 EXPECT_TRUE(channel_->AddRecvStream(sp)); | 3371 EXPECT_TRUE(channel_->AddRecvStream(sp)); |
3372 | 3372 |
3373 ASSERT_EQ(2, call.GetAudioReceiveStreams().size()); | 3373 ASSERT_EQ(2, call.GetAudioReceiveStreams().size()); |
3374 EXPECT_EQ(kSyncLabel, | 3374 EXPECT_EQ(kSyncLabel, |
3375 call.GetAudioReceiveStream(kAudioSsrc)->GetConfig().sync_group) | 3375 call.GetAudioReceiveStream(kAudioSsrc)->GetConfig().sync_group) |
3376 << "SyncGroup should be set based on sync_label"; | 3376 << "SyncGroup should be set based on sync_label"; |
3377 EXPECT_EQ(kSyncLabel, | 3377 EXPECT_EQ(kSyncLabel, |
3378 call.GetAudioReceiveStream(kAudioSsrc + 1)->GetConfig().sync_group) | 3378 call.GetAudioReceiveStream(kAudioSsrc + 1)->GetConfig().sync_group) |
3379 << "SyncGroup should be set based on sync_label"; | 3379 << "SyncGroup should be set based on sync_label"; |
3380 | 3380 |
3381 media_channel->SetCall(nullptr); | 3381 media_channel->SetCall(nullptr); |
3382 } | 3382 } |
3383 | 3383 |
3384 TEST_F(WebRtcVoiceEngineTestFake, CanChangeCombinedBweOption) { | 3384 TEST_F(WebRtcVoiceEngineTestFake, CanChangeCombinedBweOption) { |
3385 // Test that changing the combined_audio_video_bwe option results in the | 3385 // Test that changing the combined_audio_video_bwe option results in the |
3386 // expected state changes on an associated Call. | 3386 // expected state changes on an associated Call. |
3387 cricket::FakeCall call(webrtc::Call::Config(nullptr)); | 3387 cricket::FakeCall call((webrtc::Call::Config())); |
3388 const uint32 kAudioSsrc1 = 223; | 3388 const uint32 kAudioSsrc1 = 223; |
3389 const uint32 kAudioSsrc2 = 224; | 3389 const uint32 kAudioSsrc2 = 224; |
3390 | 3390 |
3391 EXPECT_TRUE(SetupEngine()); | 3391 EXPECT_TRUE(SetupEngine()); |
3392 cricket::WebRtcVoiceMediaChannel* media_channel = | 3392 cricket::WebRtcVoiceMediaChannel* media_channel = |
3393 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_); | 3393 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_); |
3394 const auto& rtp_extensions = engine_.rtp_header_extensions(); | 3394 const auto& rtp_extensions = engine_.rtp_header_extensions(); |
3395 media_channel->SetRecvRtpHeaderExtensions(rtp_extensions); | 3395 media_channel->SetRecvRtpHeaderExtensions(rtp_extensions); |
3396 media_channel->SetCall(&call); | 3396 media_channel->SetCall(&call); |
3397 EXPECT_TRUE(media_channel->AddRecvStream( | 3397 EXPECT_TRUE(media_channel->AddRecvStream( |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3430 EXPECT_FALSE(call.GetAudioReceiveStream(kAudioSsrc2) | 3430 EXPECT_FALSE(call.GetAudioReceiveStream(kAudioSsrc2) |
3431 ->GetConfig() | 3431 ->GetConfig() |
3432 .combined_audio_video_bwe); | 3432 .combined_audio_video_bwe); |
3433 | 3433 |
3434 media_channel->SetCall(nullptr); | 3434 media_channel->SetCall(nullptr); |
3435 } | 3435 } |
3436 | 3436 |
3437 TEST_F(WebRtcVoiceEngineTestFake, SetCallConfiguresAudioReceiveChannels) { | 3437 TEST_F(WebRtcVoiceEngineTestFake, SetCallConfiguresAudioReceiveChannels) { |
3438 // Test that calling SetCall() on the voice media channel results in the | 3438 // Test that calling SetCall() on the voice media channel results in the |
3439 // expected state changes in Call. | 3439 // expected state changes in Call. |
3440 cricket::FakeCall call(webrtc::Call::Config(nullptr)); | 3440 cricket::FakeCall call((webrtc::Call::Config())); |
3441 cricket::FakeCall call2(webrtc::Call::Config(nullptr)); | 3441 cricket::FakeCall call2((webrtc::Call::Config())); |
3442 const uint32 kAudioSsrc1 = 223; | 3442 const uint32 kAudioSsrc1 = 223; |
3443 const uint32 kAudioSsrc2 = 224; | 3443 const uint32 kAudioSsrc2 = 224; |
3444 | 3444 |
3445 EXPECT_TRUE(SetupEngine()); | 3445 EXPECT_TRUE(SetupEngine()); |
3446 cricket::WebRtcVoiceMediaChannel* media_channel = | 3446 cricket::WebRtcVoiceMediaChannel* media_channel = |
3447 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_); | 3447 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_); |
3448 EXPECT_TRUE(media_channel->AddRecvStream( | 3448 EXPECT_TRUE(media_channel->AddRecvStream( |
3449 cricket::StreamParams::CreateLegacy(kAudioSsrc1))); | 3449 cricket::StreamParams::CreateLegacy(kAudioSsrc1))); |
3450 EXPECT_TRUE(media_channel->AddRecvStream( | 3450 EXPECT_TRUE(media_channel->AddRecvStream( |
3451 cricket::StreamParams::CreateLegacy(kAudioSsrc2))); | 3451 cricket::StreamParams::CreateLegacy(kAudioSsrc2))); |
(...skipping 15 matching lines...) Expand all Loading... |
3467 EXPECT_NE(nullptr, call2.GetAudioReceiveStream(kAudioSsrc2)); | 3467 EXPECT_NE(nullptr, call2.GetAudioReceiveStream(kAudioSsrc2)); |
3468 | 3468 |
3469 // Unregister - should be disabled again. | 3469 // Unregister - should be disabled again. |
3470 media_channel->SetCall(nullptr); | 3470 media_channel->SetCall(nullptr); |
3471 EXPECT_EQ(0, call.GetAudioReceiveStreams().size()); | 3471 EXPECT_EQ(0, call.GetAudioReceiveStreams().size()); |
3472 } | 3472 } |
3473 | 3473 |
3474 TEST_F(WebRtcVoiceEngineTestFake, ConfigureCombinedBweForNewRecvStreams) { | 3474 TEST_F(WebRtcVoiceEngineTestFake, ConfigureCombinedBweForNewRecvStreams) { |
3475 // Test that adding receive streams after enabling combined bandwidth | 3475 // Test that adding receive streams after enabling combined bandwidth |
3476 // estimation will correctly configure each channel. | 3476 // estimation will correctly configure each channel. |
3477 cricket::FakeCall call(webrtc::Call::Config(nullptr)); | 3477 cricket::FakeCall call((webrtc::Call::Config())); |
3478 | 3478 |
3479 EXPECT_TRUE(SetupEngine()); | 3479 EXPECT_TRUE(SetupEngine()); |
3480 cricket::WebRtcVoiceMediaChannel* media_channel = | 3480 cricket::WebRtcVoiceMediaChannel* media_channel = |
3481 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_); | 3481 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_); |
3482 media_channel->SetCall(&call); | 3482 media_channel->SetCall(&call); |
3483 cricket::AudioOptions options; | 3483 cricket::AudioOptions options; |
3484 options.combined_audio_video_bwe.Set(true); | 3484 options.combined_audio_video_bwe.Set(true); |
3485 EXPECT_TRUE(media_channel->SetOptions(options)); | 3485 EXPECT_TRUE(media_channel->SetOptions(options)); |
3486 | 3486 |
3487 static const uint32 kSsrcs[] = {1, 2, 3, 4}; | 3487 static const uint32 kSsrcs[] = {1, 2, 3, 4}; |
3488 for (unsigned int i = 0; i < ARRAY_SIZE(kSsrcs); ++i) { | 3488 for (unsigned int i = 0; i < ARRAY_SIZE(kSsrcs); ++i) { |
3489 EXPECT_TRUE(media_channel->AddRecvStream( | 3489 EXPECT_TRUE(media_channel->AddRecvStream( |
3490 cricket::StreamParams::CreateLegacy(kSsrcs[i]))); | 3490 cricket::StreamParams::CreateLegacy(kSsrcs[i]))); |
3491 EXPECT_NE(nullptr, call.GetAudioReceiveStream(kSsrcs[i])); | 3491 EXPECT_NE(nullptr, call.GetAudioReceiveStream(kSsrcs[i])); |
3492 EXPECT_TRUE(call.GetAudioReceiveStream(kSsrcs[i]) | 3492 EXPECT_TRUE(call.GetAudioReceiveStream(kSsrcs[i]) |
3493 ->GetConfig() | 3493 ->GetConfig() |
3494 .combined_audio_video_bwe); | 3494 .combined_audio_video_bwe); |
3495 } | 3495 } |
3496 EXPECT_EQ(ARRAY_SIZE(kSsrcs), call.GetAudioReceiveStreams().size()); | 3496 EXPECT_EQ(ARRAY_SIZE(kSsrcs), call.GetAudioReceiveStreams().size()); |
3497 | 3497 |
3498 media_channel->SetCall(nullptr); | 3498 media_channel->SetCall(nullptr); |
3499 EXPECT_EQ(0, call.GetAudioReceiveStreams().size()); | 3499 EXPECT_EQ(0, call.GetAudioReceiveStreams().size()); |
3500 } | 3500 } |
3501 | 3501 |
3502 TEST_F(WebRtcVoiceEngineTestFake, ConfiguresAudioReceiveStreamRtpExtensions) { | 3502 TEST_F(WebRtcVoiceEngineTestFake, ConfiguresAudioReceiveStreamRtpExtensions) { |
3503 // Test that setting the header extensions results in the expected state | 3503 // Test that setting the header extensions results in the expected state |
3504 // changes on an associated Call. | 3504 // changes on an associated Call. |
3505 cricket::FakeCall call(webrtc::Call::Config(nullptr)); | 3505 cricket::FakeCall call((webrtc::Call::Config())); |
3506 std::vector<uint32> ssrcs; | 3506 std::vector<uint32> ssrcs; |
3507 ssrcs.push_back(223); | 3507 ssrcs.push_back(223); |
3508 ssrcs.push_back(224); | 3508 ssrcs.push_back(224); |
3509 | 3509 |
3510 EXPECT_TRUE(SetupEngine()); | 3510 EXPECT_TRUE(SetupEngine()); |
3511 cricket::WebRtcVoiceMediaChannel* media_channel = | 3511 cricket::WebRtcVoiceMediaChannel* media_channel = |
3512 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_); | 3512 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_); |
3513 media_channel->SetCall(&call); | 3513 media_channel->SetCall(&call); |
3514 for (uint32 ssrc : ssrcs) { | 3514 for (uint32 ssrc : ssrcs) { |
3515 EXPECT_TRUE(media_channel->AddRecvStream( | 3515 EXPECT_TRUE(media_channel->AddRecvStream( |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3549 const auto* s = call.GetAudioReceiveStream(ssrc); | 3549 const auto* s = call.GetAudioReceiveStream(ssrc); |
3550 EXPECT_NE(nullptr, s); | 3550 EXPECT_NE(nullptr, s); |
3551 EXPECT_EQ(0, s->GetConfig().rtp.extensions.size()); | 3551 EXPECT_EQ(0, s->GetConfig().rtp.extensions.size()); |
3552 } | 3552 } |
3553 | 3553 |
3554 media_channel->SetCall(nullptr); | 3554 media_channel->SetCall(nullptr); |
3555 } | 3555 } |
3556 | 3556 |
3557 TEST_F(WebRtcVoiceEngineTestFake, DeliverAudioPacket_Call) { | 3557 TEST_F(WebRtcVoiceEngineTestFake, DeliverAudioPacket_Call) { |
3558 // Test that packets are forwarded to the Call when configured accordingly. | 3558 // Test that packets are forwarded to the Call when configured accordingly. |
3559 cricket::FakeCall call(webrtc::Call::Config(nullptr)); | 3559 cricket::FakeCall call((webrtc::Call::Config())); |
3560 const uint32 kAudioSsrc = 1; | 3560 const uint32 kAudioSsrc = 1; |
3561 rtc::Buffer kPcmuPacket(kPcmuFrame, sizeof(kPcmuFrame)); | 3561 rtc::Buffer kPcmuPacket(kPcmuFrame, sizeof(kPcmuFrame)); |
3562 static const unsigned char kRtcp[] = { | 3562 static const unsigned char kRtcp[] = { |
3563 0x80, 0xc9, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, | 3563 0x80, 0xc9, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, |
3564 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, | 3564 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, |
3565 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 3565 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
3566 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 | 3566 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 |
3567 }; | 3567 }; |
3568 rtc::Buffer kRtcpPacket(kRtcp, sizeof(kRtcp)); | 3568 rtc::Buffer kRtcpPacket(kRtcp, sizeof(kRtcp)); |
3569 | 3569 |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3656 // deleting logic, i.e., deleting |send_ch| will reset the associate send | 3656 // deleting logic, i.e., deleting |send_ch| will reset the associate send |
3657 // channel of |recv_ch|.This is not a common case, since, normally, only the | 3657 // channel of |recv_ch|.This is not a common case, since, normally, only the |
3658 // default channel can be associated. However, the default is not deletable. | 3658 // default channel can be associated. However, the default is not deletable. |
3659 // So we force the |recv_ch| to associate with a non-default channel. | 3659 // So we force the |recv_ch| to associate with a non-default channel. |
3660 EXPECT_EQ(0, voe_.AssociateSendChannel(recv_ch, send_ch)); | 3660 EXPECT_EQ(0, voe_.AssociateSendChannel(recv_ch, send_ch)); |
3661 EXPECT_EQ(voe_.GetAssociateSendChannel(recv_ch), send_ch); | 3661 EXPECT_EQ(voe_.GetAssociateSendChannel(recv_ch), send_ch); |
3662 | 3662 |
3663 EXPECT_TRUE(channel_->RemoveSendStream(2)); | 3663 EXPECT_TRUE(channel_->RemoveSendStream(2)); |
3664 EXPECT_EQ(voe_.GetAssociateSendChannel(recv_ch), -1); | 3664 EXPECT_EQ(voe_.GetAssociateSendChannel(recv_ch), -1); |
3665 } | 3665 } |
OLD | NEW |