OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CONTENT_RENDERER_MEDIA_WEBMEDIAPLAYER_MS_H_ | 5 #ifndef CONTENT_RENDERER_MEDIA_WEBMEDIAPLAYER_MS_H_ |
6 #define CONTENT_RENDERER_MEDIA_WEBMEDIAPLAYER_MS_H_ | 6 #define CONTENT_RENDERER_MEDIA_WEBMEDIAPLAYER_MS_H_ |
7 | 7 |
8 #include "base/memory/ref_counted.h" | 8 #include "base/memory/ref_counted.h" |
9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "base/memory/weak_ptr.h" | 10 #include "base/memory/weak_ptr.h" |
11 #include "base/synchronization/lock.h" | 11 #include "base/synchronization/lock.h" |
12 #include "base/threading/thread_checker.h" | 12 #include "base/threading/thread_checker.h" |
13 #include "cc/layers/video_frame_provider.h" | 13 #include "cc/layers/video_frame_provider.h" |
14 #include "media/blink/skcanvas_video_renderer.h" | 14 #include "media/blink/skcanvas_video_renderer.h" |
15 #include "media/blink/webmediaplayer_util.h" | 15 #include "media/blink/webmediaplayer_util.h" |
16 #include "media/filters/video_renderer_algorithm.h" | 16 #include "media/filters/video_renderer_algorithm.h" |
| 17 #include "media/renderers/gpu_video_accelerator_factories.h" |
17 #include "skia/ext/platform_canvas.h" | 18 #include "skia/ext/platform_canvas.h" |
18 #include "third_party/WebKit/public/platform/WebMediaPlayer.h" | 19 #include "third_party/WebKit/public/platform/WebMediaPlayer.h" |
19 #include "url/gurl.h" | 20 #include "url/gurl.h" |
20 | 21 |
21 namespace blink { | 22 namespace blink { |
22 class WebFrame; | 23 class WebFrame; |
23 class WebGraphicsContext3D; | 24 class WebGraphicsContext3D; |
24 class WebMediaPlayerClient; | 25 class WebMediaPlayerClient; |
25 } | 26 } |
26 | 27 |
(...skipping 24 matching lines...) Expand all Loading... |
51 // plays audio streams. | 52 // plays audio streams. |
52 // | 53 // |
53 // blink::WebMediaPlayerClient | 54 // blink::WebMediaPlayerClient |
54 // WebKit client of this media player object. | 55 // WebKit client of this media player object. |
55 class WebMediaPlayerMS | 56 class WebMediaPlayerMS |
56 : public blink::WebMediaPlayer, | 57 : public blink::WebMediaPlayer, |
57 public base::SupportsWeakPtr<WebMediaPlayerMS> { | 58 public base::SupportsWeakPtr<WebMediaPlayerMS> { |
58 public: | 59 public: |
59 // Construct a WebMediaPlayerMS with reference to the client, and | 60 // Construct a WebMediaPlayerMS with reference to the client, and |
60 // a MediaStreamClient which provides VideoFrameProvider. | 61 // a MediaStreamClient which provides VideoFrameProvider. |
61 WebMediaPlayerMS(blink::WebFrame* frame, | 62 WebMediaPlayerMS( |
62 blink::WebMediaPlayerClient* client, | 63 blink::WebFrame* frame, |
63 base::WeakPtr<media::WebMediaPlayerDelegate> delegate, | 64 blink::WebMediaPlayerClient* client, |
64 media::MediaLog* media_log, | 65 base::WeakPtr<media::WebMediaPlayerDelegate> delegate, |
65 scoped_ptr<MediaStreamRendererFactory> factory, | 66 media::MediaLog* media_log, |
66 const scoped_refptr<base::SingleThreadTaskRunner>& | 67 scoped_ptr<MediaStreamRendererFactory> factory, |
67 compositor_task_runner); | 68 const scoped_refptr<base::SingleThreadTaskRunner>& compositor_task_runner, |
| 69 const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner, |
| 70 const scoped_refptr<base::TaskRunner>& worker_task_runner, |
| 71 const scoped_refptr<media::GpuVideoAcceleratorFactories>& gpu_factories); |
68 | 72 |
69 ~WebMediaPlayerMS() override; | 73 ~WebMediaPlayerMS() override; |
70 | 74 |
71 void load(LoadType load_type, | 75 void load(LoadType load_type, |
72 const blink::WebURL& url, | 76 const blink::WebURL& url, |
73 CORSMode cors_mode) override; | 77 CORSMode cors_mode) override; |
74 | 78 |
75 // Playback controls. | 79 // Playback controls. |
76 void play() override; | 80 void play() override; |
77 void pause() override; | 81 void pause() override; |
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
261 bool received_first_frame_; | 265 bool received_first_frame_; |
262 | 266 |
263 scoped_refptr<MediaStreamAudioRenderer> audio_renderer_; | 267 scoped_refptr<MediaStreamAudioRenderer> audio_renderer_; |
264 | 268 |
265 media::SkCanvasVideoRenderer video_renderer_; | 269 media::SkCanvasVideoRenderer video_renderer_; |
266 | 270 |
267 scoped_refptr<media::MediaLog> media_log_; | 271 scoped_refptr<media::MediaLog> media_log_; |
268 | 272 |
269 scoped_ptr<MediaStreamRendererFactory> renderer_factory_; | 273 scoped_ptr<MediaStreamRendererFactory> renderer_factory_; |
270 | 274 |
| 275 const scoped_refptr<base::SingleThreadTaskRunner> media_task_runner_; |
| 276 const scoped_refptr<base::TaskRunner> worker_task_runner_; |
| 277 const scoped_refptr<media::GpuVideoAcceleratorFactories> gpu_factories_; |
271 | 278 |
272 // Used for DCHECKs to ensure methods calls executed in the correct thread. | 279 // Used for DCHECKs to ensure methods calls executed in the correct thread. |
273 base::ThreadChecker thread_checker_; | 280 base::ThreadChecker thread_checker_; |
274 | 281 |
275 // WebMediaPlayerMS owns the Compositor instance, but the destructions of | 282 // WebMediaPlayerMS owns the Compositor instance, but the destructions of |
276 // compositor should take place on Compositor Thread. | 283 // compositor should take place on Compositor Thread. |
277 scoped_ptr<Compositor> compositor_; | 284 scoped_ptr<Compositor> compositor_; |
278 | 285 |
279 scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner_; | 286 scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner_; |
280 | 287 |
281 | 288 |
282 DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerMS); | 289 DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerMS); |
283 }; | 290 }; |
284 | 291 |
285 } // namespace content | 292 } // namespace content |
286 | 293 |
287 #endif // CONTENT_RENDERER_MEDIA_WEBMEDIAPLAYER_MS_H_ | 294 #endif // CONTENT_RENDERER_MEDIA_WEBMEDIAPLAYER_MS_H_ |
OLD | NEW |