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

Unified Diff: chromecast/media/base/video_plane_controller.h

Issue 1531543002: [Chromecast] Adding pause/resume operations to VideoPlaneController. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase of Patch Set 8. Created 4 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
Index: chromecast/media/base/video_plane_controller.h
diff --git a/chromecast/media/base/video_plane_controller.h b/chromecast/media/base/video_plane_controller.h
index 74f91eb5532761cebfc9cb9ebcb514a95fc8a3d3..c14ae95504f93ee72d7b7b2c7874f34f2154d0ac 100644
--- a/chromecast/media/base/video_plane_controller.h
+++ b/chromecast/media/base/video_plane_controller.h
@@ -59,6 +59,20 @@ class VideoPlaneController {
// no-op.
void SetGraphicsPlaneResolution(const Size& resolution);
+ // After Pause is called, no further calls to VideoPlane::SetGeometry will be
+ // made except for any pending calls already scheduled on the media thread.
+ // The Set methods will however update cached parameters that will take
+ // effect once the class is resumed. Safe to call multiple times.
+ // TODO(esum): Handle the case where there are pending calls already on the
+ // media thread. When this returns, the caller needs to know that absolutely
+ // no more SetGeometry calls will be made.
+ void Pause();
+ // Makes class active again. Also resets the video plane by posting a call to
+ // VideoPlane::SetGeometry with most recent resolution and geometry parameters
+ // (assuming they are all set). Safe to call multiple times.
+ void Resume();
+ bool is_paused() const;
+
private:
class RateLimitedSetVideoPlaneGeometry;
friend struct base::DefaultSingletonTraits<VideoPlaneController>;
@@ -74,6 +88,8 @@ class VideoPlaneController {
// VideoPlane::SetGeometry.
bool HaveDataForSetGeometry() const;
+ bool is_paused_;
+
// Current resolutions
bool have_output_res_;
bool have_graphics_res_;
« no previous file with comments | « chromecast/browser/media/cma_media_pipeline_client.cc ('k') | chromecast/media/base/video_plane_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698