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

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

Issue 1537273003: Step 1 to prepare call_test.* for combined audio/video tests. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Cleanups Created 5 years 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
« no previous file with comments | « webrtc/video/rampup_tests.cc ('k') | webrtc/video/video_send_stream_tests.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2015 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 <stdio.h> 10 #include <stdio.h>
(...skipping 776 matching lines...) Expand 10 before | Expand all | Expand 10 after
787 if (params_.common.codec == "VP8") { 787 if (params_.common.codec == "VP8") {
788 encoder_.reset(VideoEncoder::Create(VideoEncoder::kVp8)); 788 encoder_.reset(VideoEncoder::Create(VideoEncoder::kVp8));
789 payload_type = kPayloadTypeVP8; 789 payload_type = kPayloadTypeVP8;
790 } else if (params_.common.codec == "VP9") { 790 } else if (params_.common.codec == "VP9") {
791 encoder_.reset(VideoEncoder::Create(VideoEncoder::kVp9)); 791 encoder_.reset(VideoEncoder::Create(VideoEncoder::kVp9));
792 payload_type = kPayloadTypeVP9; 792 payload_type = kPayloadTypeVP9;
793 } else { 793 } else {
794 RTC_NOTREACHED() << "Codec not supported!"; 794 RTC_NOTREACHED() << "Codec not supported!";
795 return; 795 return;
796 } 796 }
797 send_config_.encoder_settings.encoder = encoder_.get(); 797 video_send_config_.encoder_settings.encoder = encoder_.get();
798 send_config_.encoder_settings.payload_name = params_.common.codec; 798 video_send_config_.encoder_settings.payload_name = params_.common.codec;
799 send_config_.encoder_settings.payload_type = payload_type; 799 video_send_config_.encoder_settings.payload_type = payload_type;
800 send_config_.rtp.nack.rtp_history_ms = kNackRtpHistoryMs; 800 video_send_config_.rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
801 send_config_.rtp.rtx.payload_type = kSendRtxPayloadType; 801 video_send_config_.rtp.rtx.payload_type = kSendRtxPayloadType;
802 for (size_t i = 0; i < num_streams; ++i) 802 for (size_t i = 0; i < num_streams; ++i)
803 send_config_.rtp.rtx.ssrcs.push_back(kSendRtxSsrcs[i]); 803 video_send_config_.rtp.rtx.ssrcs.push_back(kSendRtxSsrcs[i]);
804 804
805 send_config_.rtp.extensions.clear(); 805 video_send_config_.rtp.extensions.clear();
806 if (params_.common.send_side_bwe) { 806 if (params_.common.send_side_bwe) {
807 send_config_.rtp.extensions.push_back( 807 video_send_config_.rtp.extensions.push_back(
808 RtpExtension(RtpExtension::kTransportSequenceNumber, 808 RtpExtension(RtpExtension::kTransportSequenceNumber,
809 test::kTransportSequenceNumberExtensionId)); 809 test::kTransportSequenceNumberExtensionId));
810 } else { 810 } else {
811 send_config_.rtp.extensions.push_back(RtpExtension( 811 video_send_config_.rtp.extensions.push_back(RtpExtension(
812 RtpExtension::kAbsSendTime, test::kAbsSendTimeExtensionId)); 812 RtpExtension::kAbsSendTime, test::kAbsSendTimeExtensionId));
813 } 813 }
814 814
815 encoder_config_.min_transmit_bitrate_bps = params_.common.min_transmit_bps; 815 video_encoder_config_.min_transmit_bitrate_bps =
816 encoder_config_.streams = params_.ss.streams; 816 params_.common.min_transmit_bps;
817 encoder_config_.spatial_layers = params_.ss.spatial_layers; 817 video_encoder_config_.streams = params_.ss.streams;
818 video_encoder_config_.spatial_layers = params_.ss.spatial_layers;
818 819
819 CreateMatchingReceiveConfigs(recv_transport); 820 CreateMatchingReceiveConfigs(recv_transport);
820 821
821 for (size_t i = 0; i < num_streams; ++i) { 822 for (size_t i = 0; i < num_streams; ++i) {
822 receive_configs_[i].rtp.nack.rtp_history_ms = kNackRtpHistoryMs; 823 video_receive_configs_[i].rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
823 receive_configs_[i].rtp.rtx[kSendRtxPayloadType].ssrc = kSendRtxSsrcs[i]; 824 video_receive_configs_[i].rtp.rtx[kSendRtxPayloadType].ssrc =
824 receive_configs_[i].rtp.rtx[kSendRtxPayloadType].payload_type = 825 kSendRtxSsrcs[i];
826 video_receive_configs_[i].rtp.rtx[kSendRtxPayloadType].payload_type =
825 kSendRtxPayloadType; 827 kSendRtxPayloadType;
826 receive_configs_[i].rtp.transport_cc = params_.common.send_side_bwe; 828 video_receive_configs_[i].rtp.transport_cc = params_.common.send_side_bwe;
827 } 829 }
828 } 830 }
829 831
830 void VideoQualityTest::SetupScreenshare() { 832 void VideoQualityTest::SetupScreenshare() {
831 RTC_CHECK(params_.screenshare.enabled); 833 RTC_CHECK(params_.screenshare.enabled);
832 834
833 // Fill out codec settings. 835 // Fill out codec settings.
834 encoder_config_.content_type = VideoEncoderConfig::ContentType::kScreen; 836 video_encoder_config_.content_type = VideoEncoderConfig::ContentType::kScreen;
835 if (params_.common.codec == "VP8") { 837 if (params_.common.codec == "VP8") {
836 codec_settings_.VP8 = VideoEncoder::GetDefaultVp8Settings(); 838 codec_settings_.VP8 = VideoEncoder::GetDefaultVp8Settings();
837 codec_settings_.VP8.denoisingOn = false; 839 codec_settings_.VP8.denoisingOn = false;
838 codec_settings_.VP8.frameDroppingOn = false; 840 codec_settings_.VP8.frameDroppingOn = false;
839 codec_settings_.VP8.numberOfTemporalLayers = 841 codec_settings_.VP8.numberOfTemporalLayers =
840 static_cast<unsigned char>(params_.common.num_temporal_layers); 842 static_cast<unsigned char>(params_.common.num_temporal_layers);
841 encoder_config_.encoder_specific_settings = &codec_settings_.VP8; 843 video_encoder_config_.encoder_specific_settings = &codec_settings_.VP8;
842 } else if (params_.common.codec == "VP9") { 844 } else if (params_.common.codec == "VP9") {
843 codec_settings_.VP9 = VideoEncoder::GetDefaultVp9Settings(); 845 codec_settings_.VP9 = VideoEncoder::GetDefaultVp9Settings();
844 codec_settings_.VP9.denoisingOn = false; 846 codec_settings_.VP9.denoisingOn = false;
845 codec_settings_.VP9.frameDroppingOn = false; 847 codec_settings_.VP9.frameDroppingOn = false;
846 codec_settings_.VP9.numberOfTemporalLayers = 848 codec_settings_.VP9.numberOfTemporalLayers =
847 static_cast<unsigned char>(params_.common.num_temporal_layers); 849 static_cast<unsigned char>(params_.common.num_temporal_layers);
848 encoder_config_.encoder_specific_settings = &codec_settings_.VP9; 850 video_encoder_config_.encoder_specific_settings = &codec_settings_.VP9;
849 codec_settings_.VP9.numberOfSpatialLayers = 851 codec_settings_.VP9.numberOfSpatialLayers =
850 static_cast<unsigned char>(params_.ss.num_spatial_layers); 852 static_cast<unsigned char>(params_.ss.num_spatial_layers);
851 } 853 }
852 854
853 // Setup frame generator. 855 // Setup frame generator.
854 const size_t kWidth = 1850; 856 const size_t kWidth = 1850;
855 const size_t kHeight = 1110; 857 const size_t kHeight = 1110;
856 std::vector<std::string> slides; 858 std::vector<std::string> slides;
857 slides.push_back(test::ResourcePath("web_screenshot_1850_1110", "yuv")); 859 slides.push_back(test::ResourcePath("web_screenshot_1850_1110", "yuv"));
858 slides.push_back(test::ResourcePath("presentation_1850_1110", "yuv")); 860 slides.push_back(test::ResourcePath("presentation_1850_1110", "yuv"));
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
962 disable_quality_check ? -1.1 : params_.analyzer.avg_ssim_threshold, 964 disable_quality_check ? -1.1 : params_.analyzer.avg_ssim_threshold,
963 params_.analyzer.test_durations_secs * params_.common.fps, 965 params_.analyzer.test_durations_secs * params_.common.fps,
964 graph_data_output_file, graph_title, 966 graph_data_output_file, graph_title,
965 kSendSsrcs[params_.ss.selected_stream]); 967 kSendSsrcs[params_.ss.selected_stream]);
966 968
967 analyzer.SetReceiver(receiver_call_->Receiver()); 969 analyzer.SetReceiver(receiver_call_->Receiver());
968 send_transport.SetReceiver(&analyzer); 970 send_transport.SetReceiver(&analyzer);
969 recv_transport.SetReceiver(sender_call_->Receiver()); 971 recv_transport.SetReceiver(sender_call_->Receiver());
970 972
971 SetupCommon(&analyzer, &recv_transport); 973 SetupCommon(&analyzer, &recv_transport);
972 send_config_.encoding_time_observer = &analyzer; 974 video_send_config_.encoding_time_observer = &analyzer;
973 receive_configs_[params_.ss.selected_stream].renderer = &analyzer; 975 video_receive_configs_[params_.ss.selected_stream].renderer = &analyzer;
974 for (auto& config : receive_configs_) 976 for (auto& config : video_receive_configs_)
975 config.pre_decode_callback = &analyzer; 977 config.pre_decode_callback = &analyzer;
976 978
977 if (params_.screenshare.enabled) 979 if (params_.screenshare.enabled)
978 SetupScreenshare(); 980 SetupScreenshare();
979 981
980 CreateStreams(); 982 CreateStreams();
981 analyzer.input_ = send_stream_->Input(); 983 analyzer.input_ = video_send_stream_->Input();
982 analyzer.send_stream_ = send_stream_; 984 analyzer.send_stream_ = video_send_stream_;
983 985
984 CreateCapturer(&analyzer); 986 CreateCapturer(&analyzer);
985 987
986 send_stream_->Start(); 988 video_send_stream_->Start();
987 for (size_t i = 0; i < receive_streams_.size(); ++i) 989 for (VideoReceiveStream* receive_stream : video_receive_streams_)
988 receive_streams_[i]->Start(); 990 receive_stream->Start();
989 capturer_->Start(); 991 capturer_->Start();
990 992
991 analyzer.Wait(); 993 analyzer.Wait();
992 994
993 send_transport.StopSending(); 995 send_transport.StopSending();
994 recv_transport.StopSending(); 996 recv_transport.StopSending();
995 997
996 capturer_->Stop(); 998 capturer_->Stop();
997 for (size_t i = 0; i < receive_streams_.size(); ++i) 999 for (VideoReceiveStream* receive_stream : video_receive_streams_)
998 receive_streams_[i]->Stop(); 1000 receive_stream->Stop();
999 send_stream_->Stop(); 1001 video_send_stream_->Stop();
1000 1002
1001 DestroyStreams(); 1003 DestroyStreams();
1002 1004
1003 if (graph_data_output_file) 1005 if (graph_data_output_file)
1004 fclose(graph_data_output_file); 1006 fclose(graph_data_output_file);
1005 } 1007 }
1006 1008
1007 void VideoQualityTest::RunWithVideoRenderer(const Params& params) { 1009 void VideoQualityTest::RunWithVideoRenderer(const Params& params) {
1008 params_ = params; 1010 params_ = params;
1009 CheckParams(); 1011 CheckParams();
(...skipping 23 matching lines...) Expand all
1033 test::LayerFilteringTransport transport( 1035 test::LayerFilteringTransport transport(
1034 params.pipe, call.get(), kPayloadTypeVP8, kPayloadTypeVP9, 1036 params.pipe, call.get(), kPayloadTypeVP8, kPayloadTypeVP9,
1035 params.common.selected_tl, params_.ss.selected_sl); 1037 params.common.selected_tl, params_.ss.selected_sl);
1036 // TODO(ivica): Use two calls to be able to merge with RunWithAnalyzer or at 1038 // TODO(ivica): Use two calls to be able to merge with RunWithAnalyzer or at
1037 // least share as much code as possible. That way this test would also match 1039 // least share as much code as possible. That way this test would also match
1038 // the full stack tests better. 1040 // the full stack tests better.
1039 transport.SetReceiver(call->Receiver()); 1041 transport.SetReceiver(call->Receiver());
1040 1042
1041 SetupCommon(&transport, &transport); 1043 SetupCommon(&transport, &transport);
1042 1044
1043 send_config_.local_renderer = local_preview.get(); 1045 video_send_config_.local_renderer = local_preview.get();
1044 receive_configs_[stream_id].renderer = loopback_video.get(); 1046 video_receive_configs_[stream_id].renderer = loopback_video.get();
1045 1047
1046 if (params_.screenshare.enabled) 1048 if (params_.screenshare.enabled)
1047 SetupScreenshare(); 1049 SetupScreenshare();
1048 1050
1049 send_stream_ = call->CreateVideoSendStream(send_config_, encoder_config_); 1051 video_send_stream_ =
1052 call->CreateVideoSendStream(video_send_config_, video_encoder_config_);
1050 VideoReceiveStream* receive_stream = 1053 VideoReceiveStream* receive_stream =
1051 call->CreateVideoReceiveStream(receive_configs_[stream_id]); 1054 call->CreateVideoReceiveStream(video_receive_configs_[stream_id]);
1052 CreateCapturer(send_stream_->Input()); 1055 CreateCapturer(video_send_stream_->Input());
1053 1056
1054 receive_stream->Start(); 1057 receive_stream->Start();
1055 send_stream_->Start(); 1058 video_send_stream_->Start();
1056 capturer_->Start(); 1059 capturer_->Start();
1057 1060
1058 test::PressEnterToContinue(); 1061 test::PressEnterToContinue();
1059 1062
1060 capturer_->Stop(); 1063 capturer_->Stop();
1061 send_stream_->Stop(); 1064 video_send_stream_->Stop();
1062 receive_stream->Stop(); 1065 receive_stream->Stop();
1063 1066
1064 call->DestroyVideoReceiveStream(receive_stream); 1067 call->DestroyVideoReceiveStream(receive_stream);
1065 call->DestroyVideoSendStream(send_stream_); 1068 call->DestroyVideoSendStream(video_send_stream_);
1066 1069
1067 transport.StopSending(); 1070 transport.StopSending();
1068 } 1071 }
1069 1072
1070 } // namespace webrtc 1073 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/video/rampup_tests.cc ('k') | webrtc/video/video_send_stream_tests.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698