| 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 |