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

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

Issue 2640003002: Implement MojoAudioRendererSink and use it in UtilityMojoMediaClient (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 #include "media/mojo/services/mojo_renderer_service.h" 5 #include "media/mojo/services/mojo_renderer_service.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
11 #include "base/optional.h" 11 #include "base/optional.h"
12 #include "media/base/audio_renderer_sink.h" 12 #include "media/base/audio_renderer_sink.h"
13 #include "media/base/content_decryption_module.h" 13 #include "media/base/content_decryption_module.h"
14 #include "media/base/media_url_demuxer.h" 14 #include "media/base/media_url_demuxer.h"
15 #include "media/base/renderer.h" 15 #include "media/base/renderer.h"
16 #include "media/base/video_renderer_sink.h" 16 #include "media/base/video_renderer_sink.h"
17 #include "media/mojo/services/media_resource_shim.h" 17 #include "media/mojo/services/media_resource_shim.h"
18 #include "media/mojo/services/mojo_audio_renderer_sink_adapter.h"
18 #include "media/mojo/services/mojo_cdm_service_context.h" 19 #include "media/mojo/services/mojo_cdm_service_context.h"
19 #include "media/mojo/services/mojo_video_renderer_sink_adapter.h" 20 #include "media/mojo/services/mojo_video_renderer_sink_adapter.h"
20 21
21 namespace media { 22 namespace media {
22 23
23 namespace { 24 namespace {
24 25
25 void CloseBindingOnBadMessage(mojo::StrongBindingPtr<mojom::Renderer> binding) { 26 void CloseBindingOnBadMessage(mojo::StrongBindingPtr<mojom::Renderer> binding) {
26 LOG(ERROR) << __func__; 27 LOG(ERROR) << __func__;
27 DCHECK(binding); 28 DCHECK(binding);
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 DCHECK(renderer_); 73 DCHECK(renderer_);
73 74
74 weak_this_ = weak_factory_.GetWeakPtr(); 75 weak_this_ = weak_factory_.GetWeakPtr();
75 } 76 }
76 77
77 MojoRendererService::~MojoRendererService() {} 78 MojoRendererService::~MojoRendererService() {}
78 79
79 void MojoRendererService::Initialize( 80 void MojoRendererService::Initialize(
80 mojom::RendererClientAssociatedPtrInfo client, 81 mojom::RendererClientAssociatedPtrInfo client,
81 base::Optional<std::vector<mojom::DemuxerStreamPtr>> streams, 82 base::Optional<std::vector<mojom::DemuxerStreamPtr>> streams,
83 mojom::AudioRendererSinkPtr audio_renderer_sink_ptr,
82 mojom::VideoRendererSinkPtr video_renderer_sink_ptr, 84 mojom::VideoRendererSinkPtr video_renderer_sink_ptr,
83 const base::Optional<GURL>& media_url, 85 const base::Optional<GURL>& media_url,
84 const base::Optional<GURL>& first_party_for_cookies, 86 const base::Optional<GURL>& first_party_for_cookies,
85 const InitializeCallback& callback) { 87 const InitializeCallback& callback) {
86 DVLOG(1) << __func__; 88 DVLOG(1) << __func__;
87 DCHECK_EQ(state_, STATE_UNINITIALIZED); 89 DCHECK_EQ(state_, STATE_UNINITIALIZED);
88 90
89 client_.Bind(std::move(client)); 91 client_.Bind(std::move(client));
90 state_ = STATE_INITIALIZING; 92 state_ = STATE_INITIALIZING;
91 93
94 if (audio_renderer_sink_ptr) {
95 static_cast<MojoAudioRendererSinkAdapter*>(audio_sink_.get())
96 ->SetClient(std::move(audio_renderer_sink_ptr));
97 }
98
92 if (video_renderer_sink_ptr) { 99 if (video_renderer_sink_ptr) {
93 static_cast<MojoVideoRendererSinkAdapter*>(video_sink_.get()) 100 static_cast<MojoVideoRendererSinkAdapter*>(video_sink_.get())
94 ->Initialize(std::move(video_renderer_sink_ptr)); 101 ->Initialize(std::move(video_renderer_sink_ptr));
95 } 102 }
96 103
97 if (media_url == base::nullopt) { 104 if (media_url == base::nullopt) {
98 DCHECK(streams.has_value()); 105 DCHECK(streams.has_value());
99 media_resource_.reset(new MediaResourceShim( 106 media_resource_.reset(new MediaResourceShim(
100 std::move(*streams), 107 std::move(*streams),
101 base::Bind(&MojoRendererService::OnStreamReady, weak_this_, callback))); 108 base::Bind(&MojoRendererService::OnStreamReady, weak_this_, callback)));
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 DCHECK(!bad_message_cb_.is_null()); 300 DCHECK(!bad_message_cb_.is_null());
294 bad_message_cb_.Run(); 301 bad_message_cb_.Run();
295 302
296 return; 303 return;
297 } 304 }
298 305
299 callback.Run(initiate_surface_request_cb_.Run()); 306 callback.Run(initiate_surface_request_cb_.Run());
300 } 307 }
301 308
302 } // namespace media 309 } // namespace media
OLDNEW
« no previous file with comments | « media/mojo/services/mojo_renderer_service.h ('k') | media/mojo/services/utility_mojo_media_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698