Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/render_frame_impl.h" | 5 #include "content/renderer/render_frame_impl.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 207 #include "content/renderer/media/cdm/renderer_cdm_manager.h" | 207 #include "content/renderer/media/cdm/renderer_cdm_manager.h" |
| 208 #endif | 208 #endif |
| 209 | 209 |
| 210 #if defined(ENABLE_MOJO_MEDIA) | 210 #if defined(ENABLE_MOJO_MEDIA) |
| 211 #include "media/mojo/services/mojo_cdm_factory.h" | 211 #include "media/mojo/services/mojo_cdm_factory.h" |
| 212 #include "mojo/application/public/cpp/connect.h" | 212 #include "mojo/application/public/cpp/connect.h" |
| 213 #include "mojo/application/public/interfaces/shell.mojom.h" | 213 #include "mojo/application/public/interfaces/shell.mojom.h" |
| 214 #include "mojo/public/cpp/bindings/interface_request.h" | 214 #include "mojo/public/cpp/bindings/interface_request.h" |
| 215 #endif | 215 #endif |
| 216 | 216 |
| 217 #if defined(ENABLE_MOJO_MEDIA) && !defined(ENABLE_MEDIA_PIPELINE_ON_ANDROID) | 217 #if defined(ENABLE_MOJO_MEDIA) // && TODO(xhwang): What condition to make this? |
|
DaleCurtis
2015/12/16 00:06:40
Xiaohan, what do you want to do with these?
xhwang
2015/12/17 01:09:58
How about
#if defined(ENABLE_MOJO_MEDIA) && !def
DaleCurtis
2015/12/17 01:23:23
Sounds good to me; I wasn't sure if Cast or some o
| |
| 218 #include "media/mojo/services/mojo_renderer_factory.h" | 218 #include "media/mojo/services/mojo_renderer_factory.h" |
| 219 #else | 219 #else |
| 220 #include "media/renderers/default_renderer_factory.h" | 220 #include "media/renderers/default_renderer_factory.h" |
| 221 #endif | 221 #endif |
| 222 | 222 |
| 223 #if defined(ENABLE_WEBVR) | 223 #if defined(ENABLE_WEBVR) |
| 224 #include "content/renderer/vr/vr_dispatcher.h" | 224 #include "content/renderer/vr/vr_dispatcher.h" |
| 225 #endif | 225 #endif |
| 226 | 226 |
| 227 using blink::WebContentDecryptionModule; | 227 using blink::WebContentDecryptionModule; |
| (...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 546 FrameMsg_UILoadMetricsReportType::Value report_type = | 546 FrameMsg_UILoadMetricsReportType::Value report_type = |
| 547 static_cast<FrameMsg_UILoadMetricsReportType::Value>( | 547 static_cast<FrameMsg_UILoadMetricsReportType::Value>( |
| 548 request->inputPerfMetricReportPolicy()); | 548 request->inputPerfMetricReportPolicy()); |
| 549 return CommonNavigationParams( | 549 return CommonNavigationParams( |
| 550 request->url(), referrer, extra_data->transition_type(), | 550 request->url(), referrer, extra_data->transition_type(), |
| 551 FrameMsg_Navigate_Type::NORMAL, true, should_replace_current_entry, | 551 FrameMsg_Navigate_Type::NORMAL, true, should_replace_current_entry, |
| 552 ui_timestamp, report_type, GURL(), GURL(), LOFI_UNSPECIFIED, | 552 ui_timestamp, report_type, GURL(), GURL(), LOFI_UNSPECIFIED, |
| 553 base::TimeTicks::Now()); | 553 base::TimeTicks::Now()); |
| 554 } | 554 } |
| 555 | 555 |
| 556 #if !defined(OS_ANDROID) || defined(ENABLE_MEDIA_PIPELINE_ON_ANDROID) | |
| 557 media::Context3D GetSharedMainThreadContext3D() { | 556 media::Context3D GetSharedMainThreadContext3D() { |
| 558 cc::ContextProvider* provider = | 557 cc::ContextProvider* provider = |
| 559 RenderThreadImpl::current()->SharedMainThreadContextProvider().get(); | 558 RenderThreadImpl::current()->SharedMainThreadContextProvider().get(); |
| 560 if (!provider) | 559 if (!provider) |
| 561 return media::Context3D(); | 560 return media::Context3D(); |
| 562 return media::Context3D(provider->ContextGL(), provider->GrContext()); | 561 return media::Context3D(provider->ContextGL(), provider->GrContext()); |
| 563 } | 562 } |
| 564 #endif | |
| 565 | 563 |
| 566 bool IsReload(FrameMsg_Navigate_Type::Value navigation_type) { | 564 bool IsReload(FrameMsg_Navigate_Type::Value navigation_type) { |
| 567 return navigation_type == FrameMsg_Navigate_Type::RELOAD || | 565 return navigation_type == FrameMsg_Navigate_Type::RELOAD || |
| 568 navigation_type == FrameMsg_Navigate_Type::RELOAD_IGNORING_CACHE || | 566 navigation_type == FrameMsg_Navigate_Type::RELOAD_IGNORING_CACHE || |
| 569 navigation_type == FrameMsg_Navigate_Type::RELOAD_ORIGINAL_REQUEST_URL; | 567 navigation_type == FrameMsg_Navigate_Type::RELOAD_ORIGINAL_REQUEST_URL; |
| 570 } | 568 } |
| 571 | 569 |
| 572 RenderFrameImpl::CreateRenderFrameImplFunction g_create_render_frame_impl = | 570 RenderFrameImpl::CreateRenderFrameImplFunction g_create_render_frame_impl = |
| 573 nullptr; | 571 nullptr; |
| 574 | 572 |
| (...skipping 1709 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2284 #endif // defined(VIDEO_HOLE) | 2282 #endif // defined(VIDEO_HOLE) |
| 2285 | 2283 |
| 2286 blink::WebMediaStream web_stream( | 2284 blink::WebMediaStream web_stream( |
| 2287 blink::WebMediaStreamRegistry::lookupMediaStreamDescriptor(url)); | 2285 blink::WebMediaStreamRegistry::lookupMediaStreamDescriptor(url)); |
| 2288 if (!web_stream.isNull()) | 2286 if (!web_stream.isNull()) |
| 2289 return CreateWebMediaPlayerForMediaStream(client, sink_id, | 2287 return CreateWebMediaPlayerForMediaStream(client, sink_id, |
| 2290 frame->securityOrigin()); | 2288 frame->securityOrigin()); |
| 2291 | 2289 |
| 2292 RenderThreadImpl* render_thread = RenderThreadImpl::current(); | 2290 RenderThreadImpl* render_thread = RenderThreadImpl::current(); |
| 2293 | 2291 |
| 2294 #if defined(OS_ANDROID) && !defined(ENABLE_MEDIA_PIPELINE_ON_ANDROID) | |
| 2295 scoped_refptr<media::RestartableAudioRendererSink> audio_renderer_sink; | |
| 2296 media::WebMediaPlayerParams::Context3DCB context_3d_cb; | |
| 2297 #else | |
| 2298 scoped_refptr<media::RestartableAudioRendererSink> audio_renderer_sink = | 2292 scoped_refptr<media::RestartableAudioRendererSink> audio_renderer_sink = |
| 2299 render_thread->GetAudioRendererMixerManager()->CreateInput( | 2293 render_thread->GetAudioRendererMixerManager()->CreateInput( |
| 2300 routing_id_, sink_id.utf8(), frame->securityOrigin()); | 2294 routing_id_, sink_id.utf8(), frame->securityOrigin()); |
| 2301 media::WebMediaPlayerParams::Context3DCB context_3d_cb = | 2295 media::WebMediaPlayerParams::Context3DCB context_3d_cb = |
| 2302 base::Bind(&GetSharedMainThreadContext3D); | 2296 base::Bind(&GetSharedMainThreadContext3D); |
| 2303 #endif // defined(OS_ANDROID) && !defined(ENABLE_MEDIA_PIPELINE_ON_ANDROID) | |
| 2304 | 2297 |
| 2305 scoped_refptr<media::MediaLog> media_log(new RenderMediaLog()); | 2298 scoped_refptr<media::MediaLog> media_log(new RenderMediaLog()); |
| 2306 media::WebMediaPlayerParams params( | 2299 media::WebMediaPlayerParams params( |
| 2307 base::Bind(&ContentRendererClient::DeferMediaLoad, | 2300 base::Bind(&ContentRendererClient::DeferMediaLoad, |
| 2308 base::Unretained(GetContentClient()->renderer()), | 2301 base::Unretained(GetContentClient()->renderer()), |
| 2309 static_cast<RenderFrame*>(this), | 2302 static_cast<RenderFrame*>(this), |
| 2310 GetWebMediaPlayerDelegate()->has_played_media()), | 2303 GetWebMediaPlayerDelegate()->has_played_media()), |
| 2311 audio_renderer_sink, media_log, render_thread->GetMediaThreadTaskRunner(), | 2304 audio_renderer_sink, media_log, render_thread->GetMediaThreadTaskRunner(), |
| 2312 render_thread->GetWorkerTaskRunner(), | 2305 render_thread->GetWorkerTaskRunner(), |
| 2313 render_thread->compositor_task_runner(), context_3d_cb, | 2306 render_thread->compositor_task_runner(), context_3d_cb, |
| 2314 base::Bind(&v8::Isolate::AdjustAmountOfExternalAllocatedMemory, | 2307 base::Bind(&v8::Isolate::AdjustAmountOfExternalAllocatedMemory, |
| 2315 base::Unretained(blink::mainThreadIsolate())), | 2308 base::Unretained(blink::mainThreadIsolate())), |
| 2316 GetMediaPermission(), initial_cdm); | 2309 GetMediaPermission(), initial_cdm); |
| 2317 | 2310 |
| 2318 // TODO(xhwang, watk): Find a better way to specify these ifdef conditions. | 2311 #if defined(OS_ANDROID) |
| 2319 #if defined(OS_ANDROID) && !defined(ENABLE_MEDIA_PIPELINE_ON_ANDROID) | |
| 2320 return CreateAndroidWebMediaPlayer(client, encrypted_client, params); | |
| 2321 #else | |
| 2322 #if defined(ENABLE_MEDIA_PIPELINE_ON_ANDROID) | |
| 2323 if (!base::CommandLine::ForCurrentProcess()->HasSwitch( | 2312 if (!base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 2324 switches::kEnableUnifiedMediaPipeline)) { | 2313 switches::kEnableUnifiedMediaPipeline)) { |
| 2314 // TODO(sandersd): This check should be grown to include HLS and blacklist | |
| 2315 // checks. http://crbug.com/516765 | |
| 2325 return CreateAndroidWebMediaPlayer(client, encrypted_client, params); | 2316 return CreateAndroidWebMediaPlayer(client, encrypted_client, params); |
| 2326 } | 2317 } |
| 2327 #endif // defined(ENABLE_MEDIA_PIPELINE_ON_ANDROID) | 2318 #endif // defined(OS_ANDROID) |
| 2328 | 2319 |
| 2329 #if defined(ENABLE_MOJO_MEDIA) && !defined(ENABLE_MEDIA_PIPELINE_ON_ANDROID) | 2320 #if defined(ENABLE_MOJO_MEDIA) //&& TODO(xhwang): What should this be? |
| 2330 scoped_ptr<media::RendererFactory> media_renderer_factory( | 2321 scoped_ptr<media::RendererFactory> media_renderer_factory( |
| 2331 new media::MojoRendererFactory(GetMediaServiceFactory())); | 2322 new media::MojoRendererFactory(GetMediaServiceFactory())); |
| 2332 #else | 2323 #else |
| 2333 scoped_ptr<media::RendererFactory> media_renderer_factory = | 2324 scoped_ptr<media::RendererFactory> media_renderer_factory = |
| 2334 GetContentClient()->renderer()->CreateMediaRendererFactory( | 2325 GetContentClient()->renderer()->CreateMediaRendererFactory( |
| 2335 this, render_thread->GetGpuFactories(), media_log); | 2326 this, render_thread->GetGpuFactories(), media_log); |
| 2336 | 2327 |
| 2337 if (!media_renderer_factory.get()) { | 2328 if (!media_renderer_factory.get()) { |
| 2338 media_renderer_factory.reset(new media::DefaultRendererFactory( | 2329 media_renderer_factory.reset(new media::DefaultRendererFactory( |
| 2339 media_log, render_thread->GetGpuFactories(), | 2330 media_log, render_thread->GetGpuFactories(), |
| 2340 *render_thread->GetAudioHardwareConfig())); | 2331 *render_thread->GetAudioHardwareConfig())); |
| 2341 } | 2332 } |
| 2342 #endif // defined(ENABLE_MOJO_MEDIA) && | 2333 #endif // defined(ENABLE_MOJO_MEDIA) |
| 2343 // !defined(ENABLE_MEDIA_PIPELINE_ON_ANDROID) | |
| 2344 | 2334 |
| 2345 if (!url_index_.get() || url_index_->frame() != frame) { | 2335 if (!url_index_.get() || url_index_->frame() != frame) |
| 2346 url_index_.reset(new media::UrlIndex(frame)); | 2336 url_index_.reset(new media::UrlIndex(frame)); |
| 2347 } | |
| 2348 | 2337 |
| 2349 return new media::WebMediaPlayerImpl( | 2338 return new media::WebMediaPlayerImpl( |
| 2350 frame, client, encrypted_client, GetWebMediaPlayerDelegate()->AsWeakPtr(), | 2339 frame, client, encrypted_client, GetWebMediaPlayerDelegate()->AsWeakPtr(), |
| 2351 media_renderer_factory.Pass(), GetCdmFactory(), url_index_, params); | 2340 media_renderer_factory.Pass(), GetCdmFactory(), url_index_, params); |
| 2352 #endif // defined(OS_ANDROID) && !defined(ENABLE_MEDIA_PIPELINE_ON_ANDROID) | |
| 2353 } | 2341 } |
| 2354 | 2342 |
| 2355 blink::WebMediaSession* RenderFrameImpl::createMediaSession() { | 2343 blink::WebMediaSession* RenderFrameImpl::createMediaSession() { |
| 2356 #if defined(OS_ANDROID) | 2344 #if defined(OS_ANDROID) |
| 2357 return new WebMediaSessionAndroid(GetMediaSessionManager()); | 2345 return new WebMediaSessionAndroid(GetMediaSessionManager()); |
| 2358 #else | 2346 #else |
| 2359 return nullptr; | 2347 return nullptr; |
| 2360 #endif // defined(OS_ANDROID) | 2348 #endif // defined(OS_ANDROID) |
| 2361 } | 2349 } |
| 2362 | 2350 |
| (...skipping 3274 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 5637 media::ConvertToSwitchOutputDeviceCB(web_callbacks); | 5625 media::ConvertToSwitchOutputDeviceCB(web_callbacks); |
| 5638 scoped_refptr<media::AudioOutputDevice> device = | 5626 scoped_refptr<media::AudioOutputDevice> device = |
| 5639 AudioDeviceFactory::NewOutputDevice(routing_id_, 0, sink_id.utf8(), | 5627 AudioDeviceFactory::NewOutputDevice(routing_id_, 0, sink_id.utf8(), |
| 5640 security_origin); | 5628 security_origin); |
| 5641 media::OutputDeviceStatus status = device->GetDeviceStatus(); | 5629 media::OutputDeviceStatus status = device->GetDeviceStatus(); |
| 5642 device->Stop(); | 5630 device->Stop(); |
| 5643 callback.Run(status); | 5631 callback.Run(status); |
| 5644 } | 5632 } |
| 5645 | 5633 |
| 5646 } // namespace content | 5634 } // namespace content |
| OLD | NEW |