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

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

Issue 2060403002: Add task queue to Call. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@move_getpadding
Patch Set: Use SequencedTaskChecker in i420_buffer_pool.cc Created 4 years, 5 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 1186 matching lines...) Expand 10 before | Expand all | Expand 10 after
1197 encoder_config.streams = test::CreateVideoStreams(1); 1197 encoder_config.streams = test::CreateVideoStreams(1);
1198 VideoStream* stream = &encoder_config.streams[0]; 1198 VideoStream* stream = &encoder_config.streams[0];
1199 stream->width = width; 1199 stream->width = width;
1200 stream->height = height; 1200 stream->height = height;
1201 stream->max_framerate = 5; 1201 stream->max_framerate = 5;
1202 stream->min_bitrate_bps = stream->target_bitrate_bps = 1202 stream->min_bitrate_bps = stream->target_bitrate_bps =
1203 stream->max_bitrate_bps = 100000; 1203 stream->max_bitrate_bps = 100000;
1204 1204
1205 UpdateSendConfig(i, &send_config, &encoder_config, &frame_generators[i]); 1205 UpdateSendConfig(i, &send_config, &encoder_config, &frame_generators[i]);
1206 1206
1207 send_streams[i] = 1207 send_streams[i] = sender_call->CreateVideoSendStream(
1208 sender_call->CreateVideoSendStream(send_config, encoder_config); 1208 send_config.Copy(), encoder_config.Copy());
1209 send_streams[i]->Start(); 1209 send_streams[i]->Start();
1210 1210
1211 VideoReceiveStream::Config receive_config(receiver_transport.get()); 1211 VideoReceiveStream::Config receive_config(receiver_transport.get());
1212 receive_config.rtp.remote_ssrc = ssrc; 1212 receive_config.rtp.remote_ssrc = ssrc;
1213 receive_config.rtp.local_ssrc = test::CallTest::kReceiverLocalVideoSsrc; 1213 receive_config.rtp.local_ssrc = test::CallTest::kReceiverLocalVideoSsrc;
1214 VideoReceiveStream::Decoder decoder = 1214 VideoReceiveStream::Decoder decoder =
1215 test::CreateMatchingDecoder(send_config.encoder_settings); 1215 test::CreateMatchingDecoder(send_config.encoder_settings);
1216 allocated_decoders.push_back( 1216 allocated_decoders.push_back(
1217 std::unique_ptr<VideoDecoder>(decoder.decoder)); 1217 std::unique_ptr<VideoDecoder>(decoder.decoder));
1218 receive_config.decoders.push_back(decoder); 1218 receive_config.decoders.push_back(decoder);
(...skipping 1169 matching lines...) Expand 10 before | Expand all | Expand 10 after
2388 VideoEncoderConfig* encoder_config) override { 2388 VideoEncoderConfig* encoder_config) override {
2389 if (num_ssrcs_ > 1) { 2389 if (num_ssrcs_ > 1) {
2390 // Set low simulcast bitrates to not have to wait for bandwidth ramp-up. 2390 // Set low simulcast bitrates to not have to wait for bandwidth ramp-up.
2391 for (size_t i = 0; i < encoder_config->streams.size(); ++i) { 2391 for (size_t i = 0; i < encoder_config->streams.size(); ++i) {
2392 encoder_config->streams[i].min_bitrate_bps = 10000; 2392 encoder_config->streams[i].min_bitrate_bps = 10000;
2393 encoder_config->streams[i].target_bitrate_bps = 15000; 2393 encoder_config->streams[i].target_bitrate_bps = 15000;
2394 encoder_config->streams[i].max_bitrate_bps = 20000; 2394 encoder_config->streams[i].max_bitrate_bps = 20000;
2395 } 2395 }
2396 } 2396 }
2397 2397
2398 video_encoder_config_all_streams_ = *encoder_config; 2398 video_encoder_config_all_streams_ = encoder_config->Copy();
2399 if (send_single_ssrc_first_) 2399 if (send_single_ssrc_first_)
2400 encoder_config->streams.resize(1); 2400 encoder_config->streams.resize(1);
2401 } 2401 }
2402 2402
2403 void OnVideoStreamsCreated( 2403 void OnVideoStreamsCreated(
2404 VideoSendStream* send_stream, 2404 VideoSendStream* send_stream,
2405 const std::vector<VideoReceiveStream*>& receive_streams) override { 2405 const std::vector<VideoReceiveStream*>& receive_streams) override {
2406 send_stream_ = send_stream; 2406 send_stream_ = send_stream;
2407 } 2407 }
2408 2408
2409 void PerformTest() override { 2409 void PerformTest() override {
2410 EXPECT_TRUE(Wait()) << "Timed out while waiting for " 2410 EXPECT_TRUE(Wait()) << "Timed out while waiting for "
2411 << (send_single_ssrc_first_ ? "first SSRC." 2411 << (send_single_ssrc_first_ ? "first SSRC."
2412 : "SSRCs."); 2412 : "SSRCs.");
2413 2413
2414 if (send_single_ssrc_first_) { 2414 if (send_single_ssrc_first_) {
2415 // Set full simulcast and continue with the rest of the SSRCs. 2415 // Set full simulcast and continue with the rest of the SSRCs.
2416 send_stream_->ReconfigureVideoEncoder( 2416 send_stream_->ReconfigureVideoEncoder(
2417 video_encoder_config_all_streams_); 2417 std::move(video_encoder_config_all_streams_));
2418 EXPECT_TRUE(Wait()) << "Timed out while waiting on additional SSRCs."; 2418 EXPECT_TRUE(Wait()) << "Timed out while waiting on additional SSRCs.";
2419 } 2419 }
2420 } 2420 }
2421 2421
2422 private: 2422 private:
2423 std::map<uint32_t, bool> valid_ssrcs_; 2423 std::map<uint32_t, bool> valid_ssrcs_;
2424 std::map<uint32_t, bool> is_observed_; 2424 std::map<uint32_t, bool> is_observed_;
2425 2425
2426 const size_t num_ssrcs_; 2426 const size_t num_ssrcs_;
2427 const bool send_single_ssrc_first_; 2427 const bool send_single_ssrc_first_;
(...skipping 620 matching lines...) Expand 10 before | Expand all | Expand 10 after
3048 3048
3049 // Lower bitrates so that all streams send initially. 3049 // Lower bitrates so that all streams send initially.
3050 for (size_t i = 0; i < video_encoder_config_.streams.size(); ++i) { 3050 for (size_t i = 0; i < video_encoder_config_.streams.size(); ++i) {
3051 video_encoder_config_.streams[i].min_bitrate_bps = 10000; 3051 video_encoder_config_.streams[i].min_bitrate_bps = 10000;
3052 video_encoder_config_.streams[i].target_bitrate_bps = 15000; 3052 video_encoder_config_.streams[i].target_bitrate_bps = 15000;
3053 video_encoder_config_.streams[i].max_bitrate_bps = 20000; 3053 video_encoder_config_.streams[i].max_bitrate_bps = 20000;
3054 } 3054 }
3055 3055
3056 // Use the same total bitrates when sending a single stream to avoid lowering 3056 // Use the same total bitrates when sending a single stream to avoid lowering
3057 // the bitrate estimate and requiring a subsequent rampup. 3057 // the bitrate estimate and requiring a subsequent rampup.
3058 VideoEncoderConfig one_stream = video_encoder_config_; 3058 VideoEncoderConfig one_stream = video_encoder_config_.Copy();
3059 one_stream.streams.resize(1); 3059 one_stream.streams.resize(1);
3060 for (size_t i = 1; i < video_encoder_config_.streams.size(); ++i) { 3060 for (size_t i = 1; i < video_encoder_config_.streams.size(); ++i) {
3061 one_stream.streams.front().min_bitrate_bps += 3061 one_stream.streams.front().min_bitrate_bps +=
3062 video_encoder_config_.streams[i].min_bitrate_bps; 3062 video_encoder_config_.streams[i].min_bitrate_bps;
3063 one_stream.streams.front().target_bitrate_bps += 3063 one_stream.streams.front().target_bitrate_bps +=
3064 video_encoder_config_.streams[i].target_bitrate_bps; 3064 video_encoder_config_.streams[i].target_bitrate_bps;
3065 one_stream.streams.front().max_bitrate_bps += 3065 one_stream.streams.front().max_bitrate_bps +=
3066 video_encoder_config_.streams[i].max_bitrate_bps; 3066 video_encoder_config_.streams[i].max_bitrate_bps;
3067 } 3067 }
3068 3068
3069 CreateMatchingReceiveConfigs(&receive_transport); 3069 CreateMatchingReceiveConfigs(&receive_transport);
3070 3070
3071 CreateVideoStreams(); 3071 CreateVideoStreams();
3072 CreateFrameGeneratorCapturer(); 3072 CreateFrameGeneratorCapturer();
3073 3073
3074 Start(); 3074 Start();
3075 EXPECT_TRUE(observer.Wait()) 3075 EXPECT_TRUE(observer.Wait())
3076 << "Timed out waiting for all SSRCs to send packets."; 3076 << "Timed out waiting for all SSRCs to send packets.";
3077 3077
3078 // Test stream resetting more than once to make sure that the state doesn't 3078 // Test stream resetting more than once to make sure that the state doesn't
3079 // get set once (this could be due to using std::map::insert for instance). 3079 // get set once (this could be due to using std::map::insert for instance).
3080 for (size_t i = 0; i < 3; ++i) { 3080 for (size_t i = 0; i < 3; ++i) {
3081 frame_generator_capturer_->Stop(); 3081 frame_generator_capturer_->Stop();
3082 sender_call_->DestroyVideoSendStream(video_send_stream_); 3082 sender_call_->DestroyVideoSendStream(video_send_stream_);
3083 3083
3084 // Re-create VideoSendStream with only one stream. 3084 // Re-create VideoSendStream with only one stream.
3085 video_send_stream_ = 3085 video_send_stream_ = sender_call_->CreateVideoSendStream(
3086 sender_call_->CreateVideoSendStream(video_send_config_, one_stream); 3086 video_send_config_.Copy(), one_stream.Copy());
3087 video_send_stream_->Start(); 3087 video_send_stream_->Start();
3088 CreateFrameGeneratorCapturer(); 3088 CreateFrameGeneratorCapturer();
3089 frame_generator_capturer_->Start(); 3089 frame_generator_capturer_->Start();
3090 3090
3091 observer.ResetExpectedSsrcs(1); 3091 observer.ResetExpectedSsrcs(1);
3092 EXPECT_TRUE(observer.Wait()) << "Timed out waiting for single RTP packet."; 3092 EXPECT_TRUE(observer.Wait()) << "Timed out waiting for single RTP packet.";
3093 3093
3094 // Reconfigure back to use all streams. 3094 // Reconfigure back to use all streams.
3095 video_send_stream_->ReconfigureVideoEncoder(video_encoder_config_); 3095 video_send_stream_->ReconfigureVideoEncoder(video_encoder_config_.Copy());
3096 observer.ResetExpectedSsrcs(kNumSsrcs); 3096 observer.ResetExpectedSsrcs(kNumSsrcs);
3097 EXPECT_TRUE(observer.Wait()) 3097 EXPECT_TRUE(observer.Wait())
3098 << "Timed out waiting for all SSRCs to send packets."; 3098 << "Timed out waiting for all SSRCs to send packets.";
3099 3099
3100 // Reconfigure down to one stream. 3100 // Reconfigure down to one stream.
3101 video_send_stream_->ReconfigureVideoEncoder(one_stream); 3101 video_send_stream_->ReconfigureVideoEncoder(one_stream.Copy());
3102 observer.ResetExpectedSsrcs(1); 3102 observer.ResetExpectedSsrcs(1);
3103 EXPECT_TRUE(observer.Wait()) << "Timed out waiting for single RTP packet."; 3103 EXPECT_TRUE(observer.Wait()) << "Timed out waiting for single RTP packet.";
3104 3104
3105 // Reconfigure back to use all streams. 3105 // Reconfigure back to use all streams.
3106 video_send_stream_->ReconfigureVideoEncoder(video_encoder_config_); 3106 video_send_stream_->ReconfigureVideoEncoder(video_encoder_config_.Copy());
3107 observer.ResetExpectedSsrcs(kNumSsrcs); 3107 observer.ResetExpectedSsrcs(kNumSsrcs);
3108 EXPECT_TRUE(observer.Wait()) 3108 EXPECT_TRUE(observer.Wait())
3109 << "Timed out waiting for all SSRCs to send packets."; 3109 << "Timed out waiting for all SSRCs to send packets.";
3110 } 3110 }
3111 3111
3112 send_transport.StopSending(); 3112 send_transport.StopSending();
3113 receive_transport.StopSending(); 3113 receive_transport.StopSending();
3114 3114
3115 Stop(); 3115 Stop();
3116 DestroyStreams(); 3116 DestroyStreams();
(...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after
3575 private: 3575 private:
3576 bool video_observed_; 3576 bool video_observed_;
3577 bool audio_observed_; 3577 bool audio_observed_;
3578 SequenceNumberUnwrapper unwrapper_; 3578 SequenceNumberUnwrapper unwrapper_;
3579 std::set<int64_t> received_packet_ids_; 3579 std::set<int64_t> received_packet_ids_;
3580 } test; 3580 } test;
3581 3581
3582 RunBaseTest(&test); 3582 RunBaseTest(&test);
3583 } 3583 }
3584 } // namespace webrtc 3584 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698