Index: webrtc/modules/rtp_rtcp/source/rtcp_packet/tmmbr.cc |
diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_packet/tmmbn.cc b/webrtc/modules/rtp_rtcp/source/rtcp_packet/tmmbr.cc |
similarity index 75% |
copy from webrtc/modules/rtp_rtcp/source/rtcp_packet/tmmbn.cc |
copy to webrtc/modules/rtp_rtcp/source/rtcp_packet/tmmbr.cc |
index fd0219cf82076a7227cb3188d558e252856365f1..4df167de79ebffc8f6597d3aa00b75ce181f50ea 100644 |
--- a/webrtc/modules/rtp_rtcp/source/rtcp_packet/tmmbn.cc |
+++ b/webrtc/modules/rtp_rtcp/source/rtcp_packet/tmmbr.cc |
@@ -8,22 +8,24 @@ |
* be found in the AUTHORS file in the root of the source tree. |
*/ |
-#include "webrtc/modules/rtp_rtcp/source/rtcp_packet/tmmbn.h" |
+#include "webrtc/modules/rtp_rtcp/source/rtcp_packet/tmmbr.h" |
#include "webrtc/base/logging.h" |
#include "webrtc/modules/rtp_rtcp/source/byte_io.h" |
using webrtc::RTCPUtility::PT_RTPFB; |
-using webrtc::RTCPUtility::RTCPPacketRTPFBTMMBN; |
+using webrtc::RTCPUtility::RTCPPacketRTPFBTMMBR; |
using webrtc::RTCPUtility::RTCPPacketRTPFBTMMBRItem; |
namespace webrtc { |
namespace rtcp { |
namespace { |
const uint32_t kUnusedMediaSourceSsrc0 = 0; |
+ |
void AssignUWord8(uint8_t* buffer, size_t* offset, uint8_t value) { |
buffer[(*offset)++] = value; |
} |
+ |
void AssignUWord32(uint8_t* buffer, size_t* offset, uint32_t value) { |
ByteWriter<uint32_t>::WriteBigEndian(buffer + *offset, value); |
*offset += 4; |
@@ -63,7 +65,7 @@ void CreateTmmbrItem(const RTCPPacketRTPFBTMMBRItem& tmmbr_item, |
AssignUWord8(buffer, pos, tmmbr_item.MeasuredOverhead); |
} |
-// Temporary Maximum Media Stream Bit Rate Notification (TMMBN) (RFC 5104). |
+// Temporary Maximum Media Stream Bit Rate Request (TMMBR) (RFC 5104). |
// |
// FCI: |
// |
@@ -75,33 +77,17 @@ void CreateTmmbrItem(const RTCPPacketRTPFBTMMBRItem& tmmbr_item, |
// | MxTBR Exp | MxTBR Mantissa |Measured Overhead| |
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
-void CreateTmmbn(const RTCPPacketRTPFBTMMBN& tmmbn, |
- const std::vector<RTCPPacketRTPFBTMMBRItem>& tmmbn_items, |
+void CreateTmmbr(const RTCPPacketRTPFBTMMBR& tmmbr, |
+ const RTCPPacketRTPFBTMMBRItem& tmmbr_item, |
uint8_t* buffer, |
size_t* pos) { |
- AssignUWord32(buffer, pos, tmmbn.SenderSSRC); |
+ AssignUWord32(buffer, pos, tmmbr.SenderSSRC); |
AssignUWord32(buffer, pos, kUnusedMediaSourceSsrc0); |
- for (uint8_t i = 0; i < tmmbn_items.size(); ++i) { |
- CreateTmmbrItem(tmmbn_items[i], buffer, pos); |
- } |
+ CreateTmmbrItem(tmmbr_item, buffer, pos); |
} |
} // namespace |
-bool Tmmbn::WithTmmbr(uint32_t ssrc, uint32_t bitrate_kbps, uint16_t overhead) { |
- assert(overhead <= 0x1ff); |
- if (tmmbn_items_.size() >= kMaxNumberOfTmmbrs) { |
- LOG(LS_WARNING) << "Max TMMBN size reached."; |
- return false; |
- } |
- RTCPPacketRTPFBTMMBRItem tmmbn_item; |
- tmmbn_item.SSRC = ssrc; |
- tmmbn_item.MaxTotalMediaBitRate = bitrate_kbps; |
- tmmbn_item.MeasuredOverhead = overhead; |
- tmmbn_items_.push_back(tmmbn_item); |
- return true; |
-} |
- |
-bool Tmmbn::Create(uint8_t* packet, |
+bool Tmmbr::Create(uint8_t* packet, |
size_t* index, |
size_t max_length, |
RtcpPacket::PacketReadyCallback* callback) const { |
@@ -109,9 +95,9 @@ bool Tmmbn::Create(uint8_t* packet, |
if (!OnBufferFull(packet, index, callback)) |
return false; |
} |
- const uint8_t kFmt = 4; |
+ const uint8_t kFmt = 3; |
CreateHeader(kFmt, PT_RTPFB, HeaderLength(), packet, index); |
- CreateTmmbn(tmmbn_, tmmbn_items_, packet, index); |
+ CreateTmmbr(tmmbr_, tmmbr_item_, packet, index); |
return true; |
} |