| 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 |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 43 const cricket::AudioCodec kCn8000Codec(13, "CN", 8000, 0, 1); | 43 const cricket::AudioCodec kCn8000Codec(13, "CN", 8000, 0, 1); |
| 44 const cricket::AudioCodec kCn16000Codec(105, "CN", 16000, 0, 1); | 44 const cricket::AudioCodec kCn16000Codec(105, "CN", 16000, 0, 1); |
| 45 const cricket::AudioCodec kTelephoneEventCodec(106, | 45 const cricket::AudioCodec kTelephoneEventCodec(106, |
| 46 "telephone-event", | 46 "telephone-event", |
| 47 8000, | 47 8000, |
| 48 0, | 48 0, |
| 49 1); | 49 1); |
| 50 const uint32_t kSsrc1 = 0x99; | 50 const uint32_t kSsrc1 = 0x99; |
| 51 const uint32_t kSsrc2 = 2; | 51 const uint32_t kSsrc2 = 2; |
| 52 const uint32_t kSsrc3 = 3; | 52 const uint32_t kSsrc3 = 3; |
| 53 const uint32_t kSsrc4 = 0x42; |
| 53 const uint32_t kSsrcs4[] = { 1, 2, 3, 4 }; | 54 const uint32_t kSsrcs4[] = { 1, 2, 3, 4 }; |
| 54 | 55 |
| 55 constexpr int kRtpHistoryMs = 5000; | 56 constexpr int kRtpHistoryMs = 5000; |
| 56 | 57 |
| 57 class FakeVoEWrapper : public cricket::VoEWrapper { | 58 class FakeVoEWrapper : public cricket::VoEWrapper { |
| 58 public: | 59 public: |
| 59 explicit FakeVoEWrapper(cricket::FakeWebRtcVoiceEngine* engine) | 60 explicit FakeVoEWrapper(cricket::FakeWebRtcVoiceEngine* engine) |
| 60 : cricket::VoEWrapper(engine, // processing | 61 : cricket::VoEWrapper(engine, // processing |
| 61 engine, // base | 62 engine, // base |
| 62 engine, // codec | 63 engine, // codec |
| (...skipping 3169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3232 call_.GetAudioReceiveStream(kAudioSsrc); | 3233 call_.GetAudioReceiveStream(kAudioSsrc); |
| 3233 EXPECT_EQ(0, s->received_packets()); | 3234 EXPECT_EQ(0, s->received_packets()); |
| 3234 channel_->OnPacketReceived(&kPcmuPacket, rtc::PacketTime()); | 3235 channel_->OnPacketReceived(&kPcmuPacket, rtc::PacketTime()); |
| 3235 EXPECT_EQ(1, s->received_packets()); | 3236 EXPECT_EQ(1, s->received_packets()); |
| 3236 channel_->OnRtcpReceived(&kRtcpPacket, rtc::PacketTime()); | 3237 channel_->OnRtcpReceived(&kRtcpPacket, rtc::PacketTime()); |
| 3237 EXPECT_EQ(2, s->received_packets()); | 3238 EXPECT_EQ(2, s->received_packets()); |
| 3238 } | 3239 } |
| 3239 | 3240 |
| 3240 // All receive channels should be associated with the first send channel, | 3241 // All receive channels should be associated with the first send channel, |
| 3241 // since they do not send RTCP SR. | 3242 // since they do not send RTCP SR. |
| 3242 TEST_F(WebRtcVoiceEngineTestFake, AssociateFirstSendChannel) { | 3243 TEST_F(WebRtcVoiceEngineTestFake, AssociateFirstSendChannel_SendCreatedFirst) { |
| 3243 EXPECT_TRUE(SetupSendStream()); | 3244 EXPECT_TRUE(SetupSendStream()); |
| 3244 SetSendParameters(send_parameters_); | 3245 EXPECT_TRUE(AddRecvStream(kSsrc2)); |
| 3245 int default_channel = voe_.GetLastChannel(); | 3246 EXPECT_EQ(kSsrc1, GetRecvStreamConfig(kSsrc2).rtp.local_ssrc); |
| 3246 EXPECT_TRUE(AddRecvStream(1)); | 3247 EXPECT_TRUE(channel_->AddSendStream( |
| 3247 int recv_ch = voe_.GetLastChannel(); | 3248 cricket::StreamParams::CreateLegacy(kSsrc3))); |
| 3248 EXPECT_NE(recv_ch, default_channel); | 3249 EXPECT_EQ(kSsrc1, GetRecvStreamConfig(kSsrc2).rtp.local_ssrc); |
| 3249 EXPECT_EQ(voe_.GetAssociateSendChannel(recv_ch), default_channel); | 3250 EXPECT_TRUE(AddRecvStream(kSsrc4)); |
| 3250 EXPECT_TRUE(channel_->AddSendStream(cricket::StreamParams::CreateLegacy(2))); | 3251 EXPECT_EQ(kSsrc1, GetRecvStreamConfig(kSsrc4).rtp.local_ssrc); |
| 3251 EXPECT_EQ(voe_.GetAssociateSendChannel(recv_ch), default_channel); | |
| 3252 EXPECT_TRUE(AddRecvStream(3)); | |
| 3253 recv_ch = voe_.GetLastChannel(); | |
| 3254 EXPECT_NE(recv_ch, default_channel); | |
| 3255 EXPECT_EQ(voe_.GetAssociateSendChannel(recv_ch), default_channel); | |
| 3256 } | 3252 } |
| 3257 | 3253 |
| 3258 TEST_F(WebRtcVoiceEngineTestFake, AssociateChannelResetUponDeleteChannnel) { | 3254 TEST_F(WebRtcVoiceEngineTestFake, AssociateFirstSendChannel_RecvCreatedFirst) { |
| 3259 EXPECT_TRUE(SetupSendStream()); | 3255 EXPECT_TRUE(SetupRecvStream()); |
| 3260 SetSendParameters(send_parameters_); | 3256 EXPECT_EQ(0xFA17FA17u, GetRecvStreamConfig(kSsrc1).rtp.local_ssrc); |
| 3261 | 3257 EXPECT_TRUE(channel_->AddSendStream( |
| 3262 EXPECT_TRUE(AddRecvStream(1)); | 3258 cricket::StreamParams::CreateLegacy(kSsrc2))); |
| 3263 int recv_ch = voe_.GetLastChannel(); | 3259 EXPECT_EQ(kSsrc2, GetRecvStreamConfig(kSsrc1).rtp.local_ssrc); |
| 3264 | 3260 EXPECT_TRUE(AddRecvStream(kSsrc3)); |
| 3265 EXPECT_TRUE(channel_->AddSendStream(cricket::StreamParams::CreateLegacy(2))); | 3261 EXPECT_EQ(kSsrc2, GetRecvStreamConfig(kSsrc3).rtp.local_ssrc); |
| 3266 int send_ch = voe_.GetLastChannel(); | 3262 EXPECT_TRUE(channel_->AddSendStream( |
| 3267 | 3263 cricket::StreamParams::CreateLegacy(kSsrc4))); |
| 3268 // Manually associate |recv_ch| to |send_ch|. This test is to verify a | 3264 EXPECT_EQ(kSsrc2, GetRecvStreamConfig(kSsrc1).rtp.local_ssrc); |
| 3269 // deleting logic, i.e., deleting |send_ch| will reset the associate send | 3265 EXPECT_EQ(kSsrc2, GetRecvStreamConfig(kSsrc3).rtp.local_ssrc); |
| 3270 // channel of |recv_ch|.This is not a common case, sinceļ¼ normally, only the | |
| 3271 // default channel can be associated. However, the default is not deletable. | |
| 3272 // So we force the |recv_ch| to associate with a non-default channel. | |
| 3273 EXPECT_EQ(0, voe_.AssociateSendChannel(recv_ch, send_ch)); | |
| 3274 EXPECT_EQ(voe_.GetAssociateSendChannel(recv_ch), send_ch); | |
| 3275 | |
| 3276 EXPECT_TRUE(channel_->RemoveSendStream(2)); | |
| 3277 EXPECT_EQ(voe_.GetAssociateSendChannel(recv_ch), -1); | |
| 3278 } | 3266 } |
| 3279 | 3267 |
| 3280 TEST_F(WebRtcVoiceEngineTestFake, SetRawAudioSink) { | 3268 TEST_F(WebRtcVoiceEngineTestFake, SetRawAudioSink) { |
| 3281 EXPECT_TRUE(SetupChannel()); | 3269 EXPECT_TRUE(SetupChannel()); |
| 3282 std::unique_ptr<FakeAudioSink> fake_sink_1(new FakeAudioSink()); | 3270 std::unique_ptr<FakeAudioSink> fake_sink_1(new FakeAudioSink()); |
| 3283 std::unique_ptr<FakeAudioSink> fake_sink_2(new FakeAudioSink()); | 3271 std::unique_ptr<FakeAudioSink> fake_sink_2(new FakeAudioSink()); |
| 3284 | 3272 |
| 3285 // Setting the sink before a recv stream exists should do nothing. | 3273 // Setting the sink before a recv stream exists should do nothing. |
| 3286 channel_->SetRawAudioSink(kSsrc1, std::move(fake_sink_1)); | 3274 channel_->SetRawAudioSink(kSsrc1, std::move(fake_sink_1)); |
| 3287 EXPECT_TRUE(AddRecvStream(kSsrc1)); | 3275 EXPECT_TRUE(AddRecvStream(kSsrc1)); |
| (...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3509 nullptr, webrtc::CreateBuiltinAudioDecoderFactory()); | 3497 nullptr, webrtc::CreateBuiltinAudioDecoderFactory()); |
| 3510 webrtc::RtcEventLogNullImpl event_log; | 3498 webrtc::RtcEventLogNullImpl event_log; |
| 3511 std::unique_ptr<webrtc::Call> call( | 3499 std::unique_ptr<webrtc::Call> call( |
| 3512 webrtc::Call::Create(webrtc::Call::Config(&event_log))); | 3500 webrtc::Call::Create(webrtc::Call::Config(&event_log))); |
| 3513 cricket::WebRtcVoiceMediaChannel channel(&engine, cricket::MediaConfig(), | 3501 cricket::WebRtcVoiceMediaChannel channel(&engine, cricket::MediaConfig(), |
| 3514 cricket::AudioOptions(), call.get()); | 3502 cricket::AudioOptions(), call.get()); |
| 3515 cricket::AudioRecvParameters parameters; | 3503 cricket::AudioRecvParameters parameters; |
| 3516 parameters.codecs = engine.recv_codecs(); | 3504 parameters.codecs = engine.recv_codecs(); |
| 3517 EXPECT_TRUE(channel.SetRecvParameters(parameters)); | 3505 EXPECT_TRUE(channel.SetRecvParameters(parameters)); |
| 3518 } | 3506 } |
| OLD | NEW |