OLD | NEW |
| (Empty) |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #ifndef CONTENT_RENDERER_MEDIA_WEBMEDIAPLAYER_PARAMS_H_ | |
6 #define CONTENT_RENDERER_MEDIA_WEBMEDIAPLAYER_PARAMS_H_ | |
7 | |
8 #include "base/callback.h" | |
9 #include "base/memory/ref_counted.h" | |
10 #include "content/renderer/media/crypto/encrypted_media_player_support.h" | |
11 | |
12 namespace base { | |
13 class SingleThreadTaskRunner; | |
14 } | |
15 | |
16 namespace blink { | |
17 class WebMediaPlayerClient; | |
18 } | |
19 | |
20 namespace media { | |
21 class AudioHardwareConfig; | |
22 class AudioRendererSink; | |
23 class GpuVideoAcceleratorFactories; | |
24 class MediaLog; | |
25 } | |
26 | |
27 namespace content { | |
28 | |
29 // Holds parameters for constructing WebMediaPlayerImpl without having | |
30 // to plumb arguments through various abstraction layers. | |
31 class WebMediaPlayerParams { | |
32 public: | |
33 // Callback used to create EncryptedMediaPlayerSupport instances. This | |
34 // callback must always return a valid EncryptedMediaPlayerSupport object. | |
35 typedef base::Callback<scoped_ptr<EncryptedMediaPlayerSupport>( | |
36 blink::WebMediaPlayerClient*)> EncryptedMediaPlayerSupportCreateCB; | |
37 | |
38 // |defer_load_cb|, |audio_renderer_sink|, and |compositor_task_runner| may be | |
39 // null. | |
40 WebMediaPlayerParams( | |
41 const base::Callback<void(const base::Closure&)>& defer_load_cb, | |
42 const scoped_refptr<media::AudioRendererSink>& audio_renderer_sink, | |
43 const media::AudioHardwareConfig& audio_hardware_config, | |
44 const scoped_refptr<media::MediaLog>& media_log, | |
45 const scoped_refptr<media::GpuVideoAcceleratorFactories>& gpu_factories, | |
46 const scoped_refptr<base::SingleThreadTaskRunner>& | |
47 media_task_runner, | |
48 const scoped_refptr<base::SingleThreadTaskRunner>& | |
49 compositor_task_runner, | |
50 const EncryptedMediaPlayerSupportCreateCB& | |
51 encrypted_media_player_support_cb); | |
52 | |
53 ~WebMediaPlayerParams(); | |
54 | |
55 base::Callback<void(const base::Closure&)> defer_load_cb() const { | |
56 return defer_load_cb_; | |
57 } | |
58 | |
59 const scoped_refptr<media::AudioRendererSink>& audio_renderer_sink() const { | |
60 return audio_renderer_sink_; | |
61 } | |
62 | |
63 const media::AudioHardwareConfig& audio_hardware_config() const { | |
64 return audio_hardware_config_; | |
65 } | |
66 | |
67 const scoped_refptr<media::MediaLog>& media_log() const { | |
68 return media_log_; | |
69 } | |
70 | |
71 const scoped_refptr<media::GpuVideoAcceleratorFactories>& | |
72 gpu_factories() const { | |
73 return gpu_factories_; | |
74 } | |
75 | |
76 const scoped_refptr<base::SingleThreadTaskRunner>& | |
77 media_task_runner() const { | |
78 return media_task_runner_; | |
79 } | |
80 | |
81 const scoped_refptr<base::SingleThreadTaskRunner>& | |
82 compositor_task_runner() const { | |
83 return compositor_task_runner_; | |
84 } | |
85 | |
86 scoped_ptr<EncryptedMediaPlayerSupport> | |
87 CreateEncryptedMediaPlayerSupport(blink::WebMediaPlayerClient* client) const; | |
88 | |
89 private: | |
90 base::Callback<void(const base::Closure&)> defer_load_cb_; | |
91 scoped_refptr<media::AudioRendererSink> audio_renderer_sink_; | |
92 const media::AudioHardwareConfig& audio_hardware_config_; | |
93 scoped_refptr<media::MediaLog> media_log_; | |
94 scoped_refptr<media::GpuVideoAcceleratorFactories> gpu_factories_; | |
95 scoped_refptr<base::SingleThreadTaskRunner> media_task_runner_; | |
96 scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner_; | |
97 EncryptedMediaPlayerSupportCreateCB encrypted_media_player_support_cb_; | |
98 | |
99 DISALLOW_IMPLICIT_CONSTRUCTORS(WebMediaPlayerParams); | |
100 }; | |
101 | |
102 } // namespace content | |
103 | |
104 #endif // CONTENT_RENDERER_MEDIA_WEBMEDIAPLAYER_PARAMS_H_ | |
OLD | NEW |