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