From 4dc7a3e2becd1589607daa790a1d9097952a1844 Mon Sep 17 00:00:00 2001 From: Salman Date: Tue, 20 Dec 2022 18:09:23 +0000 Subject: [PATCH] base_capturer_pipewire: Time the capturer This CL records the time it took to capture a frame. Bug: chromium:1291247 Change-Id: I31cbb2ca6ae5b9449b8fd154182105a3ce2c851e Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/288660 Commit-Queue: Salman Malik Reviewed-by: Alexander Cooper Auto-Submit: Salman Malik Cr-Commit-Position: refs/heads/main@{#38933} --- .../desktop_capture/linux/wayland/base_capturer_pipewire.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/desktop_capture/linux/wayland/base_capturer_pipewire.cc b/modules/desktop_capture/linux/wayland/base_capturer_pipewire.cc index fce023782f..cf4f7dc9aa 100644 --- a/modules/desktop_capture/linux/wayland/base_capturer_pipewire.cc +++ b/modules/desktop_capture/linux/wayland/base_capturer_pipewire.cc @@ -17,6 +17,8 @@ #include "modules/portal/xdg_desktop_portal_utils.h" #include "rtc_base/checks.h" #include "rtc_base/logging.h" +#include "rtc_base/time_utils.h" +#include "rtc_base/trace_event.h" namespace webrtc { @@ -136,6 +138,7 @@ void BaseCapturerPipeWire::Start(Callback* callback) { } void BaseCapturerPipeWire::CaptureFrame() { + TRACE_EVENT0("webrtc", "BaseCapturerPipeWire::CaptureFrame"); if (capturer_failed_) { // This could be recoverable if the source list is re-summoned; but for our // purposes this is fine, since it requires intervention to resolve and @@ -144,6 +147,7 @@ void BaseCapturerPipeWire::CaptureFrame() { return; } + int64_t capture_start_time_nanos = rtc::TimeNanos(); std::unique_ptr frame = options_.screencast_stream()->CaptureFrame(); @@ -156,6 +160,8 @@ void BaseCapturerPipeWire::CaptureFrame() { // the frame, see ScreenCapturerX11::CaptureFrame. frame->set_capturer_id(DesktopCapturerId::kWaylandCapturerLinux); + frame->set_capture_time_ms((rtc::TimeNanos() - capture_start_time_nanos) / + rtc::kNumNanosecsPerMillisec); callback_->OnCaptureResult(Result::SUCCESS, std::move(frame)); }