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

Unified Diff: media/blink/webmediaplayer_impl.h

Issue 2389473002: Media Remoting: Add RemotingController. (Closed)
Patch Set: Created 4 years, 3 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: media/blink/webmediaplayer_impl.h
diff --git a/media/blink/webmediaplayer_impl.h b/media/blink/webmediaplayer_impl.h
index 16f3bbdbec91f6973d68da6e9dcb52e15f4c662f..3c776d1ed9e72cc5285f783ff0f1eb338a8dbd44 100644
--- a/media/blink/webmediaplayer_impl.h
+++ b/media/blink/webmediaplayer_impl.h
@@ -22,6 +22,7 @@
#include "base/timer/timer.h"
#include "build/build_config.h"
#include "media/base/media_tracks.h"
+#include "media/base/mediaplayer_observer.h"
#include "media/base/pipeline_impl.h"
#include "media/base/renderer_factory.h"
#include "media/base/surface_manager.h"
@@ -88,6 +89,7 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl
public:
// Constructs a WebMediaPlayer implementation using Chromium's media stack.
// |delegate| may be null. |renderer_factory| must not be null.
+ // |observer| outlives this class, and could be null.
xhwang 2016/10/01 07:12:15 In your case, the |observer| is the same object as
xjz 2016/10/03 22:31:08 Done.
WebMediaPlayerImpl(
blink::WebLocalFrame* frame,
blink::WebMediaPlayerClient* client,
@@ -95,6 +97,7 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl
base::WeakPtr<WebMediaPlayerDelegate> delegate,
std::unique_ptr<RendererFactory> renderer_factory,
linked_ptr<UrlIndex> url_index,
+ MediaPlayerObserver* observer,
const WebMediaPlayerParams& params);
~WebMediaPlayerImpl() override;
@@ -181,6 +184,10 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl
void enteredFullscreen() override;
void exitedFullscreen() override;
+ // These are called when any ancestor enters/exits full screen.
+ void ancestorEnteredFullscreen() override;
+ void ancestorExitedFullscreen() override;
+
// WebMediaPlayerDelegate::Observer implementation.
void OnHidden() override;
void OnShown() override;
@@ -210,6 +217,11 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl
// TODO(hubbe): WMPI_CAST make private.
void OnPipelineSeeked(bool time_updated);
+ // Restart the player/pipeline as soon as possible. This will destroy the
+ // current renderer, if any, and create a new one via the RendererFactory; and
+ // then seek to resume playback at the current position.
+ void ScheduleRestart();
+
// Distinct states that |delegate_| can be in.
// TODO(sandersd): This should move into WebMediaPlayerDelegate.
// (Public for testing.)
@@ -253,9 +265,6 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl
// |time_updated| is false.
void DoSeek(base::TimeDelta time, bool time_updated);
- // Ask for the renderer to be restarted (destructed and recreated).
- void ScheduleRestart();
-
// Called after |defer_load_cb_| has decided to allow the load. If
// |defer_load_cb_| is null this is called immediately.
void DoLoad(LoadType load_type,
@@ -548,6 +557,9 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl
int underflow_count_;
std::unique_ptr<base::ElapsedTimer> underflow_timer_;
+ // Monitors the player events.
+ MediaPlayerObserver* const observer_;
+
DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerImpl);
};

Powered by Google App Engine
This is Rietveld 408576698