[go: nahoru, domu]

media: Pass DemuxerStreamProvider in Renderer::Initialize().

Currently DemuxerStreamProvider is passed in the constructor of Renderer
implementations (e.g. RendererImpl and MojoRendererImpl). However, if we want to
create the Renderer earlier and pass it to WebMediaPlayerImpl or Pipeline, the
DemuxerStreamProvider may not be available yet. Meanwhile, when Renderer is
initialized by the Pipeline, DemuxerStreamProvider is always available.

This CL moves the DemuxerStreamProvider parameter to Renderer::Initialize() to
accommodate the above cases.

BUG=416570
TEST=Unit tests updated.

Review URL: https://codereview.chromium.org/591203003

Cr-Commit-Position: refs/heads/master@{#298006}
diff --git a/media/filters/renderer_impl.h b/media/filters/renderer_impl.h
index c418233..4c1d00db 100644
--- a/media/filters/renderer_impl.h
+++ b/media/filters/renderer_impl.h
@@ -31,19 +31,19 @@
 
 class MEDIA_EXPORT RendererImpl : public Renderer {
  public:
-  // Renders audio/video streams in |demuxer_stream_provider| using
-  // |audio_renderer| and |video_renderer| provided. All methods except for
-  // GetMediaTime() run on the |task_runner|. GetMediaTime() runs on the render
-  // main thread because it's part of JS sync API.
+  // Renders audio/video streams using |audio_renderer| and |video_renderer|
+  // provided. All methods except for GetMediaTime() run on the |task_runner|.
+  // GetMediaTime() runs on the render main thread because it's part of JS sync
+  // API.
   RendererImpl(const scoped_refptr<base::SingleThreadTaskRunner>& task_runner,
-               DemuxerStreamProvider* demuxer_stream_provider,
                scoped_ptr<AudioRenderer> audio_renderer,
                scoped_ptr<VideoRenderer> video_renderer);
 
   virtual ~RendererImpl();
 
   // Renderer implementation.
-  virtual void Initialize(const base::Closure& init_cb,
+  virtual void Initialize(DemuxerStreamProvider* demuxer_stream_provider,
+                          const base::Closure& init_cb,
                           const StatisticsCB& statistics_cb,
                           const base::Closure& ended_cb,
                           const PipelineStatusCB& error_cb,