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

Side by Side Diff: chromecast/browser/media/cast_mojo_media_client.cc

Issue 1854893002: [chromecast] Bind and run mojo media services on cma thread. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: move task runner Created 4 years, 8 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 #include "chromecast/browser/media/cast_mojo_media_client.h" 5 #include "chromecast/browser/media/cast_mojo_media_client.h"
6 6
7 #include "chromecast/browser/media/cast_renderer.h" 7 #include "chromecast/browser/media/cast_renderer.h"
8 8
9 namespace { 9 namespace {
10 class CastRendererFactory : public media::RendererFactory { 10 class CastRendererFactory : public media::RendererFactory {
11 public: 11 public:
12 CastRendererFactory( 12 CastRendererFactory(
13 const chromecast::media::CreateMediaPipelineBackendCB& create_backend_cb, 13 base::SingleThreadTaskRunner* media_task_runner,
14 const scoped_refptr<media::MediaLog>& media_log) 14 const chromecast::media::CreateMediaPipelineBackendCB& create_backend_cb)
15 : create_backend_cb_(create_backend_cb), media_log_(media_log) {} 15 : media_task_runner_(media_task_runner),
16 create_backend_cb_(create_backend_cb) {
17 DCHECK(media_task_runner_);
18 }
16 ~CastRendererFactory() final {} 19 ~CastRendererFactory() final {}
17 20
18 scoped_ptr<media::Renderer> CreateRenderer( 21 scoped_ptr<media::Renderer> CreateRenderer(
19 const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner, 22 const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner,
20 const scoped_refptr<base::TaskRunner>& worker_task_runner, 23 const scoped_refptr<base::TaskRunner>& worker_task_runner,
21 media::AudioRendererSink* audio_renderer_sink, 24 media::AudioRendererSink* audio_renderer_sink,
22 media::VideoRendererSink* video_renderer_sink, 25 media::VideoRendererSink* video_renderer_sink,
23 const media::RequestSurfaceCB& request_surface_cb) final { 26 const media::RequestSurfaceCB& request_surface_cb) final {
27 DCHECK_EQ(media_task_runner_, media_task_runner.get());
28 DCHECK_EQ(media_task_runner_, worker_task_runner.get());
24 DCHECK(!audio_renderer_sink && !video_renderer_sink); 29 DCHECK(!audio_renderer_sink && !video_renderer_sink);
25 return make_scoped_ptr(new chromecast::media::CastRenderer( 30 return make_scoped_ptr(new chromecast::media::CastRenderer(
26 create_backend_cb_, media_task_runner)); 31 create_backend_cb_, media_task_runner));
27 } 32 }
28 33
29 private: 34 private:
35 base::SingleThreadTaskRunner* const media_task_runner_;
30 const chromecast::media::CreateMediaPipelineBackendCB create_backend_cb_; 36 const chromecast::media::CreateMediaPipelineBackendCB create_backend_cb_;
31 scoped_refptr<media::MediaLog> media_log_;
32 DISALLOW_COPY_AND_ASSIGN(CastRendererFactory); 37 DISALLOW_COPY_AND_ASSIGN(CastRendererFactory);
33 }; 38 };
34 } // namespace 39 } // namespace
35 40
36 namespace chromecast { 41 namespace chromecast {
37 namespace media { 42 namespace media {
38 43
39 CastMojoMediaClient::CastMojoMediaClient( 44 CastMojoMediaClient::CastMojoMediaClient(
45 scoped_refptr<base::SingleThreadTaskRunner> media_task_runner,
40 const CreateMediaPipelineBackendCB& create_backend_cb) 46 const CreateMediaPipelineBackendCB& create_backend_cb)
41 : create_backend_cb_(create_backend_cb) {} 47 : MojoMediaClient(std::move(media_task_runner)),
48 create_backend_cb_(create_backend_cb) {}
42 49
43 CastMojoMediaClient::~CastMojoMediaClient() {} 50 CastMojoMediaClient::~CastMojoMediaClient() {}
44 51
45 scoped_ptr<::media::RendererFactory> CastMojoMediaClient::CreateRendererFactory( 52 scoped_ptr<::media::RendererFactory> CastMojoMediaClient::CreateRendererFactory(
46 const scoped_refptr<::media::MediaLog>& media_log) { 53 const scoped_refptr<::media::MediaLog>& media_log) {
47 return make_scoped_ptr( 54 return make_scoped_ptr(
48 new CastRendererFactory(create_backend_cb_, media_log)); 55 new CastRendererFactory(media_task_runner(), create_backend_cb_));
49 } 56 }
50 57
51 } // namespace media 58 } // namespace media
52 } // namespace chromecast 59 } // namespace chromecast
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698