Move kFeedbackMessageType from Remb to Psfb
The FMT 15 is not specific only to REMB or loss notification messages. Rather, it is the Application Layer FB (AFB) of Psfb (Payload Specific Feedback Messages). See https://tools.ietf.org/html/rfc4585#section-6.3 TBR=terelius@webrtc.org Bug: webrtc:10336 Change-Id: I8cd27ef9ee044bf7b7e7c1bd1a53c1dae2d95006 Reviewed-on: https://webrtc-review.googlesource.com/c/123886 Commit-Queue: Elad Alon <eladalon@webrtc.org> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/master@{#26827}
This commit is contained in:
@ -855,7 +855,7 @@ void StoreRtcpBlocks(
|
||||
pli_list->push_back(std::move(parsed_block));
|
||||
}
|
||||
} else if (header.type() == rtcp::Remb::kPacketType &&
|
||||
header.fmt() == rtcp::Remb::kFeedbackMessageType) {
|
||||
header.fmt() == rtcp::Psfb::kAfbMessageType) {
|
||||
bool type_found = false;
|
||||
if (!type_found) {
|
||||
LoggedRtcpPacketRemb parsed_block;
|
||||
|
@ -17,7 +17,6 @@
|
||||
|
||||
namespace webrtc {
|
||||
namespace rtcp {
|
||||
constexpr uint8_t LossNotification::kFeedbackMessageType;
|
||||
|
||||
// Loss Notification
|
||||
// -----------------
|
||||
@ -58,7 +57,7 @@ bool LossNotification::Create(uint8_t* packet,
|
||||
const size_t index_end = *index + BlockLength();
|
||||
|
||||
// Note: |index| updated by the function below.
|
||||
CreateHeader(kFeedbackMessageType, kPacketType, HeaderLength(), packet,
|
||||
CreateHeader(Psfb::kAfbMessageType, kPacketType, HeaderLength(), packet,
|
||||
index);
|
||||
|
||||
CreateCommonFeedback(packet + *index);
|
||||
@ -85,7 +84,7 @@ bool LossNotification::Create(uint8_t* packet,
|
||||
|
||||
bool LossNotification::Parse(const CommonHeader& packet) {
|
||||
RTC_DCHECK_EQ(packet.type(), kPacketType);
|
||||
RTC_DCHECK_EQ(packet.fmt(), kFeedbackMessageType);
|
||||
RTC_DCHECK_EQ(packet.fmt(), Psfb::kAfbMessageType);
|
||||
|
||||
if (packet.payload_size_bytes() <
|
||||
kCommonFeedbackLength + kLossNotificationPayloadLength) {
|
||||
|
@ -20,8 +20,6 @@ namespace rtcp {
|
||||
|
||||
class LossNotification : public Psfb {
|
||||
public:
|
||||
static constexpr uint8_t kFeedbackMessageType = 15;
|
||||
|
||||
LossNotification();
|
||||
LossNotification(const LossNotification& other);
|
||||
~LossNotification() override;
|
||||
|
@ -15,6 +15,7 @@
|
||||
namespace webrtc {
|
||||
namespace rtcp {
|
||||
constexpr uint8_t Psfb::kPacketType;
|
||||
constexpr uint8_t Psfb::kAfbMessageType;
|
||||
constexpr size_t Psfb::kCommonFeedbackLength;
|
||||
// RFC 4585: Feedback format.
|
||||
//
|
||||
|
@ -25,6 +25,7 @@ namespace rtcp {
|
||||
class Psfb : public RtcpPacket {
|
||||
public:
|
||||
static constexpr uint8_t kPacketType = 206;
|
||||
static constexpr uint8_t kAfbMessageType = 15;
|
||||
|
||||
Psfb() : sender_ssrc_(0), media_ssrc_(0) {}
|
||||
~Psfb() override {}
|
||||
|
@ -20,6 +20,7 @@
|
||||
|
||||
namespace webrtc {
|
||||
namespace rtcp {
|
||||
// TODO(bugs.webrtc.org/10353): Remove once dependencies are updated.
|
||||
constexpr uint8_t Remb::kFeedbackMessageType;
|
||||
// Receiver Estimated Max Bitrate (REMB) (draft-alvestrand-rmcat-remb).
|
||||
//
|
||||
@ -48,7 +49,7 @@ Remb::~Remb() = default;
|
||||
|
||||
bool Remb::Parse(const CommonHeader& packet) {
|
||||
RTC_DCHECK(packet.type() == kPacketType);
|
||||
RTC_DCHECK_EQ(packet.fmt(), kFeedbackMessageType);
|
||||
RTC_DCHECK_EQ(packet.fmt(), Psfb::kAfbMessageType);
|
||||
|
||||
if (packet.payload_size_bytes() < 16) {
|
||||
RTC_LOG(LS_WARNING) << "Payload length " << packet.payload_size_bytes()
|
||||
@ -112,7 +113,7 @@ bool Remb::Create(uint8_t* packet,
|
||||
return false;
|
||||
}
|
||||
size_t index_end = *index + BlockLength();
|
||||
CreateHeader(kFeedbackMessageType, kPacketType, HeaderLength(), packet,
|
||||
CreateHeader(Psfb::kAfbMessageType, kPacketType, HeaderLength(), packet,
|
||||
index);
|
||||
RTC_DCHECK_EQ(0, Psfb::media_ssrc());
|
||||
CreateCommonFeedback(packet + *index);
|
||||
|
@ -22,7 +22,7 @@ class CommonHeader;
|
||||
// Receiver Estimated Max Bitrate (REMB) (draft-alvestrand-rmcat-remb).
|
||||
class Remb : public Psfb {
|
||||
public:
|
||||
static constexpr uint8_t kFeedbackMessageType = 15;
|
||||
static constexpr uint8_t kFeedbackMessageType = Psfb::kAfbMessageType;
|
||||
static constexpr size_t kMaxNumberOfSsrcs = 0xff;
|
||||
|
||||
Remb();
|
||||
|
@ -379,7 +379,7 @@ bool RTCPReceiver::ParseCompoundPacket(const uint8_t* packet_begin,
|
||||
case rtcp::Fir::kFeedbackMessageType:
|
||||
HandleFir(rtcp_block, packet_information);
|
||||
break;
|
||||
case rtcp::Remb::kFeedbackMessageType:
|
||||
case rtcp::Psfb::kAfbMessageType:
|
||||
HandlePsfbApp(rtcp_block, packet_information);
|
||||
break;
|
||||
default:
|
||||
|
@ -55,7 +55,7 @@ bool RtcpPacketParser::Parse(const void* data, size_t length) {
|
||||
case rtcp::Pli::kFeedbackMessageType:
|
||||
pli_.Parse(header, &sender_ssrc_);
|
||||
break;
|
||||
case rtcp::Remb::kFeedbackMessageType:
|
||||
case rtcp::Psfb::kAfbMessageType:
|
||||
remb_.Parse(header, &sender_ssrc_);
|
||||
break;
|
||||
default:
|
||||
|
Reference in New Issue
Block a user