Reducing calls to clock_->TimeInXyz in RTCPReceiver.
No-Try: True Change-Id: I310a897febd6c8418c3103c39cf7819e043c1945 Bug: webrtc:11470 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/172089 Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Reviewed-by: Magnus Flodman <mflodman@webrtc.org> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/master@{#30945}
This commit is contained in:
@ -415,15 +415,16 @@ bool RTCPReceiver::ParseCompoundPacket(rtc::ArrayView<const uint8_t> packet,
|
|||||||
main_ssrc_, packet_type_counter_);
|
main_ssrc_, packet_type_counter_);
|
||||||
}
|
}
|
||||||
|
|
||||||
int64_t now_ms = clock_->TimeInMilliseconds();
|
if (num_skipped_packets_ > 0) {
|
||||||
if (now_ms - last_skipped_packets_warning_ms_ >= kMaxWarningLogIntervalMs &&
|
const int64_t now_ms = clock_->TimeInMilliseconds();
|
||||||
num_skipped_packets_ > 0) {
|
if (now_ms - last_skipped_packets_warning_ms_ >= kMaxWarningLogIntervalMs) {
|
||||||
last_skipped_packets_warning_ms_ = now_ms;
|
last_skipped_packets_warning_ms_ = now_ms;
|
||||||
RTC_LOG(LS_WARNING)
|
RTC_LOG(LS_WARNING)
|
||||||
<< num_skipped_packets_
|
<< num_skipped_packets_
|
||||||
<< " RTCP blocks were skipped due to being malformed or of "
|
<< " RTCP blocks were skipped due to being malformed or of "
|
||||||
"unrecognized/unsupported type, during the past "
|
"unrecognized/unsupported type, during the past "
|
||||||
<< (kMaxWarningLogIntervalMs / 1000) << " second period.";
|
<< (kMaxWarningLogIntervalMs / 1000) << " second period.";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -497,7 +498,8 @@ void RTCPReceiver::HandleReportBlock(const ReportBlock& report_block,
|
|||||||
if (registered_ssrcs_.count(report_block.source_ssrc()) == 0)
|
if (registered_ssrcs_.count(report_block.source_ssrc()) == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
last_received_rb_ms_ = clock_->TimeInMilliseconds();
|
const Timestamp now = clock_->CurrentTime();
|
||||||
|
last_received_rb_ms_ = now.ms();
|
||||||
|
|
||||||
ReportBlockData* report_block_data =
|
ReportBlockData* report_block_data =
|
||||||
&received_report_blocks_[report_block.source_ssrc()][remote_ssrc];
|
&received_report_blocks_[report_block.source_ssrc()][remote_ssrc];
|
||||||
@ -510,7 +512,7 @@ void RTCPReceiver::HandleReportBlock(const ReportBlock& report_block,
|
|||||||
report_block_data->report_block().extended_highest_sequence_number) {
|
report_block_data->report_block().extended_highest_sequence_number) {
|
||||||
// We have successfully delivered new RTP packets to the remote side after
|
// We have successfully delivered new RTP packets to the remote side after
|
||||||
// the last RR was sent from the remote side.
|
// the last RR was sent from the remote side.
|
||||||
last_increased_sequence_number_ms_ = clock_->TimeInMilliseconds();
|
last_increased_sequence_number_ms_ = now.ms();
|
||||||
}
|
}
|
||||||
rtcp_report_block.extended_highest_sequence_number =
|
rtcp_report_block.extended_highest_sequence_number =
|
||||||
report_block.extended_high_seq_num();
|
report_block.extended_high_seq_num();
|
||||||
@ -536,8 +538,7 @@ void RTCPReceiver::HandleReportBlock(const ReportBlock& report_block,
|
|||||||
if (send_time_ntp != 0) {
|
if (send_time_ntp != 0) {
|
||||||
uint32_t delay_ntp = report_block.delay_since_last_sr();
|
uint32_t delay_ntp = report_block.delay_since_last_sr();
|
||||||
// Local NTP time.
|
// Local NTP time.
|
||||||
uint32_t receive_time_ntp =
|
uint32_t receive_time_ntp = CompactNtp(TimeMicrosToNtp(now.us()));
|
||||||
CompactNtp(TimeMicrosToNtp(clock_->TimeInMicroseconds()));
|
|
||||||
|
|
||||||
// RTT in 1/(2^16) seconds.
|
// RTT in 1/(2^16) seconds.
|
||||||
uint32_t rtt_ntp = receive_time_ntp - delay_ntp - send_time_ntp;
|
uint32_t rtt_ntp = receive_time_ntp - delay_ntp - send_time_ntp;
|
||||||
@ -860,7 +861,9 @@ void RTCPReceiver::HandleTmmbr(const CommonHeader& rtcp_block,
|
|||||||
auto* entry = &tmmbr_info->tmmbr[sender_ssrc];
|
auto* entry = &tmmbr_info->tmmbr[sender_ssrc];
|
||||||
entry->tmmbr_item = rtcp::TmmbItem(sender_ssrc, request.bitrate_bps(),
|
entry->tmmbr_item = rtcp::TmmbItem(sender_ssrc, request.bitrate_bps(),
|
||||||
request.packet_overhead());
|
request.packet_overhead());
|
||||||
entry->last_updated_ms = clock_->TimeInMilliseconds();
|
// FindOrCreateTmmbrInfo always sets |last_time_received_ms| to
|
||||||
|
// |clock_->TimeInMilliseconds()|.
|
||||||
|
entry->last_updated_ms = tmmbr_info->last_time_received_ms;
|
||||||
|
|
||||||
packet_information->packet_type_flags |= kRtcpTmmbr;
|
packet_information->packet_type_flags |= kRtcpTmmbr;
|
||||||
break;
|
break;
|
||||||
@ -927,6 +930,10 @@ void RTCPReceiver::HandleFir(const CommonHeader& rtcp_block,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (fir.requests().empty())
|
||||||
|
return;
|
||||||
|
|
||||||
|
const int64_t now_ms = clock_->TimeInMilliseconds();
|
||||||
for (const rtcp::Fir::Request& fir_request : fir.requests()) {
|
for (const rtcp::Fir::Request& fir_request : fir.requests()) {
|
||||||
// Is it our sender that is requested to generate a new keyframe.
|
// Is it our sender that is requested to generate a new keyframe.
|
||||||
if (main_ssrc_ != fir_request.ssrc)
|
if (main_ssrc_ != fir_request.ssrc)
|
||||||
@ -934,7 +941,6 @@ void RTCPReceiver::HandleFir(const CommonHeader& rtcp_block,
|
|||||||
|
|
||||||
++packet_type_counter_.fir_packets;
|
++packet_type_counter_.fir_packets;
|
||||||
|
|
||||||
int64_t now_ms = clock_->TimeInMilliseconds();
|
|
||||||
auto inserted = last_fir_.insert(std::make_pair(
|
auto inserted = last_fir_.insert(std::make_pair(
|
||||||
fir.sender_ssrc(), LastFirStatus(now_ms, fir_request.seq_nr)));
|
fir.sender_ssrc(), LastFirStatus(now_ms, fir_request.seq_nr)));
|
||||||
if (!inserted.second) { // There was already an entry.
|
if (!inserted.second) { // There was already an entry.
|
||||||
|
Reference in New Issue
Block a user