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, kNetworkDown); |
stefan-webrtc
2016/03/11 08:29:41
Maybe we should add a test which verifies the expe
skvlad
2016/03/11 23:59:08
I've added tests that verify that video streams ar
| |
3224 { | 3224 { |
3225 rtc::CritScope lock(&test_crit_); | 3225 rtc::CritScope lock(&test_crit_); |
3226 // After network goes down we shouldn't be encoding more frames. | 3226 // After network goes down we shouldn't be encoding more frames. |
3227 sender_state_ = kNetworkDown; | 3227 sender_state_ = kNetworkDown; |
3228 } | 3228 } |
3229 // Wait for receiver-packets and no sender packets. | 3229 // Wait for receiver-packets and no sender packets. |
3230 WaitForPacketsOrSilence(true, false); | 3230 WaitForPacketsOrSilence(true, false); |
3231 | 3231 |
3232 // Receiver-side network down. | 3232 // Receiver-side network down. |
3233 receiver_call_->SignalNetworkState(kNetworkDown); | 3233 receiver_call_->SignalChannelNetworkState(MediaType::VIDEO, kNetworkDown); |
3234 WaitForPacketsOrSilence(true, true); | 3234 WaitForPacketsOrSilence(true, true); |
3235 | 3235 |
3236 // Network back up again for both. | 3236 // Network back up again for both. |
3237 { | 3237 { |
3238 rtc::CritScope lock(&test_crit_); | 3238 rtc::CritScope lock(&test_crit_); |
3239 // It's OK to encode frames again, as we're about to bring up the | 3239 // It's OK to encode frames again, as we're about to bring up the |
3240 // network. | 3240 // network. |
3241 sender_state_ = kNetworkUp; | 3241 sender_state_ = kNetworkUp; |
3242 } | 3242 } |
3243 sender_call_->SignalNetworkState(kNetworkUp); | 3243 sender_call_->SignalChannelNetworkState(MediaType::VIDEO, kNetworkUp); |
3244 receiver_call_->SignalNetworkState(kNetworkUp); | 3244 receiver_call_->SignalChannelNetworkState(MediaType::VIDEO, kNetworkUp); |
3245 WaitForPacketsOrSilence(false, false); | 3245 WaitForPacketsOrSilence(false, false); |
3246 } | 3246 } |
3247 | 3247 |
3248 int32_t Encode(const VideoFrame& input_image, | 3248 int32_t Encode(const VideoFrame& input_image, |
3249 const CodecSpecificInfo* codec_specific_info, | 3249 const CodecSpecificInfo* codec_specific_info, |
3250 const std::vector<FrameType>* frame_types) override { | 3250 const std::vector<FrameType>* frame_types) override { |
3251 { | 3251 { |
3252 rtc::CritScope lock(&test_crit_); | 3252 rtc::CritScope lock(&test_crit_); |
3253 if (sender_state_ == kNetworkDown) { | 3253 if (sender_state_ == kNetworkDown) { |
3254 ++down_frames_; | 3254 ++down_frames_; |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3371 int32_t Encode(const VideoFrame& input_image, | 3371 int32_t Encode(const VideoFrame& input_image, |
3372 const CodecSpecificInfo* codec_specific_info, | 3372 const CodecSpecificInfo* codec_specific_info, |
3373 const std::vector<FrameType>* frame_types) override { | 3373 const std::vector<FrameType>* frame_types) override { |
3374 ADD_FAILURE() << "Unexpected frame encode."; | 3374 ADD_FAILURE() << "Unexpected frame encode."; |
3375 return test::FakeEncoder::Encode( | 3375 return test::FakeEncoder::Encode( |
3376 input_image, codec_specific_info, frame_types); | 3376 input_image, codec_specific_info, frame_types); |
3377 } | 3377 } |
3378 }; | 3378 }; |
3379 | 3379 |
3380 CreateSenderCall(Call::Config()); | 3380 CreateSenderCall(Call::Config()); |
3381 sender_call_->SignalNetworkState(kNetworkDown); | 3381 sender_call_->SignalChannelNetworkState(MediaType::VIDEO, kNetworkDown); |
3382 | 3382 |
3383 UnusedTransport transport; | 3383 UnusedTransport transport; |
3384 CreateSendConfig(1, 0, &transport); | 3384 CreateSendConfig(1, 0, &transport); |
3385 UnusedEncoder unused_encoder; | 3385 UnusedEncoder unused_encoder; |
3386 video_send_config_.encoder_settings.encoder = &unused_encoder; | 3386 video_send_config_.encoder_settings.encoder = &unused_encoder; |
3387 CreateVideoStreams(); | 3387 CreateVideoStreams(); |
3388 CreateFrameGeneratorCapturer(); | 3388 CreateFrameGeneratorCapturer(); |
3389 | 3389 |
3390 Start(); | 3390 Start(); |
3391 SleepMs(kSilenceTimeoutMs); | 3391 SleepMs(kSilenceTimeoutMs); |
3392 Stop(); | 3392 Stop(); |
3393 | 3393 |
3394 DestroyStreams(); | 3394 DestroyStreams(); |
3395 } | 3395 } |
3396 | 3396 |
3397 TEST_F(EndToEndTest, NewReceiveStreamsRespectNetworkDown) { | 3397 TEST_F(EndToEndTest, NewReceiveStreamsRespectNetworkDown) { |
3398 CreateCalls(Call::Config(), Call::Config()); | 3398 CreateCalls(Call::Config(), Call::Config()); |
3399 receiver_call_->SignalNetworkState(kNetworkDown); | 3399 receiver_call_->SignalChannelNetworkState(MediaType::VIDEO, kNetworkDown); |
3400 | 3400 |
3401 test::DirectTransport sender_transport(sender_call_.get()); | 3401 test::DirectTransport sender_transport(sender_call_.get()); |
3402 sender_transport.SetReceiver(receiver_call_->Receiver()); | 3402 sender_transport.SetReceiver(receiver_call_->Receiver()); |
3403 CreateSendConfig(1, 0, &sender_transport); | 3403 CreateSendConfig(1, 0, &sender_transport); |
3404 UnusedTransport transport; | 3404 UnusedTransport transport; |
3405 CreateMatchingReceiveConfigs(&transport); | 3405 CreateMatchingReceiveConfigs(&transport); |
3406 CreateVideoStreams(); | 3406 CreateVideoStreams(); |
3407 CreateFrameGeneratorCapturer(); | 3407 CreateFrameGeneratorCapturer(); |
3408 | 3408 |
3409 Start(); | 3409 Start(); |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3526 private: | 3526 private: |
3527 bool video_observed_; | 3527 bool video_observed_; |
3528 bool audio_observed_; | 3528 bool audio_observed_; |
3529 SequenceNumberUnwrapper unwrapper_; | 3529 SequenceNumberUnwrapper unwrapper_; |
3530 std::set<int64_t> received_packet_ids_; | 3530 std::set<int64_t> received_packet_ids_; |
3531 } test; | 3531 } test; |
3532 | 3532 |
3533 RunBaseTest(&test); | 3533 RunBaseTest(&test); |
3534 } | 3534 } |
3535 } // namespace webrtc | 3535 } // namespace webrtc |
OLD | NEW |