diff --git a/src/modules/rtp_rtcp/source/rtp_rtcp_impl.cc b/src/modules/rtp_rtcp/source/rtp_rtcp_impl.cc index 97e699a76c..92c9e0dbbd 100644 --- a/src/modules/rtp_rtcp/source/rtp_rtcp_impl.cc +++ b/src/modules/rtp_rtcp/source/rtp_rtcp_impl.cc @@ -2476,8 +2476,8 @@ ModuleRtpRtcpImpl::UpdateTMMBR() { WebRtc_Word32 numBoundingSet = 0; WebRtc_Word32 newBitrates = 0; - WebRtc_UWord32 minBitrateKbit = 0; - WebRtc_UWord32 maxBitrateKbit = 0; + int minBitrateKbit = 0; + int maxBitrateKbit = 0; if(_defaultModule) { @@ -2589,9 +2589,9 @@ ModuleRtpRtcpImpl::UpdateTMMBR() // Get net bitrate from bounding set depending on sent packet rate newBitrates = CalcMinMaxBitRate(_rtpSender.PacketRate(), - (WebRtc_UWord32)numBoundingSet, - minBitrateKbit, - maxBitrateKbit); + numBoundingSet, + &minBitrateKbit, + &maxBitrateKbit); // no critsect when calling out to "unknown" code if(newBitrates == 0) // we have new bitrates diff --git a/src/modules/rtp_rtcp/source/tmmbr_help.cc b/src/modules/rtp_rtcp/source/tmmbr_help.cc index 43537f8313..f08eb1b504 100644 --- a/src/modules/rtp_rtcp/source/tmmbr_help.cc +++ b/src/modules/rtp_rtcp/source/tmmbr_help.cc @@ -435,11 +435,11 @@ TMMBRHelp::IsOwner(const WebRtc_UWord32 ssrc, return false; } -WebRtc_Word32 -TMMBRHelp::CalcMinMaxBitRate(const WebRtc_UWord32 totalPacketRate, - const WebRtc_UWord32 lengthOfBoundingSet, - WebRtc_UWord32& minBitrateKbit, - WebRtc_UWord32& maxBitrateKbit) const + +int TMMBRHelp::CalcMinMaxBitRate(int totalPacketRate, + int lengthOfBoundingSet, + int* minBitrateKbit, + int* maxBitrateKbit) const { CriticalSectionScoped lock(_criticalSection); @@ -449,59 +449,63 @@ TMMBRHelp::CalcMinMaxBitRate(const WebRtc_UWord32 totalPacketRate, return -1; } - minBitrateKbit = 0xFFFFFFFF; - maxBitrateKbit = 0; + int myMinBitrateKbit = 0xFFFFFFFF; + int myMaxBitrateKbit = 0; for (WebRtc_UWord32 i = 0; i < _candidateSet.sizeOfSet; ++i) { if (_candidateSet.ptrTmmbrSet[i]) { - WebRtc_Word32 curNetBitRate = static_cast((_candidateSet.ptrTmmbrSet[i]*1000.0 + int curNetBitRate = static_cast((_candidateSet.ptrTmmbrSet[i]*1000.0 - (totalPacketRate * (_candidateSet.ptrPacketOHSet[i] << 3)))/1000 + 0.5); - if (curNetBitRate < 0) - { - // could be negative for a large packet rate - if(_audio) + if (curNetBitRate < 0) { - curNetBitRate = MIN_AUDIO_BW_MANAGEMENT_BITRATE; - }else - { - curNetBitRate = MIN_VIDEO_BW_MANAGEMENT_BITRATE; + // could be negative for a large packet rate + if(_audio) + { + curNetBitRate = MIN_AUDIO_BW_MANAGEMENT_BITRATE; + }else + { + curNetBitRate = MIN_VIDEO_BW_MANAGEMENT_BITRATE; + } } - } - minBitrateKbit = (WebRtc_UWord32(curNetBitRate) < minBitrateKbit) ? curNetBitRate : minBitrateKbit; + myMinBitrateKbit = curNetBitRate < myMinBitrateKbit ? + curNetBitRate : myMinBitrateKbit; } } - maxBitrateKbit = minBitrateKbit; + myMaxBitrateKbit = myMinBitrateKbit; - if (maxBitrateKbit == 0 || maxBitrateKbit < minBitrateKbit) + if (myMaxBitrateKbit == 0 || myMaxBitrateKbit < myMinBitrateKbit) { return -1; } if(_audio) { - if (minBitrateKbit < MIN_AUDIO_BW_MANAGEMENT_BITRATE) + if (myMinBitrateKbit < MIN_AUDIO_BW_MANAGEMENT_BITRATE) { - minBitrateKbit = MIN_AUDIO_BW_MANAGEMENT_BITRATE; + myMinBitrateKbit = MIN_AUDIO_BW_MANAGEMENT_BITRATE; } - if (maxBitrateKbit < MIN_AUDIO_BW_MANAGEMENT_BITRATE) + if (myMaxBitrateKbit < MIN_AUDIO_BW_MANAGEMENT_BITRATE) { - maxBitrateKbit = MIN_AUDIO_BW_MANAGEMENT_BITRATE; + myMaxBitrateKbit = MIN_AUDIO_BW_MANAGEMENT_BITRATE; } }else { - if (minBitrateKbit < MIN_VIDEO_BW_MANAGEMENT_BITRATE) + if (myMinBitrateKbit < MIN_VIDEO_BW_MANAGEMENT_BITRATE) { - minBitrateKbit = MIN_VIDEO_BW_MANAGEMENT_BITRATE; + myMinBitrateKbit = MIN_VIDEO_BW_MANAGEMENT_BITRATE; } - if (maxBitrateKbit < MIN_VIDEO_BW_MANAGEMENT_BITRATE) + if (myMaxBitrateKbit < MIN_VIDEO_BW_MANAGEMENT_BITRATE) { - maxBitrateKbit = MIN_VIDEO_BW_MANAGEMENT_BITRATE; + myMaxBitrateKbit = MIN_VIDEO_BW_MANAGEMENT_BITRATE; } } + *maxBitrateKbit = myMaxBitrateKbit; + *minBitrateKbit = myMinBitrateKbit; + return 0; } } // namespace webrtc diff --git a/src/modules/rtp_rtcp/source/tmmbr_help.h b/src/modules/rtp_rtcp/source/tmmbr_help.h index 0575f1d002..ad3ef31093 100644 --- a/src/modules/rtp_rtcp/source/tmmbr_help.h +++ b/src/modules/rtp_rtcp/source/tmmbr_help.h @@ -53,10 +53,10 @@ public: bool IsOwner(const WebRtc_UWord32 ssrc, const WebRtc_UWord32 length) const; - WebRtc_Word32 CalcMinMaxBitRate(const WebRtc_UWord32 totalPacketRate, - const WebRtc_UWord32 lengthOfBoundingSet, - WebRtc_UWord32& minBitrateKbit, - WebRtc_UWord32& maxBitrateKbit) const; + int CalcMinMaxBitRate(int totalPacketRate, + int lengthOfBoundingSet, + int* minBitrateKbit, + int* maxBitrateKbit) const; protected: TMMBRSet* VerifyAndAllocateBoundingSet(WebRtc_UWord32 minimumSize);