Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(275)

Unified Diff: media/blink/video_frame_compositor.h

Issue 2631633003: [Video] Only start tracking foreground time if the video was resumed. (Closed)
Patch Set: Added a comment Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | media/blink/video_frame_compositor.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/blink/video_frame_compositor.h
diff --git a/media/blink/video_frame_compositor.h b/media/blink/video_frame_compositor.h
index 03fb4c5d489f5926b264645fb4ab342c3e247a28..0068933ad9ff2a9918dae9d743e7be0e2cec07ee 100644
--- a/media/blink/video_frame_compositor.h
+++ b/media/blink/video_frame_compositor.h
@@ -13,6 +13,7 @@
#include "base/single_thread_task_runner.h"
#include "base/synchronization/lock.h"
#include "base/time/tick_clock.h"
+#include "base/time/time.h"
#include "base/timer/timer.h"
#include "cc/layers/video_frame_provider.h"
#include "media/base/video_renderer_sink.h"
@@ -57,6 +58,9 @@ class MEDIA_BLINK_EXPORT VideoFrameCompositor
: public VideoRendererSink,
NON_EXPORTED_BASE(public cc::VideoFrameProvider) {
public:
+ // Used to report back the time when the new frame has been processed.
+ using OnNewProcessedFrameCB = base::Callback<void(base::TimeTicks)>;
+
// |compositor_task_runner| is the task runner on which this class will live,
// though it may be constructed on any thread.
explicit VideoFrameCompositor(
@@ -103,10 +107,10 @@ class MEDIA_BLINK_EXPORT VideoFrameCompositor
// PaintSingleFrame() is not also called while stopped.)
base::TimeDelta GetCurrentFrameTimestamp() const;
- // Called when the media player is brought to the foreground.
- // Used to record the time it takes to process the first frame after that.
+ // Sets the callback to be run when the new frame has been processed. The
+ // callback is only run once and then reset.
// Must be called on the compositor thread.
- void SetForegroundTime(base::TimeTicks when);
+ void SetOnNewProcessedFrameCallback(const OnNewProcessedFrameCB& cb);
void set_tick_clock_for_testing(std::unique_ptr<base::TickClock> tick_clock) {
tick_clock_ = std::move(tick_clock);
@@ -162,7 +166,7 @@ class MEDIA_BLINK_EXPORT VideoFrameCompositor
bool new_background_frame_;
base::TimeDelta last_interval_;
base::TimeTicks last_background_render_;
- base::TimeTicks foreground_time_;
+ OnNewProcessedFrameCB new_processed_frame_cb_;
// These values are set on the compositor thread, but also read on the media
// thread when the VFC is stopped.
« no previous file with comments | « no previous file | media/blink/video_frame_compositor.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698