Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(226)

Side by Side Diff: media/renderers/renderer_impl.h

Issue 2491043003: MediaResource refactoring to support multiple streams (Closed)
Patch Set: rebase Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698