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

Side by Side Diff: media/mojo/services/mojo_renderer_service.cc

Issue 1525863002: Remove renderer_service -> media_client dependency. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years 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 #include "media/mojo/services/mojo_renderer_service.h" 5 #include "media/mojo/services/mojo_renderer_service.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback_helpers.h" 8 #include "media/base/renderer.h"
9 #include "base/message_loop/message_loop.h"
10 #include "media/base/audio_decoder.h"
11 #include "media/base/audio_renderer.h"
12 #include "media/base/audio_renderer_sink.h"
13 #include "media/base/cdm_context.h"
14 #include "media/base/decryptor.h"
15 #include "media/base/media_log.h"
16 #include "media/base/renderer_factory.h"
17 #include "media/base/video_renderer.h"
18 #include "media/base/video_renderer_sink.h"
19 #include "media/mojo/services/demuxer_stream_provider_shim.h" 9 #include "media/mojo/services/demuxer_stream_provider_shim.h"
20 #include "media/mojo/services/mojo_media_client.h"
21 #include "media/renderers/audio_renderer_impl.h"
22 #include "media/renderers/renderer_impl.h"
23 #include "media/renderers/video_renderer_impl.h"
24 10
25 namespace media { 11 namespace media {
26 12
27 // Time interval to update media time. 13 // Time interval to update media time.
28 const int kTimeUpdateIntervalMs = 50; 14 const int kTimeUpdateIntervalMs = 50;
29 15
30 MojoRendererService::MojoRendererService( 16 MojoRendererService::MojoRendererService(
31 base::WeakPtr<CdmContextProvider> cdm_context_provider, 17 base::WeakPtr<CdmContextProvider> cdm_context_provider,
32 RendererFactory* renderer_factory, 18 scoped_ptr<media::Renderer> renderer,
33 const scoped_refptr<MediaLog>& media_log,
34 mojo::InterfaceRequest<interfaces::Renderer> request) 19 mojo::InterfaceRequest<interfaces::Renderer> request)
35 : binding_(this, request.Pass()), 20 : binding_(this, request.Pass()),
36 cdm_context_provider_(cdm_context_provider), 21 cdm_context_provider_(cdm_context_provider),
22 renderer_(renderer.Pass()),
37 state_(STATE_UNINITIALIZED), 23 state_(STATE_UNINITIALIZED),
38 last_media_time_usec_(0), 24 last_media_time_usec_(0),
39 weak_factory_(this) { 25 weak_factory_(this) {
40 weak_this_ = weak_factory_.GetWeakPtr(); 26 weak_this_ = weak_factory_.GetWeakPtr();
41 DVLOG(1) << __FUNCTION__; 27 DVLOG(1) << __FUNCTION__;
42
43 scoped_refptr<base::SingleThreadTaskRunner> task_runner(
44 base::MessageLoop::current()->task_runner());
45 MojoMediaClient* mojo_media_client = MojoMediaClient::Get();
46 audio_renderer_sink_ = mojo_media_client->CreateAudioRendererSink();
47 video_renderer_sink_ =
48 mojo_media_client->CreateVideoRendererSink(task_runner);
49
50 // Create renderer.
51 if (renderer_factory) {
52 renderer_ = renderer_factory->CreateRenderer(task_runner, task_runner,
53 audio_renderer_sink_.get(),
54 video_renderer_sink_.get());
55 } else {
56 DCHECK(mojo_media_client->GetAudioHardwareConfig());
57 scoped_ptr<AudioRenderer> audio_renderer(new AudioRendererImpl(
58 task_runner, audio_renderer_sink_.get(),
59 mojo_media_client->CreateAudioDecoders(task_runner, media_log).Pass(),
60 *mojo_media_client->GetAudioHardwareConfig(), media_log));
61 scoped_ptr<VideoRenderer> video_renderer(new VideoRendererImpl(
62 task_runner, task_runner, video_renderer_sink_.get(),
63 mojo_media_client->CreateVideoDecoders(task_runner, media_log).Pass(),
64 true, nullptr, media_log));
65 renderer_.reset(new RendererImpl(task_runner, audio_renderer.Pass(),
66 video_renderer.Pass()));
xhwang 2015/12/15 21:51:41 We are losing the ability to create RendererImpl w
67 }
68 } 28 }
69 29
70 MojoRendererService::~MojoRendererService() { 30 MojoRendererService::~MojoRendererService() {
71 } 31 }
72 32
73 void MojoRendererService::Initialize( 33 void MojoRendererService::Initialize(
74 interfaces::RendererClientPtr client, 34 interfaces::RendererClientPtr client,
75 interfaces::DemuxerStreamPtr audio, 35 interfaces::DemuxerStreamPtr audio,
76 interfaces::DemuxerStreamPtr video, 36 interfaces::DemuxerStreamPtr video,
77 const mojo::Callback<void(bool)>& callback) { 37 const mojo::Callback<void(bool)>& callback) {
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 } 176 }
217 177
218 void MojoRendererService::OnCdmAttached( 178 void MojoRendererService::OnCdmAttached(
219 const mojo::Callback<void(bool)>& callback, 179 const mojo::Callback<void(bool)>& callback,
220 bool success) { 180 bool success) {
221 DVLOG(1) << __FUNCTION__ << "(" << success << ")"; 181 DVLOG(1) << __FUNCTION__ << "(" << success << ")";
222 callback.Run(success); 182 callback.Run(success);
223 } 183 }
224 184
225 } // namespace media 185 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698