From dbef2bd276ad196cc45047dcc4957e33d6fcb734 Mon Sep 17 00:00:00 2001 From: Markus Handell Date: Wed, 22 Dec 2021 10:47:27 +0100 Subject: [PATCH] ZeroHertzAdapterMode: RequestRefreshFrame through VideoTrack & proxy. This CL continues on https://webrtc-review.googlesource.com/c/src/+/242361 to enable progression of RequestRefreshFrame calls in into the stored VideoTrackSourceInterface. go/rtc-0hz-present Bug: chromium:1255737 Change-Id: I558e7a616b3369192c52f7211bbe41a4376b48c1 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/242365 Reviewed-by: Stefan Holmer Commit-Queue: Markus Handell Cr-Commit-Position: refs/heads/main@{#35567} --- pc/media_stream_track_proxy.h | 1 + pc/video_track.cc | 5 +++++ pc/video_track.h | 1 + 3 files changed, 7 insertions(+) diff --git a/pc/media_stream_track_proxy.h b/pc/media_stream_track_proxy.h index f563137c77..02784233fd 100644 --- a/pc/media_stream_track_proxy.h +++ b/pc/media_stream_track_proxy.h @@ -53,6 +53,7 @@ PROXY_SECONDARY_METHOD2(void, rtc::VideoSinkInterface*, const rtc::VideoSinkWants&) PROXY_SECONDARY_METHOD1(void, RemoveSink, rtc::VideoSinkInterface*) +PROXY_SECONDARY_METHOD0(void, RequestRefreshFrame) BYPASS_PROXY_CONSTMETHOD0(VideoTrackSourceInterface*, GetSource) PROXY_METHOD1(void, RegisterObserver, ObserverInterface*) diff --git a/pc/video_track.cc b/pc/video_track.cc index d0246faa87..ad552ea1c9 100644 --- a/pc/video_track.cc +++ b/pc/video_track.cc @@ -63,6 +63,11 @@ void VideoTrack::RemoveSink(rtc::VideoSinkInterface* sink) { video_source_->RemoveSink(sink); } +void VideoTrack::RequestRefreshFrame() { + RTC_DCHECK_RUN_ON(worker_thread_); + video_source_->RequestRefreshFrame(); +} + VideoTrackSourceInterface* VideoTrack::GetSource() const { // Callable from any thread. return video_source_.get(); diff --git a/pc/video_track.h b/pc/video_track.h index 49deaee76a..15bfc878f5 100644 --- a/pc/video_track.h +++ b/pc/video_track.h @@ -38,6 +38,7 @@ class VideoTrack : public MediaStreamTrack, void AddOrUpdateSink(rtc::VideoSinkInterface* sink, const rtc::VideoSinkWants& wants) override; void RemoveSink(rtc::VideoSinkInterface* sink) override; + void RequestRefreshFrame() override; VideoTrackSourceInterface* GetSource() const override; ContentHint content_hint() const override;