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

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: Revert fix for asan, protect instead. Added destruction observer to frames in ViEEncoder tests. 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 603 matching lines...) Expand 10 before | Expand all | Expand 10 after
3031 3031
3032 // Lower bitrates so that all streams send initially. 3032 // Lower bitrates so that all streams send initially.
3033 for (size_t i = 0; i < video_encoder_config_.streams.size(); ++i) { 3033 for (size_t i = 0; i < video_encoder_config_.streams.size(); ++i) {
3034 video_encoder_config_.streams[i].min_bitrate_bps = 10000; 3034 video_encoder_config_.streams[i].min_bitrate_bps = 10000;
3035 video_encoder_config_.streams[i].target_bitrate_bps = 15000; 3035 video_encoder_config_.streams[i].target_bitrate_bps = 15000;
3036 video_encoder_config_.streams[i].max_bitrate_bps = 20000; 3036 video_encoder_config_.streams[i].max_bitrate_bps = 20000;
3037 } 3037 }
3038 3038
3039 // Use the same total bitrates when sending a single stream to avoid lowering 3039 // Use the same total bitrates when sending a single stream to avoid lowering
3040 // the bitrate estimate and requiring a subsequent rampup. 3040 // the bitrate estimate and requiring a subsequent rampup.
3041 VideoEncoderConfig one_stream = video_encoder_config_; 3041 VideoEncoderConfig one_stream = video_encoder_config_.Copy();
3042 one_stream.streams.resize(1); 3042 one_stream.streams.resize(1);
3043 for (size_t i = 1; i < video_encoder_config_.streams.size(); ++i) { 3043 for (size_t i = 1; i < video_encoder_config_.streams.size(); ++i) {
3044 one_stream.streams.front().min_bitrate_bps += 3044 one_stream.streams.front().min_bitrate_bps +=
3045 video_encoder_config_.streams[i].min_bitrate_bps; 3045 video_encoder_config_.streams[i].min_bitrate_bps;
3046 one_stream.streams.front().target_bitrate_bps += 3046 one_stream.streams.front().target_bitrate_bps +=
3047 video_encoder_config_.streams[i].target_bitrate_bps; 3047 video_encoder_config_.streams[i].target_bitrate_bps;
3048 one_stream.streams.front().max_bitrate_bps += 3048 one_stream.streams.front().max_bitrate_bps +=
3049 video_encoder_config_.streams[i].max_bitrate_bps; 3049 video_encoder_config_.streams[i].max_bitrate_bps;
3050 } 3050 }
3051 3051
3052 CreateMatchingReceiveConfigs(&receive_transport); 3052 CreateMatchingReceiveConfigs(&receive_transport);
3053 3053
3054 CreateVideoStreams(); 3054 CreateVideoStreams();
3055 CreateFrameGeneratorCapturer(); 3055 CreateFrameGeneratorCapturer();
3056 3056
3057 Start(); 3057 Start();
3058 EXPECT_TRUE(observer.Wait()) 3058 EXPECT_TRUE(observer.Wait())
3059 << "Timed out waiting for all SSRCs to send packets."; 3059 << "Timed out waiting for all SSRCs to send packets.";
3060 3060
3061 // Test stream resetting more than once to make sure that the state doesn't 3061 // Test stream resetting more than once to make sure that the state doesn't
3062 // get set once (this could be due to using std::map::insert for instance). 3062 // get set once (this could be due to using std::map::insert for instance).
3063 for (size_t i = 0; i < 3; ++i) { 3063 for (size_t i = 0; i < 3; ++i) {
3064 frame_generator_capturer_->Stop(); 3064 frame_generator_capturer_->Stop();
3065 sender_call_->DestroyVideoSendStream(video_send_stream_); 3065 sender_call_->DestroyVideoSendStream(video_send_stream_);
3066 3066
3067 // Re-create VideoSendStream with only one stream. 3067 // Re-create VideoSendStream with only one stream.
3068 video_send_stream_ = 3068 video_send_stream_ = sender_call_->CreateVideoSendStream(
3069 sender_call_->CreateVideoSendStream(video_send_config_, one_stream); 3069 video_send_config_.Copy(), one_stream.Copy());
3070 video_send_stream_->Start(); 3070 video_send_stream_->Start();
3071 CreateFrameGeneratorCapturer(); 3071 CreateFrameGeneratorCapturer();
3072 frame_generator_capturer_->Start(); 3072 frame_generator_capturer_->Start();
3073 3073
3074 observer.ResetExpectedSsrcs(1); 3074 observer.ResetExpectedSsrcs(1);
3075 EXPECT_TRUE(observer.Wait()) << "Timed out waiting for single RTP packet."; 3075 EXPECT_TRUE(observer.Wait()) << "Timed out waiting for single RTP packet.";
3076 3076
3077 // Reconfigure back to use all streams. 3077 // Reconfigure back to use all streams.
3078 video_send_stream_->ReconfigureVideoEncoder(video_encoder_config_); 3078 video_send_stream_->ReconfigureVideoEncoder(video_encoder_config_.Copy());
3079 observer.ResetExpectedSsrcs(kNumSsrcs); 3079 observer.ResetExpectedSsrcs(kNumSsrcs);
3080 EXPECT_TRUE(observer.Wait()) 3080 EXPECT_TRUE(observer.Wait())
3081 << "Timed out waiting for all SSRCs to send packets."; 3081 << "Timed out waiting for all SSRCs to send packets.";
3082 3082
3083 // Reconfigure down to one stream. 3083 // Reconfigure down to one stream.
3084 video_send_stream_->ReconfigureVideoEncoder(one_stream); 3084 video_send_stream_->ReconfigureVideoEncoder(one_stream.Copy());
3085 observer.ResetExpectedSsrcs(1); 3085 observer.ResetExpectedSsrcs(1);
3086 EXPECT_TRUE(observer.Wait()) << "Timed out waiting for single RTP packet."; 3086 EXPECT_TRUE(observer.Wait()) << "Timed out waiting for single RTP packet.";
3087 3087
3088 // Reconfigure back to use all streams. 3088 // Reconfigure back to use all streams.
3089 video_send_stream_->ReconfigureVideoEncoder(video_encoder_config_); 3089 video_send_stream_->ReconfigureVideoEncoder(video_encoder_config_.Copy());
3090 observer.ResetExpectedSsrcs(kNumSsrcs); 3090 observer.ResetExpectedSsrcs(kNumSsrcs);
3091 EXPECT_TRUE(observer.Wait()) 3091 EXPECT_TRUE(observer.Wait())
3092 << "Timed out waiting for all SSRCs to send packets."; 3092 << "Timed out waiting for all SSRCs to send packets.";
3093 } 3093 }
3094 3094
3095 send_transport.StopSending(); 3095 send_transport.StopSending();
3096 receive_transport.StopSending(); 3096 receive_transport.StopSending();
3097 3097
3098 Stop(); 3098 Stop();
3099 DestroyStreams(); 3099 DestroyStreams();
(...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after
3558 private: 3558 private:
3559 bool video_observed_; 3559 bool video_observed_;
3560 bool audio_observed_; 3560 bool audio_observed_;
3561 SequenceNumberUnwrapper unwrapper_; 3561 SequenceNumberUnwrapper unwrapper_;
3562 std::set<int64_t> received_packet_ids_; 3562 std::set<int64_t> received_packet_ids_;
3563 } test; 3563 } test;
3564 3564
3565 RunBaseTest(&test); 3565 RunBaseTest(&test);
3566 } 3566 }
3567 } // namespace webrtc 3567 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698