Add virtual method rtcp::RtcpPacket::SetSenderSsrc
This will allow RtcpPackets to be sent in a more generic way where the PacketRouter does not have to know about the type. App::SetSsrc is replaced with SetSenderSsrc Bug: webrtc:10742 Change-Id: I9fa18d408250f15818dc6898093d9b116603facb Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/156166 Reviewed-by: Danil Chapovalov <danilchap@webrtc.org> Reviewed-by: Sebastian Jansson <srte@webrtc.org> Commit-Queue: Per Kjellander <perkj@webrtc.org> Cr-Commit-Position: refs/heads/master@{#29420}
This commit is contained in:
committed by
Commit Bot
parent
6f41f8e2ad
commit
955f8fd047
@ -296,7 +296,7 @@ void PacketRouter::SendNetworkStateEstimatePacket(
|
|||||||
rtcp::RemoteEstimate* packet) {
|
rtcp::RemoteEstimate* packet) {
|
||||||
rtc::CritScope cs(&modules_crit_);
|
rtc::CritScope cs(&modules_crit_);
|
||||||
for (auto* rtcp_sender : rtcp_feedback_senders_) {
|
for (auto* rtcp_sender : rtcp_feedback_senders_) {
|
||||||
packet->SetSsrc(rtcp_sender->SSRC());
|
packet->SetSenderSsrc(rtcp_sender->SSRC());
|
||||||
if (rtcp_sender->SendNetworkStateEstimatePacket(*packet)) {
|
if (rtcp_sender->SendNetworkStateEstimatePacket(*packet)) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -76,6 +76,8 @@ class RtcpPacket {
|
|||||||
size_t max_length,
|
size_t max_length,
|
||||||
PacketReadyCallback callback) const = 0;
|
PacketReadyCallback callback) const = 0;
|
||||||
|
|
||||||
|
virtual void SetSenderSsrc(uint32_t ssrc) = 0;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// Size of the rtcp common header.
|
// Size of the rtcp common header.
|
||||||
static constexpr size_t kHeaderLength = 4;
|
static constexpr size_t kHeaderLength = 4;
|
||||||
|
|||||||
@ -31,7 +31,7 @@ class App : public RtcpPacket {
|
|||||||
// Parse assumes header is already parsed and validated.
|
// Parse assumes header is already parsed and validated.
|
||||||
bool Parse(const CommonHeader& packet);
|
bool Parse(const CommonHeader& packet);
|
||||||
|
|
||||||
void SetSsrc(uint32_t ssrc) { ssrc_ = ssrc; }
|
void SetSenderSsrc(uint32_t ssrc) override { ssrc_ = ssrc; }
|
||||||
void SetSubType(uint8_t subtype);
|
void SetSubType(uint8_t subtype);
|
||||||
void SetName(uint32_t name) { name_ = name; }
|
void SetName(uint32_t name) { name_ = name; }
|
||||||
void SetData(const uint8_t* data, size_t data_length);
|
void SetData(const uint8_t* data, size_t data_length);
|
||||||
|
|||||||
@ -53,7 +53,7 @@ constexpr uint8_t kPacketWithUnalignedPayload[] = {
|
|||||||
|
|
||||||
TEST(RtcpPacketAppTest, CreateWithoutData) {
|
TEST(RtcpPacketAppTest, CreateWithoutData) {
|
||||||
App app;
|
App app;
|
||||||
app.SetSsrc(kSenderSsrc);
|
app.SetSenderSsrc(kSenderSsrc);
|
||||||
app.SetSubType(kSubtype);
|
app.SetSubType(kSubtype);
|
||||||
app.SetName(kName);
|
app.SetName(kName);
|
||||||
|
|
||||||
@ -75,7 +75,7 @@ TEST(RtcpPacketAppTest, ParseWithoutData) {
|
|||||||
|
|
||||||
TEST(RtcpPacketAppTest, CreateWithData) {
|
TEST(RtcpPacketAppTest, CreateWithData) {
|
||||||
App app;
|
App app;
|
||||||
app.SetSsrc(kSenderSsrc);
|
app.SetSenderSsrc(kSenderSsrc);
|
||||||
app.SetSubType(kSubtype);
|
app.SetSubType(kSubtype);
|
||||||
app.SetName(kName);
|
app.SetName(kName);
|
||||||
app.SetData(kData, sizeof(kData));
|
app.SetData(kData, sizeof(kData));
|
||||||
|
|||||||
@ -31,7 +31,7 @@ class Bye : public RtcpPacket {
|
|||||||
// Parse assumes header is already parsed and validated.
|
// Parse assumes header is already parsed and validated.
|
||||||
bool Parse(const CommonHeader& packet);
|
bool Parse(const CommonHeader& packet);
|
||||||
|
|
||||||
void SetSenderSsrc(uint32_t ssrc) { sender_ssrc_ = ssrc; }
|
void SetSenderSsrc(uint32_t ssrc) override { sender_ssrc_ = ssrc; }
|
||||||
bool SetCsrcs(std::vector<uint32_t> csrcs);
|
bool SetCsrcs(std::vector<uint32_t> csrcs);
|
||||||
void SetReason(std::string reason);
|
void SetReason(std::string reason);
|
||||||
|
|
||||||
|
|||||||
@ -35,6 +35,8 @@ class CompoundPacket : public RtcpPacket {
|
|||||||
size_t max_length,
|
size_t max_length,
|
||||||
PacketReadyCallback callback) const override;
|
PacketReadyCallback callback) const override;
|
||||||
|
|
||||||
|
void SetSenderSsrc(uint32_t /*ssrc*/) override { RTC_NOTREACHED(); }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
std::vector<RtcpPacket*> appended_packets_;
|
std::vector<RtcpPacket*> appended_packets_;
|
||||||
|
|
||||||
|
|||||||
@ -43,6 +43,8 @@ class ExtendedJitterReport : public RtcpPacket {
|
|||||||
size_t max_length,
|
size_t max_length,
|
||||||
PacketReadyCallback callback) const override;
|
PacketReadyCallback callback) const override;
|
||||||
|
|
||||||
|
void SetSenderSsrc(uint32_t /*ssrc*/) override {}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static constexpr size_t kJitterSizeBytes = 4;
|
static constexpr size_t kJitterSizeBytes = 4;
|
||||||
|
|
||||||
|
|||||||
@ -36,7 +36,7 @@ class ExtendedReports : public RtcpPacket {
|
|||||||
// Parse assumes header is already parsed and validated.
|
// Parse assumes header is already parsed and validated.
|
||||||
bool Parse(const CommonHeader& packet);
|
bool Parse(const CommonHeader& packet);
|
||||||
|
|
||||||
void SetSenderSsrc(uint32_t ssrc) { sender_ssrc_ = ssrc; }
|
void SetSenderSsrc(uint32_t ssrc) override { sender_ssrc_ = ssrc; }
|
||||||
|
|
||||||
void SetRrtr(const Rrtr& rrtr);
|
void SetRrtr(const Rrtr& rrtr);
|
||||||
bool AddDlrrItem(const ReceiveTimeInfo& time_info);
|
bool AddDlrrItem(const ReceiveTimeInfo& time_info);
|
||||||
|
|||||||
@ -30,7 +30,7 @@ class Psfb : public RtcpPacket {
|
|||||||
Psfb() : sender_ssrc_(0), media_ssrc_(0) {}
|
Psfb() : sender_ssrc_(0), media_ssrc_(0) {}
|
||||||
~Psfb() override {}
|
~Psfb() override {}
|
||||||
|
|
||||||
void SetSenderSsrc(uint32_t ssrc) { sender_ssrc_ = ssrc; }
|
void SetSenderSsrc(uint32_t ssrc) override { sender_ssrc_ = ssrc; }
|
||||||
void SetMediaSsrc(uint32_t ssrc) { media_ssrc_ = ssrc; }
|
void SetMediaSsrc(uint32_t ssrc) { media_ssrc_ = ssrc; }
|
||||||
|
|
||||||
uint32_t sender_ssrc() const { return sender_ssrc_; }
|
uint32_t sender_ssrc() const { return sender_ssrc_; }
|
||||||
|
|||||||
@ -35,7 +35,7 @@ class ReceiverReport : public RtcpPacket {
|
|||||||
// Parse assumes header is already parsed and validated.
|
// Parse assumes header is already parsed and validated.
|
||||||
bool Parse(const CommonHeader& packet);
|
bool Parse(const CommonHeader& packet);
|
||||||
|
|
||||||
void SetSenderSsrc(uint32_t ssrc) { sender_ssrc_ = ssrc; }
|
void SetSenderSsrc(uint32_t ssrc) override { sender_ssrc_ = ssrc; }
|
||||||
bool AddReportBlock(const ReportBlock& block);
|
bool AddReportBlock(const ReportBlock& block);
|
||||||
bool SetReportBlocks(std::vector<ReportBlock> blocks);
|
bool SetReportBlocks(std::vector<ReportBlock> blocks);
|
||||||
|
|
||||||
|
|||||||
@ -128,7 +128,7 @@ const RemoteEstimateSerializer* GetRemoteEstimateSerializer() {
|
|||||||
RemoteEstimate::RemoteEstimate() : serializer_(GetRemoteEstimateSerializer()) {
|
RemoteEstimate::RemoteEstimate() : serializer_(GetRemoteEstimateSerializer()) {
|
||||||
SetSubType(kSubType);
|
SetSubType(kSubType);
|
||||||
SetName(kName);
|
SetName(kName);
|
||||||
SetSsrc(0);
|
SetSenderSsrc(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
RemoteEstimate::RemoteEstimate(App&& app)
|
RemoteEstimate::RemoteEstimate(App&& app)
|
||||||
|
|||||||
@ -29,7 +29,7 @@ class Rtpfb : public RtcpPacket {
|
|||||||
Rtpfb() : sender_ssrc_(0), media_ssrc_(0) {}
|
Rtpfb() : sender_ssrc_(0), media_ssrc_(0) {}
|
||||||
~Rtpfb() override {}
|
~Rtpfb() override {}
|
||||||
|
|
||||||
void SetSenderSsrc(uint32_t ssrc) { sender_ssrc_ = ssrc; }
|
void SetSenderSsrc(uint32_t ssrc) override { sender_ssrc_ = ssrc; }
|
||||||
void SetMediaSsrc(uint32_t ssrc) { media_ssrc_ = ssrc; }
|
void SetMediaSsrc(uint32_t ssrc) { media_ssrc_ = ssrc; }
|
||||||
|
|
||||||
uint32_t sender_ssrc() const { return sender_ssrc_; }
|
uint32_t sender_ssrc() const { return sender_ssrc_; }
|
||||||
|
|||||||
@ -46,6 +46,8 @@ class Sdes : public RtcpPacket {
|
|||||||
size_t max_length,
|
size_t max_length,
|
||||||
PacketReadyCallback callback) const override;
|
PacketReadyCallback callback) const override;
|
||||||
|
|
||||||
|
void SetSenderSsrc(uint32_t /*ssrc*/) override {}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::vector<Chunk> chunks_;
|
std::vector<Chunk> chunks_;
|
||||||
size_t block_length_;
|
size_t block_length_;
|
||||||
|
|||||||
@ -36,7 +36,7 @@ class SenderReport : public RtcpPacket {
|
|||||||
// Parse assumes header is already parsed and validated.
|
// Parse assumes header is already parsed and validated.
|
||||||
bool Parse(const CommonHeader& packet);
|
bool Parse(const CommonHeader& packet);
|
||||||
|
|
||||||
void SetSenderSsrc(uint32_t ssrc) { sender_ssrc_ = ssrc; }
|
void SetSenderSsrc(uint32_t ssrc) override { sender_ssrc_ = ssrc; }
|
||||||
void SetNtp(NtpTime ntp) { ntp_ = ntp; }
|
void SetNtp(NtpTime ntp) { ntp_ = ntp; }
|
||||||
void SetRtpTimestamp(uint32_t rtp_timestamp) {
|
void SetRtpTimestamp(uint32_t rtp_timestamp) {
|
||||||
rtp_timestamp_ = rtp_timestamp;
|
rtp_timestamp_ = rtp_timestamp;
|
||||||
|
|||||||
@ -595,7 +595,7 @@ std::unique_ptr<rtcp::RtcpPacket> RTCPSender::BuildTMMBN(
|
|||||||
|
|
||||||
std::unique_ptr<rtcp::RtcpPacket> RTCPSender::BuildAPP(const RtcpContext& ctx) {
|
std::unique_ptr<rtcp::RtcpPacket> RTCPSender::BuildAPP(const RtcpContext& ctx) {
|
||||||
rtcp::App* app = new rtcp::App();
|
rtcp::App* app = new rtcp::App();
|
||||||
app->SetSsrc(ssrc_);
|
app->SetSenderSsrc(ssrc_);
|
||||||
app->SetSubType(app_sub_type_);
|
app->SetSubType(app_sub_type_);
|
||||||
app->SetName(app_name_);
|
app->SetName(app_name_);
|
||||||
app->SetData(app_data_.get(), app_length_);
|
app->SetData(app_data_.get(), app_length_);
|
||||||
|
|||||||
Reference in New Issue
Block a user