| 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_
|
|
|