aboutsummaryrefslogtreecommitdiff
path: root/call
diff options
context:
space:
mode:
authorErik Språng <sprang@webrtc.org>2020-06-24 18:39:25 +0000
committerCommit Bot <commit-bot@chromium.org>2020-06-24 18:41:10 +0000
commit1b485322085d941a9ec08acc6da3a05e6f5fb5e5 (patch)
tree27eda894b4ccc5ca243de0d34921f0e7b8dbed73 /call
parent75fd127640bdf1729af6b4a25875e6d01f1570e0 (diff)
downloadwebrtc-1b485322085d941a9ec08acc6da3a05e6f5fb5e5.tar.gz
Revert "Allows FEC generation after pacer step."
This reverts commit 75fd127640bdf1729af6b4a25875e6d01f1570e0. Reason for revert: Breaks downstream test Original change's description: > Allows FEC generation after pacer step. > > Split out from https://webrtc-review.googlesource.com/c/src/+/173708 > This CL enables FEC packets to be generated as media packets are sent, > rather than generated, i.e. media packets are inserted into the fec > generator after the pacing stage rather than at packetization time. > > This may have some small impact of performance. FEC packets are > typically only generated when a new packet with a marker bit is added, > which means FEC packets protecting a frame will now be sent after all > of the media packets, rather than (potentially) interleaved with them. > Therefore this feature is currently behind a flag so we can examine the > impact. Once we are comfortable with the behavior we'll make it default > and remove the old code. > > Note that this change does not include the "protect all header > extensions" part of the original CL - that will be a follow-up. > > Bug: webrtc:11340 > Change-Id: I3fe139c5d53968579b75b91e2612075451ff0f5d > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177760 > Commit-Queue: Erik Språng <sprang@webrtc.org> > Reviewed-by: Sebastian Jansson <srte@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#31558} TBR=sprang@webrtc.org,srte@webrtc.org Change-Id: Ie714e5f68580cbd57560e086c9dc7292a052de5f No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:11340 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177983 Reviewed-by: Erik Språng <sprang@webrtc.org> Commit-Queue: Erik Språng <sprang@webrtc.org> Cr-Commit-Position: refs/heads/master@{#31559}
Diffstat (limited to 'call')
-rw-r--r--call/rtp_video_sender.cc35
-rw-r--r--call/rtp_video_sender.h1
2 files changed, 8 insertions, 28 deletions
diff --git a/call/rtp_video_sender.cc b/call/rtp_video_sender.cc
index 854a18aa54..5f8d2df965 100644
--- a/call/rtp_video_sender.cc
+++ b/call/rtp_video_sender.cc
@@ -197,7 +197,6 @@ std::vector<RtpStreamSender> CreateRtpStreamSenders(
FrameEncryptorInterface* frame_encryptor,
const CryptoOptions& crypto_options,
rtc::scoped_refptr<FrameTransformerInterface> frame_transformer,
- bool use_deferred_fec,
const WebRtcKeyValueConfig& trials) {
RTC_DCHECK_GT(rtp_config.ssrcs.size(), 0);
@@ -245,9 +244,7 @@ std::vector<RtpStreamSender> CreateRtpStreamSenders(
std::unique_ptr<VideoFecGenerator> fec_generator =
MaybeCreateFecGenerator(clock, rtp_config, suspended_ssrcs, i, trials);
configuration.fec_generator = fec_generator.get();
- if (!use_deferred_fec) {
- video_config.fec_generator = fec_generator.get();
- }
+ video_config.fec_generator = fec_generator.get();
configuration.rtx_send_ssrc =
rtp_config.GetRtxSsrcAssociatedWithMediaSsrc(rtp_config.ssrcs[i]);
@@ -341,9 +338,6 @@ RtpVideoSender::RtpVideoSender(
field_trials_.Lookup("WebRTC-UseEarlyLossDetection"),
"Disabled")),
has_packet_feedback_(TransportSeqNumExtensionConfigured(rtp_config)),
- use_deferred_fec_(
- absl::StartsWith(field_trials_.Lookup("WebRTC-DeferredFecGeneration"),
- "Enabled")),
active_(false),
module_process_thread_(nullptr),
suspended_ssrcs_(std::move(suspended_ssrcs)),
@@ -362,7 +356,6 @@ RtpVideoSender::RtpVideoSender(
frame_encryptor,
crypto_options,
std::move(frame_transformer),
- use_deferred_fec_,
field_trials_)),
rtp_config_(rtp_config),
codec_type_(GetVideoCodecType(rtp_config)),
@@ -855,26 +848,14 @@ int RtpVideoSender::ProtectionRequest(const FecProtectionParams* delta_params,
*sent_nack_rate_bps = 0;
*sent_fec_rate_bps = 0;
for (const RtpStreamSender& stream : rtp_streams_) {
- if (use_deferred_fec_) {
- stream.rtp_rtcp->SetFecProtectionParams(*delta_params, *key_params);
-
- auto send_bitrate = stream.rtp_rtcp->GetSendRates();
- *sent_video_rate_bps += send_bitrate[RtpPacketMediaType::kVideo].bps();
- *sent_fec_rate_bps +=
- send_bitrate[RtpPacketMediaType::kForwardErrorCorrection].bps();
- *sent_nack_rate_bps +=
- send_bitrate[RtpPacketMediaType::kRetransmission].bps();
- } else {
- if (stream.fec_generator) {
- stream.fec_generator->SetProtectionParameters(*delta_params,
- *key_params);
- *sent_fec_rate_bps += stream.fec_generator->CurrentFecRate().bps();
- }
- *sent_video_rate_bps += stream.sender_video->VideoBitrateSent();
- *sent_nack_rate_bps +=
- stream.rtp_rtcp->GetSendRates()[RtpPacketMediaType::kRetransmission]
- .bps<uint32_t>();
+ if (stream.fec_generator) {
+ stream.fec_generator->SetProtectionParameters(*delta_params, *key_params);
+ *sent_fec_rate_bps += stream.fec_generator->CurrentFecRate().bps();
}
+ *sent_video_rate_bps += stream.sender_video->VideoBitrateSent();
+ *sent_nack_rate_bps +=
+ stream.rtp_rtcp->GetSendRates()[RtpPacketMediaType::kRetransmission]
+ .bps<uint32_t>();
}
return 0;
}
diff --git a/call/rtp_video_sender.h b/call/rtp_video_sender.h
index e364729236..0c277d6aa7 100644
--- a/call/rtp_video_sender.h
+++ b/call/rtp_video_sender.h
@@ -176,7 +176,6 @@ class RtpVideoSender : public RtpVideoSenderInterface,
const bool account_for_packetization_overhead_;
const bool use_early_loss_detection_;
const bool has_packet_feedback_;
- const bool use_deferred_fec_;
// TODO(holmer): Remove crit_ once RtpVideoSender runs on the
// transport task queue.