Trigger rtt and stats update on report block rather than receiver report.
ReportBlock is the the real receiver report. Triggering rtt update on ReportBlock support clients that send receiver report blocks attached to SenderReport rather than ReceiverReport. Bug: webrtc:7996 Change-Id: Ie826fa09fd1bf0e5256e995649f66811b5192761 Reviewed-on: https://webrtc-review.googlesource.com/4040 Reviewed-by: Åsa Persson <asapersson@webrtc.org> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/master@{#20014}
This commit is contained in:
committed by
Commit Bot
parent
cff9ee650e
commit
760c4b4da9
@ -123,7 +123,7 @@ RTCPReceiver::RTCPReceiver(
|
||||
xr_rrtr_status_(false),
|
||||
xr_rr_rtt_ms_(0),
|
||||
oldest_tmmbr_info_ms_(0),
|
||||
last_received_rr_ms_(0),
|
||||
last_received_rb_ms_(0),
|
||||
last_increased_sequence_number_ms_(0),
|
||||
stats_callback_(nullptr),
|
||||
packet_type_counter_observer_(packet_type_counter_observer),
|
||||
@ -146,9 +146,9 @@ void RTCPReceiver::IncomingPacket(const uint8_t* packet, size_t packet_size) {
|
||||
TriggerCallbacksFromRtcpPacket(packet_information);
|
||||
}
|
||||
|
||||
int64_t RTCPReceiver::LastReceivedReceiverReport() const {
|
||||
int64_t RTCPReceiver::LastReceivedReportBlockMs() const {
|
||||
rtc::CritScope lock(&rtcp_receiver_lock_);
|
||||
return last_received_rr_ms_;
|
||||
return last_received_rb_ms_;
|
||||
}
|
||||
|
||||
void RTCPReceiver::SetRemoteSSRC(uint32_t ssrc) {
|
||||
@ -422,8 +422,6 @@ void RTCPReceiver::HandleReceiverReport(const CommonHeader& rtcp_block,
|
||||
return;
|
||||
}
|
||||
|
||||
last_received_rr_ms_ = clock_->TimeInMilliseconds();
|
||||
|
||||
const uint32_t remote_ssrc = receiver_report.sender_ssrc();
|
||||
|
||||
packet_information->remote_ssrc = remote_ssrc;
|
||||
@ -455,6 +453,8 @@ void RTCPReceiver::HandleReportBlock(const ReportBlock& report_block,
|
||||
if (registered_ssrcs_.count(report_block.source_ssrc()) == 0)
|
||||
return;
|
||||
|
||||
last_received_rb_ms_ = clock_->TimeInMilliseconds();
|
||||
|
||||
ReportBlockWithRtt* report_block_info =
|
||||
&received_report_blocks_[report_block.source_ssrc()][remote_ssrc];
|
||||
report_block_info->report_block.sender_ssrc = remote_ssrc;
|
||||
@ -534,13 +534,13 @@ RTCPReceiver::TmmbrInformation* RTCPReceiver::GetTmmbrInformation(
|
||||
|
||||
bool RTCPReceiver::RtcpRrTimeout(int64_t rtcp_interval_ms) {
|
||||
rtc::CritScope lock(&rtcp_receiver_lock_);
|
||||
if (last_received_rr_ms_ == 0)
|
||||
if (last_received_rb_ms_ == 0)
|
||||
return false;
|
||||
|
||||
int64_t time_out_ms = kRrTimeoutIntervals * rtcp_interval_ms;
|
||||
if (clock_->TimeInMilliseconds() > last_received_rr_ms_ + time_out_ms) {
|
||||
if (clock_->TimeInMilliseconds() > last_received_rb_ms_ + time_out_ms) {
|
||||
// Reset the timer to only trigger one log.
|
||||
last_received_rr_ms_ = 0;
|
||||
last_received_rb_ms_ = 0;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user