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 <utility> | 9 #include <utility> |
10 #include <vector> | 10 #include <vector> |
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
233 #endif | 233 #endif |
234 | 234 |
235 #if defined(ENABLE_MOJO_MEDIA) | 235 #if defined(ENABLE_MOJO_MEDIA) |
236 #include "content/renderer/media/media_interface_provider.h" | 236 #include "content/renderer/media/media_interface_provider.h" |
237 #endif | 237 #endif |
238 | 238 |
239 #if defined(ENABLE_MOJO_CDM) | 239 #if defined(ENABLE_MOJO_CDM) |
240 #include "media/mojo/clients/mojo_cdm_factory.h" // nogncheck | 240 #include "media/mojo/clients/mojo_cdm_factory.h" // nogncheck |
241 #endif | 241 #endif |
242 | 242 |
243 #if BUILDFLAG(ENABLE_MOJO_MEDIA_PLAYER_RENDERER) | |
244 #include "content/renderer/media/android/media_player_renderer_client_factory.h" | |
245 #include "content/renderer/media/android/stream_texture_wrapper_impl.h" | |
246 #include "media/mojo/clients/mojo_renderer_factory.h" // nogncheck | |
247 #endif | |
248 | |
243 #if defined(ENABLE_MOJO_RENDERER) | 249 #if defined(ENABLE_MOJO_RENDERER) |
244 #include "media/mojo/clients/mojo_renderer_factory.h" // nogncheck | 250 #include "media/mojo/clients/mojo_renderer_factory.h" // nogncheck |
245 #else | 251 #else |
246 #include "media/renderers/default_renderer_factory.h" | 252 #include "media/renderers/default_renderer_factory.h" |
247 #endif | 253 #endif |
248 | 254 |
249 #if defined(ENABLE_MOJO_AUDIO_DECODER) || defined(ENABLE_MOJO_VIDEO_DECODER) | 255 #if defined(ENABLE_MOJO_AUDIO_DECODER) || defined(ENABLE_MOJO_VIDEO_DECODER) |
250 #include "media/mojo/clients/mojo_decoder_factory.h" // nogncheck | 256 #include "media/mojo/clients/mojo_decoder_factory.h" // nogncheck |
251 #endif | 257 #endif |
252 | 258 |
(...skipping 2409 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2662 base::Unretained(GetContentClient()->renderer()), | 2668 base::Unretained(GetContentClient()->renderer()), |
2663 static_cast<RenderFrame*>(this), | 2669 static_cast<RenderFrame*>(this), |
2664 GetWebMediaPlayerDelegate()->has_played_media()), | 2670 GetWebMediaPlayerDelegate()->has_played_media()), |
2665 audio_renderer_sink, media_log, render_thread->GetMediaThreadTaskRunner(), | 2671 audio_renderer_sink, media_log, render_thread->GetMediaThreadTaskRunner(), |
2666 render_thread->GetWorkerTaskRunner(), | 2672 render_thread->GetWorkerTaskRunner(), |
2667 render_thread->compositor_task_runner(), context_3d_cb, | 2673 render_thread->compositor_task_runner(), context_3d_cb, |
2668 base::Bind(&v8::Isolate::AdjustAmountOfExternalAllocatedMemory, | 2674 base::Bind(&v8::Isolate::AdjustAmountOfExternalAllocatedMemory, |
2669 base::Unretained(blink::mainThreadIsolate())), | 2675 base::Unretained(blink::mainThreadIsolate())), |
2670 initial_cdm, media_surface_manager_); | 2676 initial_cdm, media_surface_manager_); |
2671 | 2677 |
2672 #if defined(OS_ANDROID) | 2678 #if BUILDFLAG(ENABLE_MOJO_MEDIA_PLAYER_RENDERER) |
2679 if (!UseWebMediaPlayerImpl(url)) { | |
2680 return CreateMojoMediaPlayerRenderer(client, encrypted_client, url, params); | |
2681 } | |
2682 #elif defined(OS_ANDROID) | |
2673 if (!UseWebMediaPlayerImpl(url)) { | 2683 if (!UseWebMediaPlayerImpl(url)) { |
2674 return CreateAndroidWebMediaPlayer(client, encrypted_client, params); | 2684 return CreateAndroidWebMediaPlayer(client, encrypted_client, params); |
2675 } | 2685 } |
2676 #endif // defined(OS_ANDROID) | 2686 #endif // defined(OS_ANDROID) |
2677 | 2687 |
2678 #if defined(ENABLE_MOJO_RENDERER) | 2688 #if defined(ENABLE_MOJO_RENDERER) |
2679 std::unique_ptr<media::RendererFactory> media_renderer_factory( | 2689 auto media_renderer_factory = base::MakeUnique<media::MojoRendererFactory>( |
2680 new media::MojoRendererFactory( | 2690 base::Bind(&RenderThreadImpl::GetGpuFactories, |
2681 base::Bind(&RenderThreadImpl::GetGpuFactories, | 2691 base::Unretained(render_thread)), |
2682 base::Unretained(render_thread)), | 2692 GetMediaInterfaceProvider()); |
2683 GetMediaInterfaceProvider())); | |
2684 #else | 2693 #else |
2685 std::unique_ptr<media::RendererFactory> media_renderer_factory( | 2694 auto media_renderer_factory = base::MakeUnique<media::DefaultRendererFactory>( |
2686 new media::DefaultRendererFactory( | 2695 media_log, GetDecoderFactory(), |
2687 media_log, GetDecoderFactory(), | 2696 base::Bind(&RenderThreadImpl::GetGpuFactories, |
2688 base::Bind(&RenderThreadImpl::GetGpuFactories, | 2697 base::Unretained(render_thread))); |
2689 base::Unretained(render_thread)))); | |
2690 #endif // defined(ENABLE_MOJO_RENDERER) | 2698 #endif // defined(ENABLE_MOJO_RENDERER) |
2691 | 2699 |
2692 if (!url_index_.get() || url_index_->frame() != frame_) | 2700 if (!url_index_.get() || url_index_->frame() != frame_) |
2693 url_index_.reset(new media::UrlIndex(frame_)); | 2701 url_index_.reset(new media::UrlIndex(frame_)); |
2694 | 2702 |
2695 // TODO(miu): In a soon-upcoming change, call GetRemoterFactory()->Create() to | 2703 // TODO(miu): In a soon-upcoming change, call GetRemoterFactory()->Create() to |
2696 // allow the local media pipeline to receive notifications about when Media | 2704 // allow the local media pipeline to receive notifications about when Media |
2697 // Remoting can take place. Control logic in/around WebMediaPlayerImpl will | 2705 // Remoting can take place. Control logic in/around WebMediaPlayerImpl will |
2698 // implement media.mojom.RemotingSource. http://crbug.com/643964 | 2706 // implement media.mojom.RemotingSource. http://crbug.com/643964 |
2699 | 2707 |
(...skipping 3489 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
6189 if (!media_player_manager_) | 6197 if (!media_player_manager_) |
6190 media_player_manager_ = new RendererMediaPlayerManager(this); | 6198 media_player_manager_ = new RendererMediaPlayerManager(this); |
6191 return media_player_manager_; | 6199 return media_player_manager_; |
6192 } | 6200 } |
6193 | 6201 |
6194 RendererMediaSessionManager* RenderFrameImpl::GetMediaSessionManager() { | 6202 RendererMediaSessionManager* RenderFrameImpl::GetMediaSessionManager() { |
6195 if (!media_session_manager_) | 6203 if (!media_session_manager_) |
6196 media_session_manager_ = new RendererMediaSessionManager(this); | 6204 media_session_manager_ = new RendererMediaSessionManager(this); |
6197 return media_session_manager_; | 6205 return media_session_manager_; |
6198 } | 6206 } |
6207 #endif // defined(OS_ANDROID) | |
6199 | 6208 |
6200 #endif // defined(OS_ANDROID) | 6209 #if BUILDFLAG(ENABLE_MOJO_MEDIA_PLAYER_RENDERER) |
6210 WebMediaPlayer* RenderFrameImpl::CreateMojoMediaPlayerRenderer( | |
liberato (no reviews please)
2016/10/06 14:55:46
lots of this is common to the normal wmpi case. i
tguilbert
2016/10/11 18:54:33
I had found that, for the time being, it was clear
| |
6211 WebMediaPlayerClient* client, | |
6212 WebMediaPlayerEncryptedMediaClient* encrypted_client, | |
6213 blink::WebURL url, | |
6214 const media::WebMediaPlayerParams& params) { | |
6215 RenderThreadImpl* render_thread = RenderThreadImpl::current(); | |
6216 | |
6217 auto mojo_renderer_factory = base::MakeUnique<media::MojoRendererFactory>( | |
6218 media::MojoRendererFactory::GetGpuFactoriesCB(), | |
6219 GetRemoteInterfaces()->get()); | |
6220 | |
6221 auto media_renderer_factory = | |
6222 base::MakeUnique<MediaPlayerRendererClientFactory>( | |
6223 render_thread->compositor_task_runner(), | |
6224 std::move(mojo_renderer_factory), | |
6225 base::Bind(&StreamTextureWrapperImpl::Create, | |
6226 render_thread->GetStreamTexureFactory(), | |
6227 base::ThreadTaskRunnerHandle::Get())); | |
6228 | |
6229 if (!url_index_.get() || url_index_->frame() != frame_) | |
6230 url_index_.reset(new media::UrlIndex(frame_)); | |
6231 | |
6232 media::WebMediaPlayerImpl* media_player = new media::WebMediaPlayerImpl( | |
6233 frame_, client, encrypted_client, | |
6234 GetWebMediaPlayerDelegate()->AsWeakPtr(), | |
6235 std::move(media_renderer_factory), url_index_, params); | |
6236 | |
6237 media_player->SetMediaPlayerManager(GetMediaPlayerManager()); | |
6238 media_player->SetDeviceScaleFactor(render_view_->GetDeviceScaleFactor()); | |
6239 media_player->EnableFallbackMediaPlayer(url); | |
6240 | |
6241 return media_player; | |
6242 } | |
6243 #endif // BUILDFLAG(ENABLE_MOJO_MEDIA_PLAYER_RENDERER) | |
6201 | 6244 |
6202 media::MediaPermission* RenderFrameImpl::GetMediaPermission() { | 6245 media::MediaPermission* RenderFrameImpl::GetMediaPermission() { |
6203 if (!media_permission_dispatcher_) { | 6246 if (!media_permission_dispatcher_) { |
6204 media_permission_dispatcher_.reset(new MediaPermissionDispatcher(base::Bind( | 6247 media_permission_dispatcher_.reset(new MediaPermissionDispatcher(base::Bind( |
6205 &RenderFrameImpl::GetInterface<blink::mojom::PermissionService>, | 6248 &RenderFrameImpl::GetInterface<blink::mojom::PermissionService>, |
6206 base::Unretained(this)))); | 6249 base::Unretained(this)))); |
6207 } | 6250 } |
6208 return media_permission_dispatcher_.get(); | 6251 return media_permission_dispatcher_.get(); |
6209 } | 6252 } |
6210 | 6253 |
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
6431 // event target. Potentially a Pepper plugin will receive the event. | 6474 // event target. Potentially a Pepper plugin will receive the event. |
6432 // In order to tell whether a plugin gets the last mouse event and which it | 6475 // In order to tell whether a plugin gets the last mouse event and which it |
6433 // is, we set |pepper_last_mouse_event_target_| to null here. If a plugin gets | 6476 // is, we set |pepper_last_mouse_event_target_| to null here. If a plugin gets |
6434 // the event, it will notify us via DidReceiveMouseEvent() and set itself as | 6477 // the event, it will notify us via DidReceiveMouseEvent() and set itself as |
6435 // |pepper_last_mouse_event_target_|. | 6478 // |pepper_last_mouse_event_target_|. |
6436 pepper_last_mouse_event_target_ = nullptr; | 6479 pepper_last_mouse_event_target_ = nullptr; |
6437 #endif | 6480 #endif |
6438 } | 6481 } |
6439 | 6482 |
6440 } // namespace content | 6483 } // namespace content |
OLD | NEW |