In RtcpReceiver remove redundand way to represent RTCP report blocks
Pass ReportBlockData instead of RTCPReportBlock from RtcpReceiver to RtpRtcp module Bug: None Change-Id: Ia042bfc626dda532674e070c593db7a04e76254a Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/306220 Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Reviewed-by: Åsa Persson <asapersson@webrtc.org> Cr-Commit-Position: refs/heads/main@{#40167}
This commit is contained in:
parent
b9de471b34
commit
e641a970ef
@ -127,8 +127,6 @@ struct RTCPReceiver::PacketInformation {
|
||||
|
||||
uint32_t remote_ssrc = 0;
|
||||
std::vector<uint16_t> nack_sequence_numbers;
|
||||
// TODO(hbos): Remove `report_blocks` in favor of `report_block_datas`.
|
||||
ReportBlockList report_blocks;
|
||||
std::vector<ReportBlockData> report_block_datas;
|
||||
absl::optional<TimeDelta> rtt;
|
||||
uint32_t receiver_estimated_max_bitrate_bps = 0;
|
||||
@ -625,15 +623,6 @@ void RTCPReceiver::HandleReportBlock(const ReportBlock& report_block,
|
||||
packet_information->rtt = rtt;
|
||||
}
|
||||
|
||||
packet_information->report_blocks.push_back(
|
||||
{.sender_ssrc = remote_ssrc,
|
||||
.source_ssrc = report_block.source_ssrc(),
|
||||
.fraction_lost = report_block.fraction_lost(),
|
||||
.packets_lost = report_block.cumulative_lost(),
|
||||
.extended_highest_sequence_number = report_block.extended_high_seq_num(),
|
||||
.jitter = report_block.jitter(),
|
||||
.last_sender_report_timestamp = report_block.last_sr(),
|
||||
.delay_since_last_sender_report = report_block.delay_since_last_sr()});
|
||||
packet_information->report_block_datas.push_back(*report_block_data);
|
||||
}
|
||||
|
||||
@ -1162,7 +1151,8 @@ void RTCPReceiver::TriggerCallbacksFromRtcpPacket(
|
||||
|
||||
if ((packet_information.packet_type_flags & kRtcpSr) ||
|
||||
(packet_information.packet_type_flags & kRtcpRr)) {
|
||||
rtp_rtcp_->OnReceivedRtcpReportBlocks(packet_information.report_blocks);
|
||||
rtp_rtcp_->OnReceivedRtcpReportBlocks(
|
||||
packet_information.report_block_datas);
|
||||
}
|
||||
|
||||
if (network_state_estimate_observer_ &&
|
||||
|
||||
@ -55,7 +55,7 @@ class RTCPReceiver final {
|
||||
virtual void OnReceivedNack(
|
||||
const std::vector<uint16_t>& nack_sequence_numbers) = 0;
|
||||
virtual void OnReceivedRtcpReportBlocks(
|
||||
const ReportBlockList& report_blocks) = 0;
|
||||
rtc::ArrayView<const ReportBlockData> report_blocks) = 0;
|
||||
|
||||
protected:
|
||||
virtual ~ModuleRtpRtcp() = default;
|
||||
|
||||
@ -107,7 +107,7 @@ class MockModuleRtpRtcp : public RTCPReceiver::ModuleRtpRtcp {
|
||||
MOCK_METHOD(void, OnReceivedNack, (const std::vector<uint16_t>&), (override));
|
||||
MOCK_METHOD(void,
|
||||
OnReceivedRtcpReportBlocks,
|
||||
(const ReportBlockList&),
|
||||
(rtc::ArrayView<const ReportBlockData>),
|
||||
(override));
|
||||
};
|
||||
|
||||
|
||||
@ -673,7 +673,7 @@ void ModuleRtpRtcpImpl::OnReceivedNack(
|
||||
}
|
||||
|
||||
void ModuleRtpRtcpImpl::OnReceivedRtcpReportBlocks(
|
||||
const ReportBlockList& report_blocks) {
|
||||
rtc::ArrayView<const ReportBlockData> report_blocks) {
|
||||
if (rtp_sender_) {
|
||||
uint32_t ssrc = SSRC();
|
||||
absl::optional<uint32_t> rtx_ssrc;
|
||||
@ -681,13 +681,13 @@ void ModuleRtpRtcpImpl::OnReceivedRtcpReportBlocks(
|
||||
rtx_ssrc = rtp_sender_->packet_generator.RtxSsrc();
|
||||
}
|
||||
|
||||
for (const RTCPReportBlock& report_block : report_blocks) {
|
||||
if (ssrc == report_block.source_ssrc) {
|
||||
for (const ReportBlockData& report_block : report_blocks) {
|
||||
if (ssrc == report_block.source_ssrc()) {
|
||||
rtp_sender_->packet_generator.OnReceivedAckOnSsrc(
|
||||
report_block.extended_highest_sequence_number);
|
||||
} else if (rtx_ssrc && *rtx_ssrc == report_block.source_ssrc) {
|
||||
report_block.extended_highest_sequence_number());
|
||||
} else if (rtx_ssrc == report_block.source_ssrc()) {
|
||||
rtp_sender_->packet_generator.OnReceivedAckOnRtxSsrc(
|
||||
report_block.extended_highest_sequence_number);
|
||||
report_block.extended_highest_sequence_number());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -228,7 +228,7 @@ class ABSL_DEPRECATED("") ModuleRtpRtcpImpl
|
||||
void OnReceivedNack(
|
||||
const std::vector<uint16_t>& nack_sequence_numbers) override;
|
||||
void OnReceivedRtcpReportBlocks(
|
||||
const ReportBlockList& report_blocks) override;
|
||||
rtc::ArrayView<const ReportBlockData> report_blocks) override;
|
||||
void OnRequestSendReport() override;
|
||||
|
||||
void SetVideoBitrateAllocation(
|
||||
|
||||
@ -673,7 +673,7 @@ void ModuleRtpRtcpImpl2::OnReceivedNack(
|
||||
}
|
||||
|
||||
void ModuleRtpRtcpImpl2::OnReceivedRtcpReportBlocks(
|
||||
const ReportBlockList& report_blocks) {
|
||||
rtc::ArrayView<const ReportBlockData> report_blocks) {
|
||||
if (rtp_sender_) {
|
||||
uint32_t ssrc = SSRC();
|
||||
absl::optional<uint32_t> rtx_ssrc;
|
||||
@ -681,13 +681,13 @@ void ModuleRtpRtcpImpl2::OnReceivedRtcpReportBlocks(
|
||||
rtx_ssrc = rtp_sender_->packet_generator.RtxSsrc();
|
||||
}
|
||||
|
||||
for (const RTCPReportBlock& report_block : report_blocks) {
|
||||
if (ssrc == report_block.source_ssrc) {
|
||||
for (const ReportBlockData& report_block : report_blocks) {
|
||||
if (ssrc == report_block.source_ssrc()) {
|
||||
rtp_sender_->packet_generator.OnReceivedAckOnSsrc(
|
||||
report_block.extended_highest_sequence_number);
|
||||
} else if (rtx_ssrc && *rtx_ssrc == report_block.source_ssrc) {
|
||||
report_block.extended_highest_sequence_number());
|
||||
} else if (rtx_ssrc == report_block.source_ssrc()) {
|
||||
rtp_sender_->packet_generator.OnReceivedAckOnRtxSsrc(
|
||||
report_block.extended_highest_sequence_number);
|
||||
report_block.extended_highest_sequence_number());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -238,7 +238,7 @@ class ModuleRtpRtcpImpl2 final : public RtpRtcpInterface,
|
||||
void OnReceivedNack(
|
||||
const std::vector<uint16_t>& nack_sequence_numbers) override;
|
||||
void OnReceivedRtcpReportBlocks(
|
||||
const ReportBlockList& report_blocks) override;
|
||||
rtc::ArrayView<const ReportBlockData> report_blocks) override;
|
||||
void OnRequestSendReport() override;
|
||||
|
||||
void SetVideoBitrateAllocation(
|
||||
|
||||
@ -1076,10 +1076,10 @@ TEST_F(RtpRtcpImpl2Test, RtpStateReflectsCurrentState) {
|
||||
EXPECT_TRUE(SendFrame(&sender_, sender_video_.get(), kBaseLayerTid));
|
||||
|
||||
// Simulate an RTCP receiver report in order to populate `ssrc_has_acked`.
|
||||
RTCPReportBlock ack;
|
||||
ack.source_ssrc = kSenderSsrc;
|
||||
ack.extended_highest_sequence_number = kSeq;
|
||||
sender_.impl_->OnReceivedRtcpReportBlocks({ack});
|
||||
ReportBlockData ack[1];
|
||||
ack[0].set_source_ssrc(kSenderSsrc);
|
||||
ack[0].set_extended_highest_sequence_number(kSeq);
|
||||
sender_.impl_->OnReceivedRtcpReportBlocks(ack);
|
||||
|
||||
RtpState state = sender_.impl_->GetRtpState();
|
||||
EXPECT_EQ(state.sequence_number, kSeq);
|
||||
@ -1124,10 +1124,10 @@ TEST_F(RtpRtcpImpl2Test, RtxRtpStateReflectsCurrentState) {
|
||||
EXPECT_EQ(rtx_packet.Ssrc(), kRtxSenderSsrc);
|
||||
|
||||
// Simulate an RTCP receiver report in order to populate `ssrc_has_acked`.
|
||||
RTCPReportBlock ack;
|
||||
ack.source_ssrc = kRtxSenderSsrc;
|
||||
ack.extended_highest_sequence_number = rtx_packet.SequenceNumber();
|
||||
sender_.impl_->OnReceivedRtcpReportBlocks({ack});
|
||||
ReportBlockData ack[1];
|
||||
ack[0].set_source_ssrc(kRtxSenderSsrc);
|
||||
ack[0].set_extended_highest_sequence_number(rtx_packet.SequenceNumber());
|
||||
sender_.impl_->OnReceivedRtcpReportBlocks(ack);
|
||||
|
||||
RtpState rtp_state = sender_.impl_->GetRtpState();
|
||||
RtpState rtx_state = sender_.impl_->GetRtxState();
|
||||
|
||||
@ -27,7 +27,8 @@ class NullModuleRtpRtcp : public RTCPReceiver::ModuleRtpRtcp {
|
||||
void SetTmmbn(std::vector<rtcp::TmmbItem>) override {}
|
||||
void OnRequestSendReport() override {}
|
||||
void OnReceivedNack(const std::vector<uint16_t>&) override {}
|
||||
void OnReceivedRtcpReportBlocks(const ReportBlockList&) override {}
|
||||
void OnReceivedRtcpReportBlocks(
|
||||
rtc::ArrayView<const ReportBlockData> report_blocks) override {}
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user