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

Side by Side Diff: content/renderer/render_frame_impl.cc

Issue 2387293007: Register MediaPlayerRenderer service (Closed)
Patch Set: Typo. Created 4 years, 2 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
« no previous file with comments | « content/browser/media/android/media_player_renderer.cc ('k') | media/base/media_switches.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 214
215 #if defined(ENABLE_WEBRTC) 215 #if defined(ENABLE_WEBRTC)
216 #include "content/renderer/media/rtc_peer_connection_handler.h" 216 #include "content/renderer/media/rtc_peer_connection_handler.h"
217 #endif 217 #endif
218 218
219 #if defined(OS_ANDROID) 219 #if defined(OS_ANDROID)
220 #include <cpu-features.h> 220 #include <cpu-features.h>
221 221
222 #include "content/renderer/android/app_web_message_port_client.h" 222 #include "content/renderer/android/app_web_message_port_client.h"
223 #include "content/renderer/java/gin_java_bridge_dispatcher.h" 223 #include "content/renderer/java/gin_java_bridge_dispatcher.h"
224 #include "content/renderer/media/android/media_player_renderer_client_factory.h"
224 #include "content/renderer/media/android/renderer_media_player_manager.h" 225 #include "content/renderer/media/android/renderer_media_player_manager.h"
225 #include "content/renderer/media/android/renderer_surface_view_manager.h" 226 #include "content/renderer/media/android/renderer_surface_view_manager.h"
226 #include "content/renderer/media/android/stream_texture_factory.h" 227 #include "content/renderer/media/android/stream_texture_factory.h"
228 #include "content/renderer/media/android/stream_texture_wrapper_impl.h"
227 #include "content/renderer/media/android/webmediaplayer_android.h" 229 #include "content/renderer/media/android/webmediaplayer_android.h"
228 #include "media/base/android/media_codec_util.h" 230 #include "media/base/android/media_codec_util.h"
231 #include "media/mojo/clients/mojo_renderer_factory.h" // nogncheck
229 #include "third_party/WebKit/public/platform/WebFloatPoint.h" 232 #include "third_party/WebKit/public/platform/WebFloatPoint.h"
230 #endif 233 #endif
231 234
232 #if BUILDFLAG(ENABLE_PEPPER_CDMS) 235 #if BUILDFLAG(ENABLE_PEPPER_CDMS)
233 #include "content/renderer/media/cdm/pepper_cdm_wrapper_impl.h" 236 #include "content/renderer/media/cdm/pepper_cdm_wrapper_impl.h"
234 #include "content/renderer/media/cdm/render_cdm_factory.h" 237 #include "content/renderer/media/cdm/render_cdm_factory.h"
235 #endif 238 #endif
236 239
237 #if defined(ENABLE_MOJO_MEDIA) 240 #if defined(ENABLE_MOJO_MEDIA)
238 #include "content/renderer/media/media_interface_provider.h" 241 #include "content/renderer/media/media_interface_provider.h"
(...skipping 2491 matching lines...) Expand 10 before | Expand all | Expand 10 after
2730 base::Unretained(GetContentClient()->renderer()), 2733 base::Unretained(GetContentClient()->renderer()),
2731 static_cast<RenderFrame*>(this), 2734 static_cast<RenderFrame*>(this),
2732 GetWebMediaPlayerDelegate()->has_played_media()), 2735 GetWebMediaPlayerDelegate()->has_played_media()),
2733 audio_renderer_sink, media_log, render_thread->GetMediaThreadTaskRunner(), 2736 audio_renderer_sink, media_log, render_thread->GetMediaThreadTaskRunner(),
2734 render_thread->GetWorkerTaskRunner(), 2737 render_thread->GetWorkerTaskRunner(),
2735 render_thread->compositor_task_runner(), context_3d_cb, 2738 render_thread->compositor_task_runner(), context_3d_cb,
2736 base::Bind(&v8::Isolate::AdjustAmountOfExternalAllocatedMemory, 2739 base::Bind(&v8::Isolate::AdjustAmountOfExternalAllocatedMemory,
2737 base::Unretained(blink::mainThreadIsolate())), 2740 base::Unretained(blink::mainThreadIsolate())),
2738 initial_cdm, media_surface_manager_, media_observer); 2741 initial_cdm, media_surface_manager_, media_observer);
2739 2742
2743 bool use_fallback_path = false;
2740 #if defined(OS_ANDROID) 2744 #if defined(OS_ANDROID)
2741 if (!UseWebMediaPlayerImpl(url)) { 2745 use_fallback_path = !UseWebMediaPlayerImpl(url);
2746
2747 if (use_fallback_path &&
2748 !base::FeatureList::IsEnabled(media::kAndroidMediaPlayerRenderer)) {
2742 return CreateAndroidWebMediaPlayer(client, encrypted_client, params); 2749 return CreateAndroidWebMediaPlayer(client, encrypted_client, params);
2743 } 2750 }
2744 #endif // defined(OS_ANDROID) 2751 #endif // defined(OS_ANDROID)
2745 2752
2753 std::unique_ptr<media::RendererFactory> media_renderer_factory;
2754 if (use_fallback_path) {
2755 #if defined(OS_ANDROID)
2756 auto mojo_renderer_factory = base::MakeUnique<media::MojoRendererFactory>(
2757 media::MojoRendererFactory::GetGpuFactoriesCB(),
2758 GetRemoteInterfaces()->get());
2759
2760 media_renderer_factory = base::MakeUnique<MediaPlayerRendererClientFactory>(
2761 render_thread->compositor_task_runner(),
2762 std::move(mojo_renderer_factory),
2763 base::Bind(&StreamTextureWrapperImpl::Create,
2764 render_thread->GetStreamTexureFactory(),
2765 base::ThreadTaskRunnerHandle::Get()));
2766 #endif // defined(OS_ANDROID)
2767 } else {
2746 #if defined(ENABLE_MOJO_RENDERER) 2768 #if defined(ENABLE_MOJO_RENDERER)
2747 std::unique_ptr<media::RendererFactory> media_renderer_factory( 2769 media_renderer_factory = base::MakeUnique<media::MojoRendererFactory>(
2748 new media::MojoRendererFactory( 2770 base::Bind(&RenderThreadImpl::GetGpuFactories,
2749 base::Bind(&RenderThreadImpl::GetGpuFactories, 2771 base::Unretained(render_thread)),
2750 base::Unretained(render_thread)), 2772 GetMediaInterfaceProvider());
2751 GetMediaInterfaceProvider()));
2752 #else 2773 #else
2753 std::unique_ptr<media::RendererFactory> media_renderer_factory( 2774 media_renderer_factory = base::MakeUnique<media::DefaultRendererFactory>(
2754 new media::DefaultRendererFactory( 2775 media_log, GetDecoderFactory(),
2755 media_log, GetDecoderFactory(), 2776 base::Bind(&RenderThreadImpl::GetGpuFactories,
2756 base::Bind(&RenderThreadImpl::GetGpuFactories, 2777 base::Unretained(render_thread)));
2757 base::Unretained(render_thread))));
2758 #endif 2778 #endif
2779 }
2759 2780
2760 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) 2781 #if BUILDFLAG(ENABLE_MEDIA_REMOTING)
2761 media::RemotingController* remoting_controller_ptr = 2782 media::RemotingController* remoting_controller_ptr =
2762 remoting_controller.get(); 2783 remoting_controller.get();
2763 media_renderer_factory = base::MakeUnique<media::RemotingRendererFactory>( 2784 media_renderer_factory = base::MakeUnique<media::RemotingRendererFactory>(
2764 std::move(media_renderer_factory), std::move(remoting_controller)); 2785 std::move(media_renderer_factory), std::move(remoting_controller));
2765 #endif 2786 #endif
2766 2787
2767 if (!url_index_.get() || url_index_->frame() != frame_) 2788 if (!url_index_.get() || url_index_->frame() != frame_)
2768 url_index_.reset(new media::UrlIndex(frame_)); 2789 url_index_.reset(new media::UrlIndex(frame_));
2769 2790
2770 media::WebMediaPlayerImpl* media_player = new media::WebMediaPlayerImpl( 2791 media::WebMediaPlayerImpl* media_player = new media::WebMediaPlayerImpl(
2771 frame_, client, encrypted_client, 2792 frame_, client, encrypted_client,
2772 GetWebMediaPlayerDelegate()->AsWeakPtr(), 2793 GetWebMediaPlayerDelegate()->AsWeakPtr(),
2773 std::move(media_renderer_factory), url_index_, params); 2794 std::move(media_renderer_factory), url_index_, params);
2774 2795
2775 #if defined(OS_ANDROID) // WMPI_CAST 2796 #if defined(OS_ANDROID) // WMPI_CAST
2776 media_player->SetMediaPlayerManager(GetMediaPlayerManager()); 2797 media_player->SetMediaPlayerManager(GetMediaPlayerManager());
2777 media_player->SetDeviceScaleFactor(render_view_->GetDeviceScaleFactor()); 2798 media_player->SetDeviceScaleFactor(render_view_->GetDeviceScaleFactor());
2799 media_player->SetUseFallbackPath(use_fallback_path);
2778 #endif // defined(OS_ANDROID) 2800 #endif // defined(OS_ANDROID)
2779 2801
2780 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) 2802 #if BUILDFLAG(ENABLE_MEDIA_REMOTING)
2781 remoting_controller_ptr->SetSwitchRendererCallback(base::Bind( 2803 remoting_controller_ptr->SetSwitchRendererCallback(base::Bind(
2782 &media::WebMediaPlayerImpl::ScheduleRestart, media_player->AsWeakPtr())); 2804 &media::WebMediaPlayerImpl::ScheduleRestart, media_player->AsWeakPtr()));
2783 #endif 2805 #endif
2784
2785 return media_player; 2806 return media_player;
2786 } 2807 }
2787 2808
2788 blink::WebApplicationCacheHost* RenderFrameImpl::createApplicationCacheHost( 2809 blink::WebApplicationCacheHost* RenderFrameImpl::createApplicationCacheHost(
2789 blink::WebApplicationCacheHostClient* client) { 2810 blink::WebApplicationCacheHostClient* client) {
2790 if (!frame_ || !frame_->view()) 2811 if (!frame_ || !frame_->view())
2791 return NULL; 2812 return NULL;
2792 return new RendererWebApplicationCacheHostImpl( 2813 return new RendererWebApplicationCacheHostImpl(
2793 RenderViewImpl::FromWebView(frame_->view()), client, 2814 RenderViewImpl::FromWebView(frame_->view()), client,
2794 RenderThreadImpl::current()->appcache_dispatcher()->backend_proxy()); 2815 RenderThreadImpl::current()->appcache_dispatcher()->backend_proxy());
(...skipping 3501 matching lines...) Expand 10 before | Expand all | Expand 10 after
6296 frame_, client, encrypted_client, 6317 frame_, client, encrypted_client,
6297 GetWebMediaPlayerDelegate()->AsWeakPtr(), GetMediaPlayerManager(), 6318 GetWebMediaPlayerDelegate()->AsWeakPtr(), GetMediaPlayerManager(),
6298 stream_texture_factory, routing_id_, enable_texture_copy, params); 6319 stream_texture_factory, routing_id_, enable_texture_copy, params);
6299 } 6320 }
6300 6321
6301 RendererMediaPlayerManager* RenderFrameImpl::GetMediaPlayerManager() { 6322 RendererMediaPlayerManager* RenderFrameImpl::GetMediaPlayerManager() {
6302 if (!media_player_manager_) 6323 if (!media_player_manager_)
6303 media_player_manager_ = new RendererMediaPlayerManager(this); 6324 media_player_manager_ = new RendererMediaPlayerManager(this);
6304 return media_player_manager_; 6325 return media_player_manager_;
6305 } 6326 }
6306
6307 #endif // defined(OS_ANDROID) 6327 #endif // defined(OS_ANDROID)
6308 6328
6309 media::MediaPermission* RenderFrameImpl::GetMediaPermission() { 6329 media::MediaPermission* RenderFrameImpl::GetMediaPermission() {
6310 if (!media_permission_dispatcher_) { 6330 if (!media_permission_dispatcher_) {
6311 media_permission_dispatcher_.reset(new MediaPermissionDispatcher(base::Bind( 6331 media_permission_dispatcher_.reset(new MediaPermissionDispatcher(base::Bind(
6312 &RenderFrameImpl::GetInterface<blink::mojom::PermissionService>, 6332 &RenderFrameImpl::GetInterface<blink::mojom::PermissionService>,
6313 base::Unretained(this)))); 6333 base::Unretained(this))));
6314 } 6334 }
6315 return media_permission_dispatcher_.get(); 6335 return media_permission_dispatcher_.get();
6316 } 6336 }
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
6540 // event target. Potentially a Pepper plugin will receive the event. 6560 // event target. Potentially a Pepper plugin will receive the event.
6541 // In order to tell whether a plugin gets the last mouse event and which it 6561 // In order to tell whether a plugin gets the last mouse event and which it
6542 // is, we set |pepper_last_mouse_event_target_| to null here. If a plugin gets 6562 // is, we set |pepper_last_mouse_event_target_| to null here. If a plugin gets
6543 // the event, it will notify us via DidReceiveMouseEvent() and set itself as 6563 // the event, it will notify us via DidReceiveMouseEvent() and set itself as
6544 // |pepper_last_mouse_event_target_|. 6564 // |pepper_last_mouse_event_target_|.
6545 pepper_last_mouse_event_target_ = nullptr; 6565 pepper_last_mouse_event_target_ = nullptr;
6546 #endif 6566 #endif
6547 } 6567 }
6548 6568
6549 } // namespace content 6569 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/media/android/media_player_renderer.cc ('k') | media/base/media_switches.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698