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

Unified Diff: media/blink/webmediaplayer_impl.h

Issue 2204673004: WIP - WebMediaPlayer switch media renderer. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Get Audio/Video config from PipelineMetadata. And rebase. 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..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);
};

Powered by Google App Engine
This is Rietveld 408576698