diff --git a/api/transport/bitrate_settings.h b/api/transport/bitrate_settings.h index 888e2b9901..b6c022dd11 100644 --- a/api/transport/bitrate_settings.h +++ b/api/transport/bitrate_settings.h @@ -45,18 +45,6 @@ struct BitrateConstraints { static constexpr int kDefaultStartBitrateBps = 300000; }; -// Like std::min, but considers non-positive values to be unset. -template -static T MinPositive(T a, T b) { - if (a <= 0) { - return b; - } - if (b <= 0) { - return a; - } - return std::min(a, b); -} - } // namespace webrtc #endif // API_TRANSPORT_BITRATE_SETTINGS_H_ diff --git a/call/rtp_bitrate_configurator.cc b/call/rtp_bitrate_configurator.cc index fafd8ec997..99ccfc98f7 100644 --- a/call/rtp_bitrate_configurator.cc +++ b/call/rtp_bitrate_configurator.cc @@ -14,6 +14,22 @@ #include "rtc_base/checks.h" +namespace { + +// Returns its smallest positive argument. If neither argument is positive, +// returns an arbitrary nonpositive value. +int MinPositive(int a, int b) { + if (a <= 0) { + return b; + } + if (b <= 0) { + return a; + } + return std::min(a, b); +} + +} // namespace + namespace webrtc { RtpBitrateConfigurator::RtpBitrateConfigurator( const BitrateConstraints& bitrate_config) diff --git a/media/engine/webrtc_video_engine.cc b/media/engine/webrtc_video_engine.cc index f1eca04e5d..ec05d00861 100644 --- a/media/engine/webrtc_video_engine.cc +++ b/media/engine/webrtc_video_engine.cc @@ -337,6 +337,19 @@ int GetMinVideoBitrateBps(webrtc::VideoCodecType type) { } return kMinVideoBitrateBps; } + +// Returns its smallest positive argument. If neither argument is positive, +// returns an arbitrary nonpositive value. +int MinPositive(int a, int b) { + if (a <= 0) { + return b; + } + if (b <= 0) { + return a; + } + return std::min(a, b); +} + } // namespace // This constant is really an on/off, lower-level configurable NACK history @@ -2217,8 +2230,8 @@ WebRtcVideoChannel::WebRtcVideoSendStream::CreateVideoEncoderConfig( if (rtp_parameters_.encodings[0].max_bitrate_bps && rtp_parameters_.encodings.size() == 1) { stream_max_bitrate = - webrtc::MinPositive(*(rtp_parameters_.encodings[0].max_bitrate_bps), - parameters_.max_bitrate_bps); + MinPositive(*(rtp_parameters_.encodings[0].max_bitrate_bps), + parameters_.max_bitrate_bps); } // The codec max bitrate comes from the "x-google-max-bitrate" parameter diff --git a/media/engine/webrtc_voice_engine.cc b/media/engine/webrtc_voice_engine.cc index 1125780b46..ba893311e9 100644 --- a/media/engine/webrtc_voice_engine.cc +++ b/media/engine/webrtc_voice_engine.cc @@ -141,6 +141,18 @@ absl::optional GetAudioNetworkAdaptorConfig( return absl::nullopt; } +// Returns its smallest positive argument. If neither argument is positive, +// returns an arbitrary nonpositive value. +int MinPositive(int a, int b) { + if (a <= 0) { + return b; + } + if (b <= 0) { + return a; + } + return std::min(a, b); +} + // |max_send_bitrate_bps| is the bitrate from "b=" in SDP. // |rtp_max_bitrate_bps| is the bitrate from RtpSender::SetParameters. absl::optional ComputeSendBitrate(int max_send_bitrate_bps, @@ -148,10 +160,9 @@ absl::optional ComputeSendBitrate(int max_send_bitrate_bps, const webrtc::AudioCodecSpec& spec) { // If application-configured bitrate is set, take minimum of that and SDP // bitrate. - const int bps = - rtp_max_bitrate_bps - ? webrtc::MinPositive(max_send_bitrate_bps, *rtp_max_bitrate_bps) - : max_send_bitrate_bps; + const int bps = rtp_max_bitrate_bps + ? MinPositive(max_send_bitrate_bps, *rtp_max_bitrate_bps) + : max_send_bitrate_bps; if (bps <= 0) { return spec.info.default_bitrate_bps; }