diff --git a/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc b/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc index c9b1f8dee5..d31f86772e 100644 --- a/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc +++ b/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc @@ -26,6 +26,7 @@ #include "rtc_base/logging.h" #include "rtc_base/sanitizer.h" #include "rtc_base/synchronization/mutex.h" +#include "rtc_base/time_utils.h" namespace webrtc { @@ -690,6 +691,7 @@ void SharedScreenCastStreamPrivate::NotifyCallbackOfNewFrame( RTC_NO_SANITIZE("cfi-icall") void SharedScreenCastStreamPrivate::ProcessBuffer(pw_buffer* buffer) { + int64_t capture_start_time_nanos = rtc::TimeNanos(); if (callback_) { callback_->OnFrameCaptureStart(); } @@ -941,7 +943,11 @@ void SharedScreenCastStreamPrivate::ProcessBuffer(pw_buffer* buffer) { queue_.current_frame()->set_may_contain_cursor(is_cursor_embedded_); if (callback_) { - NotifyCallbackOfNewFrame(queue_.current_frame()->Share()); + std::unique_ptr frame = queue_.current_frame()->Share(); + frame->set_capturer_id(DesktopCapturerId::kWaylandCapturerLinux); + frame->set_capture_time_ms((rtc::TimeNanos() - capture_start_time_nanos) / + rtc::kNumNanosecsPerMillisec); + NotifyCallbackOfNewFrame(std::move(frame)); } }