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

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

Issue 2643713003: Allow to use the DefaultRendererFactory from a Utility Process (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_cdm_service_context.h" 18 #include "media/mojo/services/mojo_cdm_service_context.h"
19 #include "media/mojo/services/mojo_video_renderer_sink_adapter.h"
19 20
20 namespace media { 21 namespace media {
21 22
22 namespace { 23 namespace {
23 24
24 void CloseBindingOnBadMessage(mojo::StrongBindingPtr<mojom::Renderer> binding) { 25 void CloseBindingOnBadMessage(mojo::StrongBindingPtr<mojom::Renderer> binding) {
25 LOG(ERROR) << __func__; 26 LOG(ERROR) << __func__;
26 DCHECK(binding); 27 DCHECK(binding);
27 binding->Close(); 28 binding->Close();
28 } 29 }
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 DCHECK(renderer_); 72 DCHECK(renderer_);
72 73
73 weak_this_ = weak_factory_.GetWeakPtr(); 74 weak_this_ = weak_factory_.GetWeakPtr();
74 } 75 }
75 76
76 MojoRendererService::~MojoRendererService() {} 77 MojoRendererService::~MojoRendererService() {}
77 78
78 void MojoRendererService::Initialize( 79 void MojoRendererService::Initialize(
79 mojom::RendererClientAssociatedPtrInfo client, 80 mojom::RendererClientAssociatedPtrInfo client,
80 base::Optional<std::vector<mojom::DemuxerStreamPtr>> streams, 81 base::Optional<std::vector<mojom::DemuxerStreamPtr>> streams,
82 mojom::VideoRendererSinkPtr video_renderer_sink_ptr,
81 const base::Optional<GURL>& media_url, 83 const base::Optional<GURL>& media_url,
82 const base::Optional<GURL>& first_party_for_cookies, 84 const base::Optional<GURL>& first_party_for_cookies,
83 const InitializeCallback& callback) { 85 const InitializeCallback& callback) {
84 DVLOG(1) << __func__; 86 DVLOG(1) << __func__;
85 DCHECK_EQ(state_, STATE_UNINITIALIZED); 87 DCHECK_EQ(state_, STATE_UNINITIALIZED);
86 88
87 client_.Bind(std::move(client)); 89 client_.Bind(std::move(client));
88 state_ = STATE_INITIALIZING; 90 state_ = STATE_INITIALIZING;
89 91
92 if (video_renderer_sink_ptr) {
93 static_cast<MojoVideoRendererSinkAdapter*>(video_sink_.get())
94 ->Initialize(std::move(video_renderer_sink_ptr));
95 }
96
90 if (media_url == base::nullopt) { 97 if (media_url == base::nullopt) {
91 DCHECK(streams.has_value()); 98 DCHECK(streams.has_value());
92 media_resource_.reset(new MediaResourceShim( 99 media_resource_.reset(new MediaResourceShim(
93 std::move(*streams), 100 std::move(*streams),
94 base::Bind(&MojoRendererService::OnStreamReady, weak_this_, callback))); 101 base::Bind(&MojoRendererService::OnStreamReady, weak_this_, callback)));
95 return; 102 return;
96 } 103 }
97 104
98 DCHECK(!media_url.value().is_empty()); 105 DCHECK(!media_url.value().is_empty());
99 DCHECK(first_party_for_cookies); 106 DCHECK(first_party_for_cookies);
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 DCHECK(!bad_message_cb_.is_null()); 293 DCHECK(!bad_message_cb_.is_null());
287 bad_message_cb_.Run(); 294 bad_message_cb_.Run();
288 295
289 return; 296 return;
290 } 297 }
291 298
292 callback.Run(initiate_surface_request_cb_.Run()); 299 callback.Run(initiate_surface_request_cb_.Run());
293 } 300 }
294 301
295 } // namespace media 302 } // namespace media
OLDNEW
« no previous file with comments | « media/mojo/services/mojo_renderer_service.h ('k') | media/mojo/services/mojo_video_renderer_sink_adapter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698