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

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

Issue 2589713003: Make |rtcp_send_transport| mandatory in FlexfecReceiveStream::Config. (Closed)
Patch Set: Rebase. Created 3 years, 11 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
« no previous file with comments | « webrtc/video/end_to_end_tests.cc ('k') | no next file » | 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 "webrtc/video/video_quality_test.h" 10 #include "webrtc/video/video_quality_test.h"
(...skipping 1026 matching lines...) Expand 10 before | Expand all | Expand 10 after
1037 layer.target_bitrate_bps = v[2]; 1037 layer.target_bitrate_bps = v[2];
1038 params->ss.spatial_layers.push_back(layer); 1038 params->ss.spatial_layers.push_back(layer);
1039 } 1039 }
1040 } 1040 }
1041 1041
1042 void VideoQualityTest::SetupVideo(Transport* send_transport, 1042 void VideoQualityTest::SetupVideo(Transport* send_transport,
1043 Transport* recv_transport) { 1043 Transport* recv_transport) {
1044 if (params_.logs) 1044 if (params_.logs)
1045 trace_to_stderr_.reset(new test::TraceToStderr); 1045 trace_to_stderr_.reset(new test::TraceToStderr);
1046 1046
1047 size_t num_streams = params_.ss.streams.size(); 1047 size_t num_video_streams = params_.ss.streams.size();
1048 CreateSendConfig(num_streams, 0, 0, send_transport); 1048 size_t num_flexfec_streams = params_.video.flexfec ? 1 : 0;
1049 CreateSendConfig(num_video_streams, 0, num_flexfec_streams, send_transport);
1049 1050
1050 int payload_type; 1051 int payload_type;
1051 if (params_.video.codec == "H264") { 1052 if (params_.video.codec == "H264") {
1052 video_encoder_.reset(H264Encoder::Create(cricket::VideoCodec("H264"))); 1053 video_encoder_.reset(H264Encoder::Create(cricket::VideoCodec("H264")));
1053 payload_type = kPayloadTypeH264; 1054 payload_type = kPayloadTypeH264;
1054 } else if (params_.video.codec == "VP8") { 1055 } else if (params_.video.codec == "VP8") {
1055 video_encoder_.reset(VP8Encoder::Create()); 1056 video_encoder_.reset(VP8Encoder::Create());
1056 payload_type = kPayloadTypeVP8; 1057 payload_type = kPayloadTypeVP8;
1057 } else if (params_.video.codec == "VP9") { 1058 } else if (params_.video.codec == "VP9") {
1058 video_encoder_.reset(VP9Encoder::Create()); 1059 video_encoder_.reset(VP9Encoder::Create());
1059 payload_type = kPayloadTypeVP9; 1060 payload_type = kPayloadTypeVP9;
1060 } else { 1061 } else {
1061 RTC_NOTREACHED() << "Codec not supported!"; 1062 RTC_NOTREACHED() << "Codec not supported!";
1062 return; 1063 return;
1063 } 1064 }
1064 video_send_config_.encoder_settings.encoder = video_encoder_.get(); 1065 video_send_config_.encoder_settings.encoder = video_encoder_.get();
1065 video_send_config_.encoder_settings.payload_name = params_.video.codec; 1066 video_send_config_.encoder_settings.payload_name = params_.video.codec;
1066 video_send_config_.encoder_settings.payload_type = payload_type; 1067 video_send_config_.encoder_settings.payload_type = payload_type;
1067 video_send_config_.rtp.nack.rtp_history_ms = kNackRtpHistoryMs; 1068 video_send_config_.rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
1068 video_send_config_.rtp.rtx.payload_type = kSendRtxPayloadType; 1069 video_send_config_.rtp.rtx.payload_type = kSendRtxPayloadType;
1069 for (size_t i = 0; i < num_streams; ++i) 1070 for (size_t i = 0; i < num_video_streams; ++i)
1070 video_send_config_.rtp.rtx.ssrcs.push_back(kSendRtxSsrcs[i]); 1071 video_send_config_.rtp.rtx.ssrcs.push_back(kSendRtxSsrcs[i]);
1071 1072
1072 video_send_config_.rtp.extensions.clear(); 1073 video_send_config_.rtp.extensions.clear();
1073 if (params_.call.send_side_bwe) { 1074 if (params_.call.send_side_bwe) {
1074 video_send_config_.rtp.extensions.push_back( 1075 video_send_config_.rtp.extensions.push_back(
1075 RtpExtension(RtpExtension::kTransportSequenceNumberUri, 1076 RtpExtension(RtpExtension::kTransportSequenceNumberUri,
1076 test::kTransportSequenceNumberExtensionId)); 1077 test::kTransportSequenceNumberExtensionId));
1077 } else { 1078 } else {
1078 video_send_config_.rtp.extensions.push_back(RtpExtension( 1079 video_send_config_.rtp.extensions.push_back(RtpExtension(
1079 RtpExtension::kAbsSendTimeUri, test::kAbsSendTimeExtensionId)); 1080 RtpExtension::kAbsSendTimeUri, test::kAbsSendTimeExtensionId));
(...skipping 11 matching lines...) Expand all
1091 video_encoder_config_.max_bitrate_bps += 1092 video_encoder_config_.max_bitrate_bps +=
1092 params_.ss.streams[i].max_bitrate_bps; 1093 params_.ss.streams[i].max_bitrate_bps;
1093 } 1094 }
1094 video_encoder_config_.video_stream_factory = 1095 video_encoder_config_.video_stream_factory =
1095 new rtc::RefCountedObject<VideoStreamFactory>(params_.ss.streams); 1096 new rtc::RefCountedObject<VideoStreamFactory>(params_.ss.streams);
1096 1097
1097 video_encoder_config_.spatial_layers = params_.ss.spatial_layers; 1098 video_encoder_config_.spatial_layers = params_.ss.spatial_layers;
1098 1099
1099 CreateMatchingReceiveConfigs(recv_transport); 1100 CreateMatchingReceiveConfigs(recv_transport);
1100 1101
1101 for (size_t i = 0; i < num_streams; ++i) { 1102 for (size_t i = 0; i < num_video_streams; ++i) {
1102 video_receive_configs_[i].rtp.nack.rtp_history_ms = kNackRtpHistoryMs; 1103 video_receive_configs_[i].rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
1103 video_receive_configs_[i].rtp.rtx[payload_type].ssrc = kSendRtxSsrcs[i]; 1104 video_receive_configs_[i].rtp.rtx[payload_type].ssrc = kSendRtxSsrcs[i];
1104 video_receive_configs_[i].rtp.rtx[payload_type].payload_type = 1105 video_receive_configs_[i].rtp.rtx[payload_type].payload_type =
1105 kSendRtxPayloadType; 1106 kSendRtxPayloadType;
1106 video_receive_configs_[i].rtp.transport_cc = params_.call.send_side_bwe; 1107 video_receive_configs_[i].rtp.transport_cc = params_.call.send_side_bwe;
1107 } 1108 }
1108 1109
1109 if (params_.video.flexfec) { 1110 if (params_.video.flexfec) {
1110 video_send_config_.rtp.flexfec.flexfec_payload_type = kFlexfecPayloadType; 1111 // Override send config constructed by CreateSendConfig.
1111 video_send_config_.rtp.flexfec.flexfec_ssrc = kFlexfecSendSsrc;
1112 video_send_config_.rtp.flexfec.protected_media_ssrcs = { 1112 video_send_config_.rtp.flexfec.protected_media_ssrcs = {
1113 kVideoSendSsrcs[params_.ss.selected_stream]}; 1113 kVideoSendSsrcs[params_.ss.selected_stream]};
1114 1114
1115 FlexfecReceiveStream::Config flexfec_receive_config; 1115 // The matching receive config is _not_ created by
1116 // CreateMatchingReceiveConfigs, since VideoQualityTest is not a BaseTest.
1117 // Set up the receive config manually instead.
1118 FlexfecReceiveStream::Config flexfec_receive_config(recv_transport);
1116 flexfec_receive_config.payload_type = 1119 flexfec_receive_config.payload_type =
1117 video_send_config_.rtp.flexfec.flexfec_payload_type; 1120 video_send_config_.rtp.flexfec.flexfec_payload_type;
1118 flexfec_receive_config.remote_ssrc = 1121 flexfec_receive_config.remote_ssrc =
1119 video_send_config_.rtp.flexfec.flexfec_ssrc; 1122 video_send_config_.rtp.flexfec.flexfec_ssrc;
1120 flexfec_receive_config.protected_media_ssrcs = 1123 flexfec_receive_config.protected_media_ssrcs =
1121 video_send_config_.rtp.flexfec.protected_media_ssrcs; 1124 video_send_config_.rtp.flexfec.protected_media_ssrcs;
1122 flexfec_receive_config.transport_cc = params_.call.send_side_bwe; 1125 flexfec_receive_config.transport_cc = params_.call.send_side_bwe;
1123 if (params_.call.send_side_bwe) { 1126 if (params_.call.send_side_bwe) {
1124 flexfec_receive_config.rtp_header_extensions.push_back( 1127 flexfec_receive_config.rtp_header_extensions.push_back(
1125 RtpExtension(RtpExtension::kTransportSequenceNumberUri, 1128 RtpExtension(RtpExtension::kTransportSequenceNumberUri,
(...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after
1534 std::ostringstream str; 1537 std::ostringstream str;
1535 str << receive_logs_++; 1538 str << receive_logs_++;
1536 std::string path = 1539 std::string path =
1537 params_.video.encoded_frame_base_path + "." + str.str() + ".recv.ivf"; 1540 params_.video.encoded_frame_base_path + "." + str.str() + ".recv.ivf";
1538 stream->EnableEncodedFrameRecording(rtc::CreatePlatformFile(path), 1541 stream->EnableEncodedFrameRecording(rtc::CreatePlatformFile(path),
1539 10000000); 1542 10000000);
1540 } 1543 }
1541 } 1544 }
1542 1545
1543 } // namespace webrtc 1546 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/video/end_to_end_tests.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698