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

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

Issue 523283002: media: Introduce DemuxerStreamProvider interface. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase only Created 6 years, 3 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
« no previous file with comments | « media/filters/ffmpeg_demuxer.cc ('k') | media/filters/renderer_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_FILTERS_RENDERER_IMPL_H_ 5 #ifndef MEDIA_FILTERS_RENDERER_IMPL_H_
6 #define MEDIA_FILTERS_RENDERER_IMPL_H_ 6 #define MEDIA_FILTERS_RENDERER_IMPL_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/time/clock.h" 12 #include "base/time/clock.h"
13 #include "base/time/default_tick_clock.h" 13 #include "base/time/default_tick_clock.h"
14 #include "base/time/time.h" 14 #include "base/time/time.h"
15 #include "media/base/buffering_state.h" 15 #include "media/base/buffering_state.h"
16 #include "media/base/media_export.h" 16 #include "media/base/media_export.h"
17 #include "media/base/pipeline_status.h" 17 #include "media/base/pipeline_status.h"
18 #include "media/base/renderer.h" 18 #include "media/base/renderer.h"
19 19
20 namespace base { 20 namespace base {
21 class SingleThreadTaskRunner; 21 class SingleThreadTaskRunner;
22 } 22 }
23 23
24 namespace media { 24 namespace media {
25 25
26 class AudioRenderer; 26 class AudioRenderer;
27 class Demuxer; 27 class DemuxerStreamProvider;
28 class TimeSource; 28 class TimeSource;
29 class VideoRenderer; 29 class VideoRenderer;
30 class WallClockTimeSource; 30 class WallClockTimeSource;
31 31
32 class MEDIA_EXPORT RendererImpl : public Renderer { 32 class MEDIA_EXPORT RendererImpl : public Renderer {
33 public: 33 public:
34 // Renders audio/video streams in |demuxer| using |audio_renderer| and 34 // Renders audio/video streams in |demuxer_stream_provider| using
35 // |video_renderer| provided. All methods except for GetMediaTime() run on the 35 // |audio_renderer| and |video_renderer| provided. All methods except for
36 // |task_runner|. GetMediaTime() runs on the render main thread because it's 36 // GetMediaTime() run on the |task_runner|. GetMediaTime() runs on the render
37 // part of JS sync API. 37 // main thread because it's part of JS sync API.
38 RendererImpl(const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, 38 RendererImpl(const scoped_refptr<base::SingleThreadTaskRunner>& task_runner,
39 Demuxer* demuxer, 39 DemuxerStreamProvider* demuxer_stream_provider,
40 scoped_ptr<AudioRenderer> audio_renderer, 40 scoped_ptr<AudioRenderer> audio_renderer,
41 scoped_ptr<VideoRenderer> video_renderer); 41 scoped_ptr<VideoRenderer> video_renderer);
42 42
43 virtual ~RendererImpl(); 43 virtual ~RendererImpl();
44 44
45 // Renderer implementation. 45 // Renderer implementation.
46 virtual void Initialize(const base::Closure& init_cb, 46 virtual void Initialize(const base::Closure& init_cb,
47 const StatisticsCB& statistics_cb, 47 const StatisticsCB& statistics_cb,
48 const base::Closure& ended_cb, 48 const base::Closure& ended_cb,
49 const PipelineStatusCB& error_cb, 49 const PipelineStatusCB& error_cb,
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 // Callback executed when a runtime error happens. 111 // Callback executed when a runtime error happens.
112 void OnError(PipelineStatus error); 112 void OnError(PipelineStatus error);
113 113
114 void FireAllPendingCallbacks(); 114 void FireAllPendingCallbacks();
115 115
116 State state_; 116 State state_;
117 117
118 // Task runner used to execute pipeline tasks. 118 // Task runner used to execute pipeline tasks.
119 scoped_refptr<base::SingleThreadTaskRunner> task_runner_; 119 scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
120 120
121 Demuxer* demuxer_; 121 DemuxerStreamProvider* demuxer_stream_provider_;
122 122
123 // Permanent callbacks to notify various renderer states/stats. 123 // Permanent callbacks to notify various renderer states/stats.
124 StatisticsCB statistics_cb_; 124 StatisticsCB statistics_cb_;
125 base::Closure ended_cb_; 125 base::Closure ended_cb_;
126 PipelineStatusCB error_cb_; 126 PipelineStatusCB error_cb_;
127 BufferingStateCB buffering_state_cb_; 127 BufferingStateCB buffering_state_cb_;
128 128
129 // Temporary callback used for Initialize() and Flush(). 129 // Temporary callback used for Initialize() and Flush().
130 base::Closure init_cb_; 130 base::Closure init_cb_;
131 base::Closure flush_cb_; 131 base::Closure flush_cb_;
(...skipping 22 matching lines...) Expand all
154 // NOTE: Weak pointers must be invalidated before all other member variables. 154 // NOTE: Weak pointers must be invalidated before all other member variables.
155 base::WeakPtrFactory<RendererImpl> weak_factory_; 155 base::WeakPtrFactory<RendererImpl> weak_factory_;
156 base::WeakPtr<RendererImpl> weak_this_; 156 base::WeakPtr<RendererImpl> weak_this_;
157 157
158 DISALLOW_COPY_AND_ASSIGN(RendererImpl); 158 DISALLOW_COPY_AND_ASSIGN(RendererImpl);
159 }; 159 };
160 160
161 } // namespace media 161 } // namespace media
162 162
163 #endif // MEDIA_FILTERS_RENDERER_IMPL_H_ 163 #endif // MEDIA_FILTERS_RENDERER_IMPL_H_
OLDNEW
« no previous file with comments | « media/filters/ffmpeg_demuxer.cc ('k') | media/filters/renderer_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698