Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(110)

Side by Side Diff: webrtc/video/end_to_end_tests.cc

Issue 1757683002: Make the audio channel communicate network state changes to the call. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Fixing code review issues Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
OLDNEW
« webrtc/call/call.cc ('K') | « webrtc/media/engine/webrtcvoiceengine_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698