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

Unified Diff: content/renderer/media/webmediaplayer_ms.h

Issue 1122393004: Add support for switching the audio output device for HTMLMediaElements. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Changes to MediaPlayers so that they invoke callbacks in the correct threads. First complete implem… Created 5 years, 7 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: content/renderer/media/webmediaplayer_ms.h
diff --git a/content/renderer/media/webmediaplayer_ms.h b/content/renderer/media/webmediaplayer_ms.h
index 7310fd63570390af7a77f760e627da6fa3674096..291091eefc90450cc143e3e6f8d81cbd5e2af07d 100644
--- a/content/renderer/media/webmediaplayer_ms.h
+++ b/content/renderer/media/webmediaplayer_ms.h
@@ -14,6 +14,7 @@
#include "media/blink/skcanvas_video_renderer.h"
#include "skia/ext/platform_canvas.h"
#include "third_party/WebKit/public/platform/WebMediaPlayer.h"
+#include "third_party/WebKit/public/platform/WebSetAudioOutputDeviceRequest.h"
#include "url/gurl.h"
namespace blink {
@@ -75,6 +76,8 @@ class WebMediaPlayerMS
virtual void seek(double seconds);
virtual void setRate(double rate);
virtual void setVolume(double volume);
+ virtual void setAudioOutputDevice(
+ const blink::WebSetAudioOutputDeviceRequest& request);
virtual void setPreload(blink::WebMediaPlayer::Preload preload);
virtual blink::WebTimeRanges buffered() const;
virtual blink::WebTimeRanges seekable() const;
@@ -156,7 +159,16 @@ class WebMediaPlayerMS
// Getter method to |client_|.
blink::WebMediaPlayerClient* GetClient();
- blink::WebFrame* frame_;
+ static void PrepareFinishSetAudioOutputRequest(
+ WebMediaPlayerMS* media_player,
+ const scoped_refptr<base::SingleThreadTaskRunner> task_runner,
+ blink::WebSetAudioOutputDeviceRequest* request,
+ int result);
+ void FinishSetAudioOutputRequest(
+ blink::WebSetAudioOutputDeviceRequest *request,
+ int result);
+
+ blink::WebFrame* frame_;
blink::WebMediaPlayer::NetworkState network_state_;
blink::WebMediaPlayer::ReadyState ready_state_;
@@ -165,8 +177,9 @@ class WebMediaPlayerMS
float volume_;
- // Used for DCHECKs to ensure methods calls executed in the correct thread.
- base::ThreadChecker thread_checker_;
+ // Task runner for posting tasks on Chrome's main thread. Also used
+ // for DCHECKs so methods calls won't execute in the wrong thread.
+ const scoped_refptr<base::SingleThreadTaskRunner> main_task_runner_;
blink::WebMediaPlayerClient* client_;

Powered by Google App Engine
This is Rietveld 408576698