in RtcpTransceiver delete legacy rtt_observer callback
Bug: webrtc:8239 Change-Id: Id4f56887879513b5ddb89818f221d8686c373ed7 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/235370 Reviewed-by: Emil Lundmark <lndmrk@webrtc.org> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/main@{#35257}
This commit is contained in:

committed by
WebRTC LUCI CQ

parent
2110f7d664
commit
5e67b6a90d
@ -67,7 +67,7 @@ bool RtcpTransceiverConfig::Validate() const {
|
|||||||
RTC_LOG(LS_ERROR) << debug_id << "unsupported rtcp mode";
|
RTC_LOG(LS_ERROR) << debug_id << "unsupported rtcp mode";
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (non_sender_rtt_measurement && !rtt_observer)
|
if (non_sender_rtt_measurement && !network_link_observer)
|
||||||
RTC_LOG(LS_WARNING) << debug_id
|
RTC_LOG(LS_WARNING) << debug_id
|
||||||
<< "Enabled special feature to calculate rtt, but no "
|
<< "Enabled special feature to calculate rtt, but no "
|
||||||
"rtt observer is provided.";
|
"rtt observer is provided.";
|
||||||
|
@ -99,12 +99,6 @@ struct RtcpTransceiverConfig {
|
|||||||
// Rtcp report block generator for outgoing receiver reports.
|
// Rtcp report block generator for outgoing receiver reports.
|
||||||
ReceiveStatisticsProvider* receive_statistics = nullptr;
|
ReceiveStatisticsProvider* receive_statistics = nullptr;
|
||||||
|
|
||||||
// Callback to pass result of rtt calculation. Should outlive RtcpTransceiver.
|
|
||||||
// Callbacks will be invoked on the `task_queue`.
|
|
||||||
// Deprecated, rtt_observer will be deleted in favor of more generic
|
|
||||||
// `network_link_observer`
|
|
||||||
RtcpRttStats* rtt_observer = nullptr;
|
|
||||||
|
|
||||||
// Should outlive RtcpTransceiver.
|
// Should outlive RtcpTransceiver.
|
||||||
// Callbacks will be invoked on the `task_queue`.
|
// Callbacks will be invoked on the `task_queue`.
|
||||||
NetworkLinkRtcpObserver* network_link_observer = nullptr;
|
NetworkLinkRtcpObserver* network_link_observer = nullptr;
|
||||||
|
@ -345,7 +345,8 @@ void RtcpTransceiverImpl::HandleExtendedReports(
|
|||||||
}
|
}
|
||||||
|
|
||||||
void RtcpTransceiverImpl::HandleDlrr(const rtcp::Dlrr& dlrr, Timestamp now) {
|
void RtcpTransceiverImpl::HandleDlrr(const rtcp::Dlrr& dlrr, Timestamp now) {
|
||||||
if (!config_.non_sender_rtt_measurement) {
|
if (!config_.non_sender_rtt_measurement ||
|
||||||
|
config_.network_link_observer == nullptr) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -358,13 +359,7 @@ void RtcpTransceiverImpl::HandleDlrr(const rtcp::Dlrr& dlrr, Timestamp now) {
|
|||||||
continue;
|
continue;
|
||||||
uint32_t rtt_ntp = receive_time_ntp - rti.delay_since_last_rr - rti.last_rr;
|
uint32_t rtt_ntp = receive_time_ntp - rti.delay_since_last_rr - rti.last_rr;
|
||||||
int64_t rtt_ms = CompactNtpRttToMs(rtt_ntp);
|
int64_t rtt_ms = CompactNtpRttToMs(rtt_ntp);
|
||||||
if (config_.rtt_observer != nullptr) {
|
config_.network_link_observer->OnRttUpdate(now, TimeDelta::Millis(rtt_ms));
|
||||||
config_.rtt_observer->OnRttUpdate(rtt_ms);
|
|
||||||
}
|
|
||||||
if (config_.network_link_observer != nullptr) {
|
|
||||||
config_.network_link_observer->OnRttUpdate(now,
|
|
||||||
TimeDelta::Millis(rtt_ms));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1152,33 +1152,6 @@ TEST(RtcpTransceiverImplTest, SendsNoXrRrtrWhenDisabled) {
|
|||||||
EXPECT_FALSE(rtcp_parser.xr()->rrtr());
|
EXPECT_FALSE(rtcp_parser.xr()->rrtr());
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(RtcpTransceiverImplTest, CalculatesRoundTripTimeOnDlrr) {
|
|
||||||
const uint32_t kSenderSsrc = 4321;
|
|
||||||
SimulatedClock clock(0);
|
|
||||||
MockRtcpRttStats rtt_observer;
|
|
||||||
MockTransport null_transport;
|
|
||||||
RtcpTransceiverConfig config;
|
|
||||||
config.clock = &clock;
|
|
||||||
config.feedback_ssrc = kSenderSsrc;
|
|
||||||
config.schedule_periodic_compound_packets = false;
|
|
||||||
config.outgoing_transport = &null_transport;
|
|
||||||
config.non_sender_rtt_measurement = true;
|
|
||||||
config.rtt_observer = &rtt_observer;
|
|
||||||
RtcpTransceiverImpl rtcp_transceiver(config);
|
|
||||||
|
|
||||||
Timestamp time = Timestamp::Micros(12345678);
|
|
||||||
webrtc::rtcp::ReceiveTimeInfo rti;
|
|
||||||
rti.ssrc = kSenderSsrc;
|
|
||||||
rti.last_rr = CompactNtp(clock.ConvertTimestampToNtpTime(time));
|
|
||||||
rti.delay_since_last_rr = SaturatedUsToCompactNtp(10 * 1000);
|
|
||||||
webrtc::rtcp::ExtendedReports xr;
|
|
||||||
xr.AddDlrrItem(rti);
|
|
||||||
auto raw_packet = xr.Build();
|
|
||||||
|
|
||||||
EXPECT_CALL(rtt_observer, OnRttUpdate(100 /* rtt_ms */));
|
|
||||||
rtcp_transceiver.ReceivePacket(raw_packet, time + TimeDelta::Millis(110));
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(RtcpTransceiverImplTest, PassRttFromDlrrToLinkObserver) {
|
TEST(RtcpTransceiverImplTest, PassRttFromDlrrToLinkObserver) {
|
||||||
const uint32_t kSenderSsrc = 4321;
|
const uint32_t kSenderSsrc = 4321;
|
||||||
MockNetworkLinkRtcpObserver link_observer;
|
MockNetworkLinkRtcpObserver link_observer;
|
||||||
@ -1230,7 +1203,7 @@ TEST(RtcpTransceiverImplTest, IgnoresUnknownSsrcInDlrr) {
|
|||||||
const uint32_t kSenderSsrc = 4321;
|
const uint32_t kSenderSsrc = 4321;
|
||||||
const uint32_t kUnknownSsrc = 4322;
|
const uint32_t kUnknownSsrc = 4322;
|
||||||
SimulatedClock clock(0);
|
SimulatedClock clock(0);
|
||||||
MockRtcpRttStats rtt_observer;
|
MockNetworkLinkRtcpObserver link_observer;
|
||||||
MockTransport null_transport;
|
MockTransport null_transport;
|
||||||
RtcpTransceiverConfig config;
|
RtcpTransceiverConfig config;
|
||||||
config.clock = &clock;
|
config.clock = &clock;
|
||||||
@ -1238,7 +1211,7 @@ TEST(RtcpTransceiverImplTest, IgnoresUnknownSsrcInDlrr) {
|
|||||||
config.schedule_periodic_compound_packets = false;
|
config.schedule_periodic_compound_packets = false;
|
||||||
config.outgoing_transport = &null_transport;
|
config.outgoing_transport = &null_transport;
|
||||||
config.non_sender_rtt_measurement = true;
|
config.non_sender_rtt_measurement = true;
|
||||||
config.rtt_observer = &rtt_observer;
|
config.network_link_observer = &link_observer;
|
||||||
RtcpTransceiverImpl rtcp_transceiver(config);
|
RtcpTransceiverImpl rtcp_transceiver(config);
|
||||||
|
|
||||||
Timestamp time = Timestamp::Micros(12345678);
|
Timestamp time = Timestamp::Micros(12345678);
|
||||||
@ -1249,7 +1222,7 @@ TEST(RtcpTransceiverImplTest, IgnoresUnknownSsrcInDlrr) {
|
|||||||
xr.AddDlrrItem(rti);
|
xr.AddDlrrItem(rti);
|
||||||
auto raw_packet = xr.Build();
|
auto raw_packet = xr.Build();
|
||||||
|
|
||||||
EXPECT_CALL(rtt_observer, OnRttUpdate(_)).Times(0);
|
EXPECT_CALL(link_observer, OnRttUpdate).Times(0);
|
||||||
rtcp_transceiver.ReceivePacket(raw_packet, time + TimeDelta::Millis(100));
|
rtcp_transceiver.ReceivePacket(raw_packet, time + TimeDelta::Millis(100));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user