Index: content/renderer/media/webmediaplayer_params.h |
diff --git a/content/renderer/media/webmediaplayer_params.h b/content/renderer/media/webmediaplayer_params.h |
index 87105fef85551d547a9af42821fa5d2345542b7b..cfaff62cc1d0801cea329ac3a0cc238f8afb0ef3 100644 |
--- a/content/renderer/media/webmediaplayer_params.h |
+++ b/content/renderer/media/webmediaplayer_params.h |
@@ -7,9 +7,21 @@ |
#include "base/callback.h" |
#include "base/memory/ref_counted.h" |
+#include "content/renderer/media/crypto/encrypted_media_player_support.h" |
+ |
+namespace base { |
+class SingleThreadTaskRunner; |
+} |
+ |
+namespace blink { |
+class WebMediaPlayerClient; |
+} |
namespace media { |
+class AudioHardwareConfig; |
class AudioRendererSink; |
+class GpuVideoAcceleratorFactories; |
+class MediaLog; |
} |
namespace content { |
@@ -18,10 +30,26 @@ namespace content { |
// to plumb arguments through various abstraction layers. |
class WebMediaPlayerParams { |
public: |
- // Parameters may be null. |
+ // Callback used to create EncryptedMediaPlayerSupport instances. This |
+ // callback must always return a valid EncryptedMediaPlayerSupport object. |
+ typedef base::Callback<scoped_ptr<EncryptedMediaPlayerSupport>( |
+ blink::WebMediaPlayerClient*)> EncryptedMediaPlayerSupportCreateCB; |
+ |
+ // |defer_load_cb|, |audio_renderer_sink|, and |compositor_task_runner| may be |
+ // null. |
WebMediaPlayerParams( |
const base::Callback<void(const base::Closure&)>& defer_load_cb, |
- const scoped_refptr<media::AudioRendererSink>& audio_renderer_sink); |
+ const scoped_refptr<media::AudioRendererSink>& audio_renderer_sink, |
+ const media::AudioHardwareConfig& audio_hardware_config, |
+ const scoped_refptr<media::MediaLog>& media_log, |
+ const scoped_refptr<media::GpuVideoAcceleratorFactories>& gpu_factories, |
+ const scoped_refptr<base::SingleThreadTaskRunner>& |
+ media_task_runner, |
+ const scoped_refptr<base::SingleThreadTaskRunner>& |
+ compositor_task_runner, |
+ const EncryptedMediaPlayerSupportCreateCB& |
+ encrypted_media_player_support_cb); |
+ |
~WebMediaPlayerParams(); |
base::Callback<void(const base::Closure&)> defer_load_cb() const { |
@@ -32,9 +60,41 @@ class WebMediaPlayerParams { |
return audio_renderer_sink_; |
} |
+ const media::AudioHardwareConfig& audio_hardware_config() const { |
+ return audio_hardware_config_; |
+ } |
+ |
+ const scoped_refptr<media::MediaLog>& media_log() const { |
+ return media_log_; |
+ } |
+ |
+ const scoped_refptr<media::GpuVideoAcceleratorFactories>& |
+ gpu_factories() const { |
+ return gpu_factories_; |
+ } |
+ |
+ const scoped_refptr<base::SingleThreadTaskRunner>& |
+ media_task_runner() const { |
+ return media_task_runner_; |
+ } |
+ |
+ const scoped_refptr<base::SingleThreadTaskRunner>& |
+ compositor_task_runner() const { |
+ return compositor_task_runner_; |
+ } |
+ |
+ scoped_ptr<EncryptedMediaPlayerSupport> |
+ CreateEncryptedMediaPlayerSupport(blink::WebMediaPlayerClient* client) const; |
+ |
private: |
base::Callback<void(const base::Closure&)> defer_load_cb_; |
scoped_refptr<media::AudioRendererSink> audio_renderer_sink_; |
+ const media::AudioHardwareConfig& audio_hardware_config_; |
+ scoped_refptr<media::MediaLog> media_log_; |
+ scoped_refptr<media::GpuVideoAcceleratorFactories> gpu_factories_; |
+ scoped_refptr<base::SingleThreadTaskRunner> media_task_runner_; |
+ scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner_; |
+ EncryptedMediaPlayerSupportCreateCB encrypted_media_player_support_cb_; |
DISALLOW_IMPLICIT_CONSTRUCTORS(WebMediaPlayerParams); |
}; |