Chromium Code Reviews| Index: media/blink/webmediaplayer_impl.h |
| diff --git a/media/blink/webmediaplayer_impl.h b/media/blink/webmediaplayer_impl.h |
| index 16f3bbdbec91f6973d68da6e9dcb52e15f4c662f..a904faecbcd9f0e642aaf9b25fa91b99163f200b 100644 |
| --- a/media/blink/webmediaplayer_impl.h |
| +++ b/media/blink/webmediaplayer_impl.h |
| @@ -23,6 +23,7 @@ |
| #include "build/build_config.h" |
| #include "media/base/media_tracks.h" |
| #include "media/base/pipeline_impl.h" |
| +#include "media/base/renderer_controller.h" |
| #include "media/base/renderer_factory.h" |
| #include "media/base/surface_manager.h" |
| #include "media/base/text_track.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. |
| + // |renderer_controller| 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, |
| + RendererController* renderer_controller, |
| 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,9 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl |
| // TODO(hubbe): WMPI_CAST make private. |
| void OnPipelineSeeked(bool time_updated); |
| + // Ask for the renderer to be restarted (destructed and recreated). |
|
miu
2016/09/28 01:33:31
Suggestion:
// Restart the player/pipeline as s
xjz
2016/09/29 22:54:21
Done.
|
| + void ScheduleRestart(); |
|
miu
2016/09/28 01:33:32
Thinking about how apacible's work will also integ
xjz
2016/09/29 22:54:21
As discussed offline, we may be able to pass info
|
| + |
| // Distinct states that |delegate_| can be in. |
| // TODO(sandersd): This should move into WebMediaPlayerDelegate. |
| // (Public for testing.) |
| @@ -253,9 +263,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 +555,9 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl |
| int underflow_count_; |
| std::unique_ptr<base::ElapsedTimer> underflow_timer_; |
| + // This controller may trigger restart of pipeline to switch renderer. |
| + RendererController* renderer_controller_; |
| + |
| DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerImpl); |
| }; |