diff options
author | Erik Språng <sprang@webrtc.org> | 2020-06-24 18:39:25 +0000 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-06-24 18:41:10 +0000 |
commit | 1b485322085d941a9ec08acc6da3a05e6f5fb5e5 (patch) | |
tree | 27eda894b4ccc5ca243de0d34921f0e7b8dbed73 /call | |
parent | 75fd127640bdf1729af6b4a25875e6d01f1570e0 (diff) | |
download | webrtc-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.cc | 35 | ||||
-rw-r--r-- | call/rtp_video_sender.h | 1 |
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. |