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); |
}; |