Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(183)

Unified Diff: webrtc/video/video_send_stream.cc

Issue 2657863002: Move more calls to webrtc::field_trial::FindFullName into ctor (Closed)
Patch Set: . Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/modules/congestion_controller/transport_feedback_adapter.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/video/video_send_stream.cc
diff --git a/webrtc/video/video_send_stream.cc b/webrtc/video/video_send_stream.cc
index 9189b98e5a2855b682887bda76737723454c1edd..bb67114ad0623f34d5e355a3da1361b7742ca0b9 100644
--- a/webrtc/video/video_send_stream.cc
+++ b/webrtc/video/video_send_stream.cc
@@ -292,9 +292,6 @@ int CalculateMaxPadBitrateBps(std::vector<VideoStream> streams,
uint32_t CalculateOverheadRateBps(int packets_per_second,
size_t overhead_bytes_per_packet,
uint32_t max_overhead_bps) {
- if (webrtc::field_trial::FindFullName("WebRTC-SendSideBwe-WithOverhead") !=
- "Enabled")
- return 0;
uint32_t overhead_bps =
static_cast<uint32_t>(8 * overhead_bytes_per_packet * packets_per_second);
return std::min(overhead_bps, max_overhead_bps);
@@ -398,6 +395,8 @@ class VideoSendStreamImpl : public webrtc::BitrateAllocatorObserver,
void SignalEncoderTimedOut();
void SignalEncoderActive();
+ const bool send_side_bwe_with_overhead_;
+
SendStatisticsProxy* const stats_proxy_;
const VideoSendStream::Config* const config_;
std::map<uint32_t, RtpState> suspended_ssrcs_;
@@ -758,7 +757,9 @@ VideoSendStreamImpl::VideoSendStreamImpl(
const VideoSendStream::Config* config,
int initial_encoder_max_bitrate,
std::map<uint32_t, RtpState> suspended_ssrcs)
- : stats_proxy_(stats_proxy),
+ : send_side_bwe_with_overhead_(webrtc::field_trial::FindFullName(
+ "WebRTC-SendSideBwe-WithOverhead") == "Enabled"),
+ stats_proxy_(stats_proxy),
config_(config),
suspended_ssrcs_(std::move(suspended_ssrcs)),
module_process_thread_(nullptr),
@@ -1226,14 +1227,15 @@ uint32_t VideoSendStreamImpl::OnBitrateUpdated(uint32_t bitrate_bps,
// Substract overhead from bitrate.
rtc::CritScope lock(&overhead_bytes_per_packet_crit_);
- uint32_t payload_bitrate_bps =
- bitrate_bps -
- CalculateOverheadRateBps(
- CalculatePacketRate(bitrate_bps,
- config_->rtp.max_packet_size +
- transport_overhead_bytes_per_packet_),
- overhead_bytes_per_packet_ + transport_overhead_bytes_per_packet_,
- bitrate_bps);
+ uint32_t payload_bitrate_bps = bitrate_bps;
+ if (send_side_bwe_with_overhead_) {
+ payload_bitrate_bps -= CalculateOverheadRateBps(
+ CalculatePacketRate(bitrate_bps,
+ config_->rtp.max_packet_size +
+ transport_overhead_bytes_per_packet_),
+ overhead_bytes_per_packet_ + transport_overhead_bytes_per_packet_,
+ bitrate_bps);
+ }
// Get the encoder target rate. It is the estimated network rate -
// protection overhead.
@@ -1241,13 +1243,17 @@ uint32_t VideoSendStreamImpl::OnBitrateUpdated(uint32_t bitrate_bps,
payload_bitrate_bps, stats_proxy_->GetSendFrameRate(), fraction_loss,
rtt);
- uint32_t encoder_overhead_rate_bps = CalculateOverheadRateBps(
- CalculatePacketRate(encoder_target_rate_bps_,
- config_->rtp.max_packet_size +
- transport_overhead_bytes_per_packet_ -
- overhead_bytes_per_packet_),
- overhead_bytes_per_packet_ + transport_overhead_bytes_per_packet_,
- bitrate_bps - encoder_target_rate_bps_);
+ uint32_t encoder_overhead_rate_bps =
+ send_side_bwe_with_overhead_
+ ? CalculateOverheadRateBps(
+ CalculatePacketRate(encoder_target_rate_bps_,
+ config_->rtp.max_packet_size +
+ transport_overhead_bytes_per_packet_ -
+ overhead_bytes_per_packet_),
+ overhead_bytes_per_packet_ +
+ transport_overhead_bytes_per_packet_,
+ bitrate_bps - encoder_target_rate_bps_)
+ : 0;
// When the field trial "WebRTC-SendSideBwe-WithOverhead" is enabled
// protection_bitrate includes overhead.
« no previous file with comments | « webrtc/modules/congestion_controller/transport_feedback_adapter.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698