OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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 "content/renderer/media/media_factory.h" | 5 #include "content/renderer/media/media_factory.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/memory/ptr_util.h" | 8 #include "base/memory/ptr_util.h" |
9 #include "base/metrics/field_trial_params.h" | 9 #include "base/metrics/field_trial_params.h" |
10 #include "base/threading/thread_task_runner_handle.h" | 10 #include "base/threading/thread_task_runner_handle.h" |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
209 // a new player id which is used to collate logs on the browser side. | 209 // a new player id which is used to collate logs on the browser side. |
210 std::unique_ptr<media::MediaLog> media_log( | 210 std::unique_ptr<media::MediaLog> media_log( |
211 new RenderMediaLog(url::Origin(security_origin).GetURL())); | 211 new RenderMediaLog(url::Origin(security_origin).GetURL())); |
212 | 212 |
213 base::WeakPtr<media::MediaObserver> media_observer; | 213 base::WeakPtr<media::MediaObserver> media_observer; |
214 | 214 |
215 auto factory_selector = | 215 auto factory_selector = |
216 CreateRendererFactorySelector(media_log.get(), use_media_player_renderer, | 216 CreateRendererFactorySelector(media_log.get(), use_media_player_renderer, |
217 GetDecoderFactory(), &media_observer); | 217 GetDecoderFactory(), &media_observer); |
218 | 218 |
| 219 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) |
| 220 DCHECK(media_observer); |
| 221 #endif |
| 222 |
219 if (!url_index_.get() || url_index_->frame() != web_frame) | 223 if (!url_index_.get() || url_index_->frame() != web_frame) |
220 url_index_.reset(new media::UrlIndex(web_frame)); | 224 url_index_.reset(new media::UrlIndex(web_frame)); |
221 | 225 |
222 std::unique_ptr<media::WebMediaPlayerParams> params( | 226 std::unique_ptr<media::WebMediaPlayerParams> params( |
223 new media::WebMediaPlayerParams( | 227 new media::WebMediaPlayerParams( |
224 std::move(media_log), | 228 std::move(media_log), |
225 base::Bind(&ContentRendererClient::DeferMediaLoad, | 229 base::Bind(&ContentRendererClient::DeferMediaLoad, |
226 base::Unretained(GetContentClient()->renderer()), | 230 base::Unretained(GetContentClient()->renderer()), |
227 static_cast<RenderFrame*>(render_frame_), | 231 static_cast<RenderFrame*>(render_frame_), |
228 GetWebMediaPlayerDelegate()->has_played_media()), | 232 GetWebMediaPlayerDelegate()->has_played_media()), |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
342 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) | 346 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) |
343 media::mojom::RemotingSourcePtr remoting_source; | 347 media::mojom::RemotingSourcePtr remoting_source; |
344 auto remoting_source_request = mojo::MakeRequest(&remoting_source); | 348 auto remoting_source_request = mojo::MakeRequest(&remoting_source); |
345 media::mojom::RemoterPtr remoter; | 349 media::mojom::RemoterPtr remoter; |
346 GetRemoterFactory()->Create(std::move(remoting_source), | 350 GetRemoterFactory()->Create(std::move(remoting_source), |
347 mojo::MakeRequest(&remoter)); | 351 mojo::MakeRequest(&remoter)); |
348 using RemotingController = media::remoting::RendererController; | 352 using RemotingController = media::remoting::RendererController; |
349 std::unique_ptr<RemotingController> remoting_controller( | 353 std::unique_ptr<RemotingController> remoting_controller( |
350 new RemotingController(new media::remoting::SharedSession( | 354 new RemotingController(new media::remoting::SharedSession( |
351 std::move(remoting_source_request), std::move(remoter)))); | 355 std::move(remoting_source_request), std::move(remoter)))); |
352 base::WeakPtr<media::MediaObserver> media_observer = | 356 *out_media_observer = remoting_controller->GetWeakPtr(); |
353 remoting_controller->GetWeakPtr(); | |
354 | 357 |
355 auto courier_factory = | 358 auto courier_factory = |
356 base::MakeUnique<media::remoting::CourierRendererFactory>( | 359 base::MakeUnique<media::remoting::CourierRendererFactory>( |
357 std::move(remoting_controller)); | 360 std::move(remoting_controller)); |
358 | 361 |
359 // base::Unretained is safe here because |factory_selector| owns | 362 // base::Unretained is safe here because |factory_selector| owns |
360 // |courier_factory|. | 363 // |courier_factory|. |
361 factory_selector->SetQueryIsRemotingActiveCB( | 364 factory_selector->SetQueryIsRemotingActiveCB( |
362 base::Bind(&media::remoting::CourierRendererFactory::IsRemotingActive, | 365 base::Bind(&media::remoting::CourierRendererFactory::IsRemotingActive, |
363 base::Unretained(courier_factory.get()))); | 366 base::Unretained(courier_factory.get()))); |
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
493 DCHECK(remote_interfaces_); | 496 DCHECK(remote_interfaces_); |
494 media_interface_provider_.reset( | 497 media_interface_provider_.reset( |
495 new MediaInterfaceProvider(remote_interfaces_)); | 498 new MediaInterfaceProvider(remote_interfaces_)); |
496 } | 499 } |
497 | 500 |
498 return media_interface_provider_.get(); | 501 return media_interface_provider_.get(); |
499 } | 502 } |
500 #endif // BUILDFLAG(ENABLE_MOJO_MEDIA) | 503 #endif // BUILDFLAG(ENABLE_MOJO_MEDIA) |
501 | 504 |
502 } // namespace content | 505 } // namespace content |
OLD | NEW |