Implement RtpVideoSender::SetFecAllowed()
Bug: webrtc:10769 Change-Id: I7214b2eaad828c59fd9836e85a3ecd8e737fe5f7 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/143966 Commit-Queue: Elad Alon <eladalon@webrtc.org> Reviewed-by: Niels Moller <nisse@webrtc.org> Cr-Commit-Position: refs/heads/master@{#28420}
This commit is contained in:
parent
099b02a366
commit
67daf71689
@ -225,6 +225,7 @@ RtpVideoSender::RtpVideoSender(
|
||||
flexfec_sender_(
|
||||
MaybeCreateFlexfecSender(clock, rtp_config, suspended_ssrcs_)),
|
||||
fec_controller_(std::move(fec_controller)),
|
||||
fec_allowed_(true),
|
||||
rtp_streams_(
|
||||
CreateRtpStreamSenders(clock,
|
||||
rtp_config,
|
||||
@ -705,6 +706,12 @@ void RtpVideoSender::OnBitrateUpdated(uint32_t bitrate_bps,
|
||||
// protection overhead.
|
||||
encoder_target_rate_bps_ = fec_controller_->UpdateFecRates(
|
||||
payload_bitrate_bps, framerate, fraction_loss, loss_mask_vector_, rtt);
|
||||
if (!fec_allowed_) {
|
||||
encoder_target_rate_bps_ = payload_bitrate_bps;
|
||||
// fec_controller_->UpdateFecRates() was still called so as to allow
|
||||
// |fec_controller_| to update whatever internal state it might have,
|
||||
// since |fec_allowed_| may be toggled back on at any moment.
|
||||
}
|
||||
|
||||
uint32_t packetization_rate_bps = 0;
|
||||
if (account_for_packetization_overhead_) {
|
||||
@ -783,7 +790,8 @@ int RtpVideoSender::ProtectionRequest(const FecProtectionParams* delta_params,
|
||||
}
|
||||
|
||||
void RtpVideoSender::SetFecAllowed(bool fec_allowed) {
|
||||
// TODO(bugs.webrtc.og/10769): Handle this message.
|
||||
rtc::CritScope cs(&crit_);
|
||||
fec_allowed_ = fec_allowed;
|
||||
}
|
||||
|
||||
void RtpVideoSender::OnPacketFeedbackVector(
|
||||
|
||||
@ -178,7 +178,10 @@ class RtpVideoSender : public RtpVideoSenderInterface,
|
||||
std::map<uint32_t, RtpState> suspended_ssrcs_;
|
||||
|
||||
std::unique_ptr<FlexfecSender> flexfec_sender_;
|
||||
|
||||
const std::unique_ptr<FecController> fec_controller_;
|
||||
bool fec_allowed_ RTC_GUARDED_BY(crit_);
|
||||
|
||||
// Rtp modules are assumed to be sorted in simulcast index order.
|
||||
const std::vector<webrtc_internal_rtp_video_sender::RtpStreamSender>
|
||||
rtp_streams_;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user