diff --git a/src/modules/rtp_rtcp/source/rtp_rtcp_impl.cc b/src/modules/rtp_rtcp/source/rtp_rtcp_impl.cc index e2ab811ca5..4a2a21742c 100644 --- a/src/modules/rtp_rtcp/source/rtp_rtcp_impl.cc +++ b/src/modules/rtp_rtcp/source/rtp_rtcp_impl.cc @@ -1628,13 +1628,15 @@ void ModuleRtpRtcpImpl::SetTargetSendBitrate(const uint32_t bitrate) { for (int i = 0; it != _childModules.end() && i < _sendVideoCodec.numberOfSimulcastStreams; ++it, ++i) { RTPSender& rtpSender = (*it)->_rtpSender; - if (_sendVideoCodec.simulcastStream[i].maxBitrate > bitrate_remainder) { - rtpSender.SetTargetSendBitrate( - _sendVideoCodec.simulcastStream[i].maxBitrate); - bitrate_remainder -= _sendVideoCodec.simulcastStream[i].maxBitrate; - } else { + if (_sendVideoCodec.simulcastStream[i].maxBitrate * 1000 > + bitrate_remainder) { rtpSender.SetTargetSendBitrate(bitrate_remainder); bitrate_remainder = 0; + } else { + rtpSender.SetTargetSendBitrate( + _sendVideoCodec.simulcastStream[i].maxBitrate * 1000); + bitrate_remainder -= + _sendVideoCodec.simulcastStream[i].maxBitrate * 1000; } } } else { diff --git a/src/modules/rtp_rtcp/source/rtp_sender.cc b/src/modules/rtp_rtcp/source/rtp_sender.cc index 945171c212..3ecc2985b3 100644 --- a/src/modules/rtp_rtcp/source/rtp_sender.cc +++ b/src/modules/rtp_rtcp/source/rtp_sender.cc @@ -514,7 +514,7 @@ RTPSender::SendOutgoingData(const FrameType frameType, bytes = (bitrate_diff / 8); // Cap at 200 ms of target send data. int bytes_cap = _targetSendBitrate * 25; // 1000 / 8 / 5 - if (bytes_cap > bytes) { + if (bytes > bytes_cap) { bytes = bytes_cap; } }