OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2013 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 #include <algorithm> | 10 #include <algorithm> |
(...skipping 3202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3213 send_config->encoder_settings.encoder = this; | 3213 send_config->encoder_settings.encoder = this; |
3214 } | 3214 } |
3215 | 3215 |
3216 void PerformTest() override { | 3216 void PerformTest() override { |
3217 EXPECT_TRUE(encoded_frames_.Wait(kDefaultTimeoutMs)) | 3217 EXPECT_TRUE(encoded_frames_.Wait(kDefaultTimeoutMs)) |
3218 << "No frames received by the encoder."; | 3218 << "No frames received by the encoder."; |
3219 // Wait for packets from both sender/receiver. | 3219 // Wait for packets from both sender/receiver. |
3220 WaitForPacketsOrSilence(false, false); | 3220 WaitForPacketsOrSilence(false, false); |
3221 | 3221 |
3222 // Sender-side network down. | 3222 // Sender-side network down. |
3223 sender_call_->SignalNetworkState(kNetworkDown); | 3223 sender_call_->SignalChannelNetworkState(MediaType::VIDEO, |
| 3224 ChannelNetworkState::CHANNEL_NETWORK_DOWN); |
3224 { | 3225 { |
3225 rtc::CritScope lock(&test_crit_); | 3226 rtc::CritScope lock(&test_crit_); |
3226 // After network goes down we shouldn't be encoding more frames. | 3227 // After network goes down we shouldn't be encoding more frames. |
3227 sender_state_ = kNetworkDown; | 3228 sender_state_ = kNetworkDown; |
3228 } | 3229 } |
3229 // Wait for receiver-packets and no sender packets. | 3230 // Wait for receiver-packets and no sender packets. |
3230 WaitForPacketsOrSilence(true, false); | 3231 WaitForPacketsOrSilence(true, false); |
3231 | 3232 |
3232 // Receiver-side network down. | 3233 // Receiver-side network down. |
3233 receiver_call_->SignalNetworkState(kNetworkDown); | 3234 receiver_call_->SignalChannelNetworkState(MediaType::VIDEO, |
| 3235 ChannelNetworkState::CHANNEL_NETWORK_DOWN); |
3234 WaitForPacketsOrSilence(true, true); | 3236 WaitForPacketsOrSilence(true, true); |
3235 | 3237 |
3236 // Network back up again for both. | 3238 // Network back up again for both. |
3237 { | 3239 { |
3238 rtc::CritScope lock(&test_crit_); | 3240 rtc::CritScope lock(&test_crit_); |
3239 // It's OK to encode frames again, as we're about to bring up the | 3241 // It's OK to encode frames again, as we're about to bring up the |
3240 // network. | 3242 // network. |
3241 sender_state_ = kNetworkUp; | 3243 sender_state_ = kNetworkUp; |
3242 } | 3244 } |
3243 sender_call_->SignalNetworkState(kNetworkUp); | 3245 sender_call_->SignalChannelNetworkState(MediaType::VIDEO, |
3244 receiver_call_->SignalNetworkState(kNetworkUp); | 3246 ChannelNetworkState::CHANNEL_NETWORK_UP); |
| 3247 receiver_call_->SignalChannelNetworkState(MediaType::VIDEO, |
| 3248 ChannelNetworkState::CHANNEL_NETWORK_UP); |
3245 WaitForPacketsOrSilence(false, false); | 3249 WaitForPacketsOrSilence(false, false); |
3246 } | 3250 } |
3247 | 3251 |
3248 int32_t Encode(const VideoFrame& input_image, | 3252 int32_t Encode(const VideoFrame& input_image, |
3249 const CodecSpecificInfo* codec_specific_info, | 3253 const CodecSpecificInfo* codec_specific_info, |
3250 const std::vector<FrameType>* frame_types) override { | 3254 const std::vector<FrameType>* frame_types) override { |
3251 { | 3255 { |
3252 rtc::CritScope lock(&test_crit_); | 3256 rtc::CritScope lock(&test_crit_); |
3253 if (sender_state_ == kNetworkDown) { | 3257 if (sender_state_ == kNetworkDown) { |
3254 ++down_frames_; | 3258 ++down_frames_; |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3371 int32_t Encode(const VideoFrame& input_image, | 3375 int32_t Encode(const VideoFrame& input_image, |
3372 const CodecSpecificInfo* codec_specific_info, | 3376 const CodecSpecificInfo* codec_specific_info, |
3373 const std::vector<FrameType>* frame_types) override { | 3377 const std::vector<FrameType>* frame_types) override { |
3374 ADD_FAILURE() << "Unexpected frame encode."; | 3378 ADD_FAILURE() << "Unexpected frame encode."; |
3375 return test::FakeEncoder::Encode( | 3379 return test::FakeEncoder::Encode( |
3376 input_image, codec_specific_info, frame_types); | 3380 input_image, codec_specific_info, frame_types); |
3377 } | 3381 } |
3378 }; | 3382 }; |
3379 | 3383 |
3380 CreateSenderCall(Call::Config()); | 3384 CreateSenderCall(Call::Config()); |
3381 sender_call_->SignalNetworkState(kNetworkDown); | 3385 sender_call_->SignalChannelNetworkState(MediaType::VIDEO, |
| 3386 ChannelNetworkState::CHANNEL_NETWORK_DOWN); |
3382 | 3387 |
3383 UnusedTransport transport; | 3388 UnusedTransport transport; |
3384 CreateSendConfig(1, 0, &transport); | 3389 CreateSendConfig(1, 0, &transport); |
3385 UnusedEncoder unused_encoder; | 3390 UnusedEncoder unused_encoder; |
3386 video_send_config_.encoder_settings.encoder = &unused_encoder; | 3391 video_send_config_.encoder_settings.encoder = &unused_encoder; |
3387 CreateVideoStreams(); | 3392 CreateVideoStreams(); |
3388 CreateFrameGeneratorCapturer(); | 3393 CreateFrameGeneratorCapturer(); |
3389 | 3394 |
3390 Start(); | 3395 Start(); |
3391 SleepMs(kSilenceTimeoutMs); | 3396 SleepMs(kSilenceTimeoutMs); |
3392 Stop(); | 3397 Stop(); |
3393 | 3398 |
3394 DestroyStreams(); | 3399 DestroyStreams(); |
3395 } | 3400 } |
3396 | 3401 |
3397 TEST_F(EndToEndTest, NewReceiveStreamsRespectNetworkDown) { | 3402 TEST_F(EndToEndTest, NewReceiveStreamsRespectNetworkDown) { |
3398 CreateCalls(Call::Config(), Call::Config()); | 3403 CreateCalls(Call::Config(), Call::Config()); |
3399 receiver_call_->SignalNetworkState(kNetworkDown); | 3404 receiver_call_->SignalChannelNetworkState(MediaType::VIDEO, |
| 3405 ChannelNetworkState::CHANNEL_NETWORK_DOWN); |
3400 | 3406 |
3401 test::DirectTransport sender_transport(sender_call_.get()); | 3407 test::DirectTransport sender_transport(sender_call_.get()); |
3402 sender_transport.SetReceiver(receiver_call_->Receiver()); | 3408 sender_transport.SetReceiver(receiver_call_->Receiver()); |
3403 CreateSendConfig(1, 0, &sender_transport); | 3409 CreateSendConfig(1, 0, &sender_transport); |
3404 UnusedTransport transport; | 3410 UnusedTransport transport; |
3405 CreateMatchingReceiveConfigs(&transport); | 3411 CreateMatchingReceiveConfigs(&transport); |
3406 CreateVideoStreams(); | 3412 CreateVideoStreams(); |
3407 CreateFrameGeneratorCapturer(); | 3413 CreateFrameGeneratorCapturer(); |
3408 | 3414 |
3409 Start(); | 3415 Start(); |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3526 private: | 3532 private: |
3527 bool video_observed_; | 3533 bool video_observed_; |
3528 bool audio_observed_; | 3534 bool audio_observed_; |
3529 SequenceNumberUnwrapper unwrapper_; | 3535 SequenceNumberUnwrapper unwrapper_; |
3530 std::set<int64_t> received_packet_ids_; | 3536 std::set<int64_t> received_packet_ids_; |
3531 } test; | 3537 } test; |
3532 | 3538 |
3533 RunBaseTest(&test); | 3539 RunBaseTest(&test); |
3534 } | 3540 } |
3535 } // namespace webrtc | 3541 } // namespace webrtc |
OLD | NEW |