OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 MEDIA_RENDERERS_RENDERER_IMPL_H_ | 5 #ifndef MEDIA_RENDERERS_RENDERER_IMPL_H_ |
6 #define MEDIA_RENDERERS_RENDERER_IMPL_H_ | 6 #define MEDIA_RENDERERS_RENDERER_IMPL_H_ |
7 | 7 |
8 #include <list> | 8 #include <list> |
9 #include <memory> | 9 #include <memory> |
10 #include <vector> | 10 #include <vector> |
(...skipping 14 matching lines...) Expand all Loading... |
25 #include "media/base/renderer.h" | 25 #include "media/base/renderer.h" |
26 #include "ui/gfx/geometry/size.h" | 26 #include "ui/gfx/geometry/size.h" |
27 | 27 |
28 namespace base { | 28 namespace base { |
29 class SingleThreadTaskRunner; | 29 class SingleThreadTaskRunner; |
30 } | 30 } |
31 | 31 |
32 namespace media { | 32 namespace media { |
33 | 33 |
34 class AudioRenderer; | 34 class AudioRenderer; |
35 class DemuxerStreamProvider; | 35 class MediaResource; |
36 class TimeSource; | 36 class TimeSource; |
37 class VideoRenderer; | 37 class VideoRenderer; |
38 class WallClockTimeSource; | 38 class WallClockTimeSource; |
39 | 39 |
40 class MEDIA_EXPORT RendererImpl : public Renderer { | 40 class MEDIA_EXPORT RendererImpl : public Renderer { |
41 public: | 41 public: |
42 // Renders audio/video streams using |audio_renderer| and |video_renderer| | 42 // Renders audio/video streams using |audio_renderer| and |video_renderer| |
43 // provided. All methods except for GetMediaTime() run on the |task_runner|. | 43 // provided. All methods except for GetMediaTime() run on the |task_runner|. |
44 // GetMediaTime() runs on the render main thread because it's part of JS sync | 44 // GetMediaTime() runs on the render main thread because it's part of JS sync |
45 // API. | 45 // API. |
46 RendererImpl(const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, | 46 RendererImpl(const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, |
47 std::unique_ptr<AudioRenderer> audio_renderer, | 47 std::unique_ptr<AudioRenderer> audio_renderer, |
48 std::unique_ptr<VideoRenderer> video_renderer); | 48 std::unique_ptr<VideoRenderer> video_renderer); |
49 | 49 |
50 ~RendererImpl() final; | 50 ~RendererImpl() final; |
51 | 51 |
52 // Renderer implementation. | 52 // Renderer implementation. |
53 void Initialize(DemuxerStreamProvider* demuxer_stream_provider, | 53 void Initialize(MediaResource* media_resource, |
54 RendererClient* client, | 54 RendererClient* client, |
55 const PipelineStatusCB& init_cb) final; | 55 const PipelineStatusCB& init_cb) final; |
56 void SetCdm(CdmContext* cdm_context, | 56 void SetCdm(CdmContext* cdm_context, |
57 const CdmAttachedCB& cdm_attached_cb) final; | 57 const CdmAttachedCB& cdm_attached_cb) final; |
58 void Flush(const base::Closure& flush_cb) final; | 58 void Flush(const base::Closure& flush_cb) final; |
59 void StartPlayingFrom(base::TimeDelta time) final; | 59 void StartPlayingFrom(base::TimeDelta time) final; |
60 void SetPlaybackRate(double playback_rate) final; | 60 void SetPlaybackRate(double playback_rate) final; |
61 void SetVolume(float volume) final; | 61 void SetVolume(float volume) final; |
62 base::TimeDelta GetMediaTime() final; | 62 base::TimeDelta GetMediaTime() final; |
63 | 63 |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
147 void OnVideoNaturalSizeChange(const gfx::Size& size); | 147 void OnVideoNaturalSizeChange(const gfx::Size& size); |
148 void OnVideoOpacityChange(bool opaque); | 148 void OnVideoOpacityChange(bool opaque); |
149 | 149 |
150 void OnStreamRestartCompleted(); | 150 void OnStreamRestartCompleted(); |
151 | 151 |
152 State state_; | 152 State state_; |
153 | 153 |
154 // Task runner used to execute pipeline tasks. | 154 // Task runner used to execute pipeline tasks. |
155 scoped_refptr<base::SingleThreadTaskRunner> task_runner_; | 155 scoped_refptr<base::SingleThreadTaskRunner> task_runner_; |
156 | 156 |
157 DemuxerStreamProvider* demuxer_stream_provider_; | 157 MediaResource* media_resource_; |
158 RendererClient* client_; | 158 RendererClient* client_; |
159 | 159 |
160 // Temporary callback used for Initialize() and Flush(). | 160 // Temporary callback used for Initialize() and Flush(). |
161 PipelineStatusCB init_cb_; | 161 PipelineStatusCB init_cb_; |
162 base::Closure flush_cb_; | 162 base::Closure flush_cb_; |
163 | 163 |
164 std::unique_ptr<RendererClientInternal> audio_renderer_client_; | 164 std::unique_ptr<RendererClientInternal> audio_renderer_client_; |
165 std::unique_ptr<RendererClientInternal> video_renderer_client_; | 165 std::unique_ptr<RendererClientInternal> video_renderer_client_; |
166 std::unique_ptr<AudioRenderer> audio_renderer_; | 166 std::unique_ptr<AudioRenderer> audio_renderer_; |
167 std::unique_ptr<VideoRenderer> video_renderer_; | 167 std::unique_ptr<VideoRenderer> video_renderer_; |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
204 | 204 |
205 base::WeakPtr<RendererImpl> weak_this_; | 205 base::WeakPtr<RendererImpl> weak_this_; |
206 base::WeakPtrFactory<RendererImpl> weak_factory_; | 206 base::WeakPtrFactory<RendererImpl> weak_factory_; |
207 | 207 |
208 DISALLOW_COPY_AND_ASSIGN(RendererImpl); | 208 DISALLOW_COPY_AND_ASSIGN(RendererImpl); |
209 }; | 209 }; |
210 | 210 |
211 } // namespace media | 211 } // namespace media |
212 | 212 |
213 #endif // MEDIA_RENDERERS_RENDERER_IMPL_H_ | 213 #endif // MEDIA_RENDERERS_RENDERER_IMPL_H_ |
OLD | NEW |