Index: webrtc/modules/rtp_rtcp/source/rtcp_packet/remb.h |
diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_packet/tmmbn.h b/webrtc/modules/rtp_rtcp/source/rtcp_packet/remb.h |
similarity index 53% |
copy from webrtc/modules/rtp_rtcp/source/rtcp_packet/tmmbn.h |
copy to webrtc/modules/rtp_rtcp/source/rtcp_packet/remb.h |
index 82bf9dd9e96f7b154dac8b8e117bb578024b92ce..56dbb8b766b031d3157c94a441be11b7484bf54d 100644 |
--- a/webrtc/modules/rtp_rtcp/source/rtcp_packet/tmmbn.h |
+++ b/webrtc/modules/rtp_rtcp/source/rtcp_packet/remb.h |
@@ -6,11 +6,10 @@ |
* tree. An additional intellectual property rights grant can be found |
* in the file PATENTS. All contributing project authors may |
* be found in the AUTHORS file in the root of the source tree. |
- * |
*/ |
-#ifndef WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_TMMBN_H_ |
-#define WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_TMMBN_H_ |
+#ifndef WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_REMB_H_ |
+#define WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_REMB_H_ |
#include <vector> |
#include "webrtc/base/basictypes.h" |
@@ -19,21 +18,24 @@ |
namespace webrtc { |
namespace rtcp { |
- |
-// Temporary Maximum Media Stream Bit Rate Notification (TMMBN) (RFC 5104). |
-class Tmmbn : public RtcpPacket { |
+// Receiver Estimated Max Bitrate (REMB) (draft-alvestrand-rmcat-remb). |
+class Remb : public RtcpPacket { |
public: |
- Tmmbn() : RtcpPacket() { |
- memset(&tmmbn_, 0, sizeof(tmmbn_)); |
+ Remb() : RtcpPacket() { |
+ memset(&remb_, 0, sizeof(remb_)); |
+ memset(&remb_item_, 0, sizeof(remb_item_)); |
} |
- virtual ~Tmmbn() {} |
+ virtual ~Remb() {} |
void From(uint32_t ssrc) { |
- tmmbn_.SenderSSRC = ssrc; |
+ remb_.SenderSSRC = ssrc; |
+ } |
+ void AppliesTo(uint32_t ssrc); |
+ |
+ void WithBitrateBps(uint32_t bitrate_bps) { |
+ remb_item_.BitRate = bitrate_bps; |
} |
- // Max 50 TMMBR can be added per TMMBN. |
- bool WithTmmbr(uint32_t ssrc, uint32_t bitrate_kbps, uint16_t overhead); |
protected: |
bool Create(uint8_t* packet, |
@@ -42,19 +44,17 @@ class Tmmbn : public RtcpPacket { |
RtcpPacket::PacketReadyCallback* callback) const override; |
private: |
- static const int kMaxNumberOfTmmbrs = 50; |
+ static const int kMaxNumberOfSsrcs = 0xff; |
size_t BlockLength() const { |
- const size_t kFciLen = 8; |
- return kCommonFbFmtLength + kFciLen * tmmbn_items_.size(); |
+ return (remb_item_.NumberOfSSRCs + 5) * 4; |
} |
- RTCPUtility::RTCPPacketRTPFBTMMBN tmmbn_; |
- std::vector<RTCPUtility::RTCPPacketRTPFBTMMBRItem> tmmbn_items_; |
+ RTCPUtility::RTCPPacketPSFBAPP remb_; |
+ RTCPUtility::RTCPPacketPSFBREMBItem remb_item_; |
- RTC_DISALLOW_COPY_AND_ASSIGN(Tmmbn); |
+ RTC_DISALLOW_COPY_AND_ASSIGN(Remb); |
}; |
- |
} // namespace rtcp |
} // namespace webrtc |
-#endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_TMMBN_H_ |
+#endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_REMB_H_ |