From 4c09d7af8add7850f737adb1fca22132fdae3ef3 Mon Sep 17 00:00:00 2001 From: Ilya Nikolaevskiy Date: Fri, 2 Mar 2018 13:37:00 +0100 Subject: [PATCH] In webrtc_perf_tests always create screenshare stream after realtime video MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: chromium:818127 Change-Id: Ifbb09a81d6a393d0861d6dc2c2e806b127bf76fa Reviewed-on: https://webrtc-review.googlesource.com/59322 Reviewed-by: Erik Språng Commit-Queue: Ilya Nikolaevskiy Cr-Commit-Position: refs/heads/master@{#22281} --- video/video_quality_test.cc | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/video/video_quality_test.cc b/video/video_quality_test.cc index 8e1990c603..dcb8fb9b3c 100644 --- a/video/video_quality_test.cc +++ b/video/video_quality_test.cc @@ -1824,14 +1824,30 @@ void VideoQualityTest::CreateVideoStreams() { if (fec_controller_factory_.get()) { RTC_DCHECK_LE(video_send_configs_.size(), 1); } + + // TODO(http://crbug/818127): + // Remove this workaround when ALR is not screenshare-specific. + std::list streams_creation_order; for (size_t i = 0; i < video_send_configs_.size(); ++i) { - if (fec_controller_factory_.get()) { - video_send_streams_.push_back(sender_call_->CreateVideoSendStream( - video_send_configs_[i].Copy(), video_encoder_configs_[i].Copy(), - fec_controller_factory_->CreateFecController())); + // If dual streams are created, add the screenshare stream last. + if (video_encoder_configs_[i].content_type == + VideoEncoderConfig::ContentType::kScreen) { + streams_creation_order.push_back(i); } else { - video_send_streams_.push_back(sender_call_->CreateVideoSendStream( - video_send_configs_[i].Copy(), video_encoder_configs_[i].Copy())); + streams_creation_order.push_front(i); + } + } + + video_send_streams_.resize(video_send_configs_.size(), nullptr); + + for (size_t i : streams_creation_order) { + if (fec_controller_factory_.get()) { + video_send_streams_[i] = sender_call_->CreateVideoSendStream( + video_send_configs_[i].Copy(), video_encoder_configs_[i].Copy(), + fec_controller_factory_->CreateFecController()); + } else { + video_send_streams_[i] = sender_call_->CreateVideoSendStream( + video_send_configs_[i].Copy(), video_encoder_configs_[i].Copy()); } } for (size_t i = 0; i < video_receive_configs_.size(); ++i) {