From 274c1dc545c315bd24d6f778798028ec661749ef Mon Sep 17 00:00:00 2001 From: philipel Date: Wed, 4 May 2016 06:21:01 -0700 Subject: [PATCH] Added flag for FEC for video_loopback. Review-Url: https://codereview.webrtc.org/1937983002 Cr-Commit-Position: refs/heads/master@{#12626} --- webrtc/video/video_loopback.cc | 6 +++++- webrtc/video/video_quality_test.cc | 9 +++++++++ webrtc/video/video_quality_test.h | 1 + 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/webrtc/video/video_loopback.cc b/webrtc/video/video_loopback.cc index 87aacc6755..0974d5869f 100644 --- a/webrtc/video/video_loopback.cc +++ b/webrtc/video/video_loopback.cc @@ -178,6 +178,8 @@ DEFINE_bool(send_side_bwe, true, "Use send-side bandwidth estimation"); DEFINE_bool(allow_reordering, false, "Allow packet reordering to occur"); +DEFINE_bool(use_fec, false, "Use forward error correction."); + DEFINE_string( force_fieldtrials, "", @@ -216,7 +218,9 @@ void Loopback() { flags::MaxBitrateKbps() * 1000, flags::Codec(), flags::NumTemporalLayers(), flags::SelectedTL(), 0, // No min transmit bitrate. - call_bitrate_config, flags::FLAGS_send_side_bwe}, + call_bitrate_config, + flags::FLAGS_send_side_bwe, + flags::FLAGS_use_fec}, {flags::Clip()}, {}, // Screenshare specific. {"video", 0.0, 0.0, flags::DurationSecs(), flags::OutputFilename(), diff --git a/webrtc/video/video_quality_test.cc b/webrtc/video/video_quality_test.cc index 3f5f37ebd3..78d8845ffd 100644 --- a/webrtc/video/video_quality_test.cc +++ b/webrtc/video/video_quality_test.cc @@ -1127,6 +1127,15 @@ void VideoQualityTest::RunWithVideoRenderer(const Params& params) { video_send_config_.local_renderer = local_preview.get(); video_receive_configs_[stream_id].renderer = loopback_video.get(); + if (params.common.fec) { + video_send_config_.rtp.fec.red_payload_type = kRedPayloadType; + video_send_config_.rtp.fec.ulpfec_payload_type = kUlpfecPayloadType; + video_receive_configs_[stream_id].rtp.fec.red_payload_type = + kRedPayloadType; + video_receive_configs_[stream_id].rtp.fec.ulpfec_payload_type = + kUlpfecPayloadType; + } + if (params_.screenshare.enabled) SetupScreenshare(); diff --git a/webrtc/video/video_quality_test.h b/webrtc/video/video_quality_test.h index b476004aae..e138a89a8c 100644 --- a/webrtc/video/video_quality_test.h +++ b/webrtc/video/video_quality_test.h @@ -41,6 +41,7 @@ class VideoQualityTest : public test::CallTest { Call::Config::BitrateConfig call_bitrate_config; bool send_side_bwe; + bool fec; } common; struct { // Video-specific settings. std::string clip_name;