Adding new WebRTC.Video.GenericDecoder histograms
Goal is to be able to get an improved overview of the distribution
of the total delay.
Bug: None
Change-Id: I0dced53eafd1fb09941590f3706480066c52419b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/317260
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Johannes Kron <kron@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40597}
diff --git a/modules/video_coding/generic_decoder.cc b/modules/video_coding/generic_decoder.cc
index 4c0e381..e3ce413 100644
--- a/modules/video_coding/generic_decoder.cc
+++ b/modules/video_coding/generic_decoder.cc
@@ -28,6 +28,7 @@
#include "rtc_base/string_encode.h"
#include "rtc_base/trace_event.h"
#include "system_wrappers/include/clock.h"
+#include "system_wrappers/include/metrics.h"
namespace webrtc {
@@ -186,6 +187,15 @@
frame_info->timing.network_timestamp_ms - sender_delta_ms;
timing_frame_info.network2_timestamp_ms =
frame_info->timing.network2_timestamp_ms - sender_delta_ms;
+ RTC_HISTOGRAM_COUNTS_1000(
+ "WebRTC.Video.GenericDecoder.CaptureToEncodeDelay",
+ timing_frame_info.encode_start_ms - timing_frame_info.capture_time_ms);
+ RTC_HISTOGRAM_COUNTS_1000(
+ "WebRTC.Video.GenericDecoder.EncodeDelay",
+ timing_frame_info.encode_finish_ms - timing_frame_info.encode_start_ms);
+ RTC_HISTOGRAM_COUNTS_1000(
+ "WebRTC.Video.GenericDecoder.PacerAndPacketizationDelay",
+ timing_frame_info.pacer_exit_ms - timing_frame_info.encode_finish_ms);
}
timing_frame_info.flags = frame_info->timing.flags;
@@ -196,6 +206,15 @@
timing_frame_info.rtp_timestamp = decodedImage.timestamp();
timing_frame_info.receive_start_ms = frame_info->timing.receive_start_ms;
timing_frame_info.receive_finish_ms = frame_info->timing.receive_finish_ms;
+ RTC_HISTOGRAM_COUNTS_1000(
+ "WebRTC.Video.GenericDecoder.PacketReceiveDelay",
+ timing_frame_info.receive_finish_ms - timing_frame_info.receive_start_ms);
+ RTC_HISTOGRAM_COUNTS_1000(
+ "WebRTC.Video.GenericDecoder.JitterBufferDelay",
+ timing_frame_info.decode_start_ms - timing_frame_info.receive_finish_ms);
+ RTC_HISTOGRAM_COUNTS_1000(
+ "WebRTC.Video.GenericDecoder.DecodeDelay",
+ timing_frame_info.decode_finish_ms - timing_frame_info.decode_start_ms);
_timing->SetTimingFrameInfo(timing_frame_info);
decodedImage.set_timestamp_us(