OLD | NEW |
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 1269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1280 | 1280 |
1281 video_send_config_.rtp.extensions.clear(); | 1281 video_send_config_.rtp.extensions.clear(); |
1282 if (params_.call.send_side_bwe) { | 1282 if (params_.call.send_side_bwe) { |
1283 video_send_config_.rtp.extensions.push_back( | 1283 video_send_config_.rtp.extensions.push_back( |
1284 RtpExtension(RtpExtension::kTransportSequenceNumberUri, | 1284 RtpExtension(RtpExtension::kTransportSequenceNumberUri, |
1285 test::kTransportSequenceNumberExtensionId)); | 1285 test::kTransportSequenceNumberExtensionId)); |
1286 } else { | 1286 } else { |
1287 video_send_config_.rtp.extensions.push_back(RtpExtension( | 1287 video_send_config_.rtp.extensions.push_back(RtpExtension( |
1288 RtpExtension::kAbsSendTimeUri, test::kAbsSendTimeExtensionId)); | 1288 RtpExtension::kAbsSendTimeUri, test::kAbsSendTimeExtensionId)); |
1289 } | 1289 } |
| 1290 video_send_config_.rtp.extensions.push_back(RtpExtension( |
| 1291 RtpExtension::kVideoContentTypeUri, test::kVideoContentTypeExtensionId)); |
1290 | 1292 |
1291 video_encoder_config_.min_transmit_bitrate_bps = | 1293 video_encoder_config_.min_transmit_bitrate_bps = |
1292 params_.video.min_transmit_bps; | 1294 params_.video.min_transmit_bps; |
1293 | 1295 |
1294 video_send_config_.suspend_below_min_bitrate = | 1296 video_send_config_.suspend_below_min_bitrate = |
1295 params_.video.suspend_below_min_bitrate; | 1297 params_.video.suspend_below_min_bitrate; |
1296 | 1298 |
1297 video_encoder_config_.number_of_streams = params_.ss.streams.size(); | 1299 video_encoder_config_.number_of_streams = params_.ss.streams.size(); |
1298 video_encoder_config_.max_bitrate_bps = 0; | 1300 video_encoder_config_.max_bitrate_bps = 0; |
1299 for (size_t i = 0; i < params_.ss.streams.size(); ++i) { | 1301 for (size_t i = 0; i < params_.ss.streams.size(); ++i) { |
1300 video_encoder_config_.max_bitrate_bps += | 1302 video_encoder_config_.max_bitrate_bps += |
1301 params_.ss.streams[i].max_bitrate_bps; | 1303 params_.ss.streams[i].max_bitrate_bps; |
1302 } | 1304 } |
1303 video_encoder_config_.video_stream_factory = | 1305 video_encoder_config_.video_stream_factory = |
1304 new rtc::RefCountedObject<VideoStreamFactory>(params_.ss.streams); | 1306 new rtc::RefCountedObject<VideoStreamFactory>(params_.ss.streams); |
1305 | 1307 |
1306 video_encoder_config_.spatial_layers = params_.ss.spatial_layers; | 1308 video_encoder_config_.spatial_layers = params_.ss.spatial_layers; |
1307 | 1309 |
1308 CreateMatchingReceiveConfigs(recv_transport); | 1310 CreateMatchingReceiveConfigs(recv_transport); |
1309 | 1311 |
1310 for (size_t i = 0; i < num_video_streams; ++i) { | 1312 for (size_t i = 0; i < num_video_streams; ++i) { |
1311 video_receive_configs_[i].rtp.nack.rtp_history_ms = kNackRtpHistoryMs; | 1313 video_receive_configs_[i].rtp.nack.rtp_history_ms = kNackRtpHistoryMs; |
1312 video_receive_configs_[i].rtp.rtx_ssrc = kSendRtxSsrcs[i]; | 1314 video_receive_configs_[i].rtp.rtx_ssrc = kSendRtxSsrcs[i]; |
1313 video_receive_configs_[i].rtp.rtx_payload_types[payload_type] = | 1315 video_receive_configs_[i].rtp.rtx_payload_types[payload_type] = |
1314 kSendRtxPayloadType; | 1316 kSendRtxPayloadType; |
1315 video_receive_configs_[i].rtp.transport_cc = params_.call.send_side_bwe; | 1317 video_receive_configs_[i].rtp.transport_cc = params_.call.send_side_bwe; |
1316 video_receive_configs_[i].rtp.remb = !params_.call.send_side_bwe; | 1318 video_receive_configs_[i].rtp.remb = !params_.call.send_side_bwe; |
| 1319 // Enable RTT calculation so NTP time estimator will work. |
| 1320 video_receive_configs_[i].rtp.rtcp_xr.receiver_reference_time_report = true; |
1317 // Force fake decoders on non-selected simulcast streams. | 1321 // Force fake decoders on non-selected simulcast streams. |
1318 if (i != params_.ss.selected_stream) { | 1322 if (i != params_.ss.selected_stream) { |
1319 VideoReceiveStream::Decoder decoder; | 1323 VideoReceiveStream::Decoder decoder; |
1320 decoder.decoder = new test::FakeDecoder(); | 1324 decoder.decoder = new test::FakeDecoder(); |
1321 decoder.payload_type = video_send_config_.encoder_settings.payload_type; | 1325 decoder.payload_type = video_send_config_.encoder_settings.payload_type; |
1322 decoder.payload_name = video_send_config_.encoder_settings.payload_name; | 1326 decoder.payload_name = video_send_config_.encoder_settings.payload_name; |
1323 video_receive_configs_[i].decoders.clear(); | 1327 video_receive_configs_[i].decoders.clear(); |
1324 allocated_decoders_.emplace_back(decoder.decoder); | 1328 allocated_decoders_.emplace_back(decoder.decoder); |
1325 video_receive_configs_[i].decoders.push_back(decoder); | 1329 video_receive_configs_[i].decoders.push_back(decoder); |
1326 } | 1330 } |
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1534 RTC_DCHECK(thumbnail_capturers_.back()); | 1538 RTC_DCHECK(thumbnail_capturers_.back()); |
1535 } | 1539 } |
1536 } | 1540 } |
1537 | 1541 |
1538 void VideoQualityTest::CreateCapturer() { | 1542 void VideoQualityTest::CreateCapturer() { |
1539 if (params_.screenshare.enabled) { | 1543 if (params_.screenshare.enabled) { |
1540 test::FrameGeneratorCapturer* frame_generator_capturer = | 1544 test::FrameGeneratorCapturer* frame_generator_capturer = |
1541 new test::FrameGeneratorCapturer(clock_, std::move(frame_generator_), | 1545 new test::FrameGeneratorCapturer(clock_, std::move(frame_generator_), |
1542 params_.video.fps); | 1546 params_.video.fps); |
1543 EXPECT_TRUE(frame_generator_capturer->Init()); | 1547 EXPECT_TRUE(frame_generator_capturer->Init()); |
| 1548 frame_generator_capturer->SetFakeContentType(kVideoContent_Screenshare); |
1544 video_capturer_.reset(frame_generator_capturer); | 1549 video_capturer_.reset(frame_generator_capturer); |
1545 } else { | 1550 } else { |
1546 if (params_.video.clip_name.empty()) { | 1551 if (params_.video.clip_name.empty()) { |
1547 video_capturer_.reset(test::VcmCapturer::Create( | 1552 video_capturer_.reset(test::VcmCapturer::Create( |
1548 params_.video.width, params_.video.height, params_.video.fps)); | 1553 params_.video.width, params_.video.height, params_.video.fps)); |
1549 if (!video_capturer_) { | 1554 if (!video_capturer_) { |
1550 // Failed to get actual camera, use chroma generator as backup. | 1555 // Failed to get actual camera, use chroma generator as backup. |
1551 video_capturer_.reset(test::FrameGeneratorCapturer::Create( | 1556 video_capturer_.reset(test::FrameGeneratorCapturer::Create( |
1552 static_cast<int>(params_.video.width), | 1557 static_cast<int>(params_.video.width), |
1553 static_cast<int>(params_.video.height), params_.video.fps, clock_)); | 1558 static_cast<int>(params_.video.height), params_.video.fps, clock_)); |
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1881 if (!params_.video.encoded_frame_base_path.empty()) { | 1886 if (!params_.video.encoded_frame_base_path.empty()) { |
1882 std::ostringstream str; | 1887 std::ostringstream str; |
1883 str << receive_logs_++; | 1888 str << receive_logs_++; |
1884 std::string path = | 1889 std::string path = |
1885 params_.video.encoded_frame_base_path + "." + str.str() + ".recv.ivf"; | 1890 params_.video.encoded_frame_base_path + "." + str.str() + ".recv.ivf"; |
1886 stream->EnableEncodedFrameRecording(rtc::CreatePlatformFile(path), | 1891 stream->EnableEncodedFrameRecording(rtc::CreatePlatformFile(path), |
1887 10000000); | 1892 10000000); |
1888 } | 1893 } |
1889 } | 1894 } |
1890 } // namespace webrtc | 1895 } // namespace webrtc |
OLD | NEW |