From 94b05599ec72e9c807ac13f352f4d6d4650eefbe Mon Sep 17 00:00:00 2001 From: Philipp Hancke Date: Tue, 17 Jan 2023 10:38:56 +0100 Subject: [PATCH] Only fill send/recv stats if there are send/receive streams MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit optimizing for the fairly common case of many recv-only mediasections. BUG=webrtc:14808 Change-Id: Iae68c5bb7a5516d77f908f1effbb50a5ed750f92 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/290984 Reviewed-by: Harald Alvestrand Commit-Queue: Philipp Hancke Reviewed-by: Henrik Boström Cr-Commit-Position: refs/heads/main@{#39122} --- media/engine/webrtc_video_engine.cc | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/media/engine/webrtc_video_engine.cc b/media/engine/webrtc_video_engine.cc index 3faeb90f00..84843f4172 100644 --- a/media/engine/webrtc_video_engine.cc +++ b/media/engine/webrtc_video_engine.cc @@ -1658,6 +1658,11 @@ bool WebRtcVideoChannel::GetSendStats(VideoMediaSendInfo* info) { RTC_DCHECK_RUN_ON(&thread_checker_); TRACE_EVENT0("webrtc", "WebRtcVideoChannel::GetSendStats"); + info->Clear(); + if (send_streams_.empty()) { + return true; + } + // Log stats periodically. bool log_stats = false; int64_t now_ms = rtc::TimeMillis(); @@ -1667,7 +1672,6 @@ bool WebRtcVideoChannel::GetSendStats(VideoMediaSendInfo* info) { log_stats = true; } - info->Clear(); FillSenderStats(info, log_stats); FillSendCodecStats(info); // TODO(holmer): We should either have rtt available as a metric on @@ -1691,6 +1695,11 @@ bool WebRtcVideoChannel::GetReceiveStats(VideoMediaReceiveInfo* info) { RTC_DCHECK_RUN_ON(&thread_checker_); TRACE_EVENT0("webrtc", "WebRtcVideoChannel::GetReceiveStats"); + info->Clear(); + if (receive_streams_.empty()) { + return true; + } + // Log stats periodically. bool log_stats = false; int64_t now_ms = rtc::TimeMillis(); @@ -1700,7 +1709,6 @@ bool WebRtcVideoChannel::GetReceiveStats(VideoMediaReceiveInfo* info) { log_stats = true; } - info->Clear(); FillReceiverStats(info, log_stats); FillReceiveCodecStats(info);