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

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

Issue 2643743002: Mojify demuxers and allow running {Chunk/FFmpeg}Demuxer in a Utility Process (Closed)
Patch Set: Rebase and make sure to unbind mojom::DemuxerPtr on the bound thread during termination 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
« no previous file with comments | « content/renderer/media/media_interface_provider.cc ('k') | media/BUILD.gn » ('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 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 #endif 250 #endif
251 251
252 #if defined(ENABLE_MOJO_MEDIA) 252 #if defined(ENABLE_MOJO_MEDIA)
253 #include "content/renderer/media/media_interface_provider.h" 253 #include "content/renderer/media/media_interface_provider.h"
254 #endif 254 #endif
255 255
256 #if defined(ENABLE_MOJO_CDM) 256 #if defined(ENABLE_MOJO_CDM)
257 #include "media/mojo/clients/mojo_cdm_factory.h" // nogncheck 257 #include "media/mojo/clients/mojo_cdm_factory.h" // nogncheck
258 #endif 258 #endif
259 259
260 #if defined(ENABLE_MOJO_DEMUXER)
261 #include "media/mojo/clients/mojo_demuxer_factory.h" // nogncheck
262 #else
263 #include "media/filters/default_demuxer_factory.h"
264 #endif
265
260 #if defined(ENABLE_MOJO_RENDERER) 266 #if defined(ENABLE_MOJO_RENDERER)
261 #include "media/mojo/clients/mojo_renderer_factory.h" // nogncheck 267 #include "media/mojo/clients/mojo_renderer_factory.h" // nogncheck
262 #endif 268 #endif
263 269
264 #if !defined(ENABLE_MOJO_RENDERER) || \ 270 #if !defined(ENABLE_MOJO_RENDERER) || \
265 BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION) 271 BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION)
266 #include "media/renderers/default_renderer_factory.h" // nogncheck 272 #include "media/renderers/default_renderer_factory.h" // nogncheck
267 #endif 273 #endif
268 274
269 #if defined(ENABLE_MOJO_AUDIO_DECODER) || defined(ENABLE_MOJO_VIDEO_DECODER) 275 #if defined(ENABLE_MOJO_AUDIO_DECODER) || defined(ENABLE_MOJO_VIDEO_DECODER)
(...skipping 2582 matching lines...) Expand 10 before | Expand all | Expand 10 after
2852 // in the renderer process. See https://crbug.com/681160. 2858 // in the renderer process. See https://crbug.com/681160.
2853 GetWebkitPreferences().max_keyframe_distance_to_disable_background_video, 2859 GetWebkitPreferences().max_keyframe_distance_to_disable_background_video,
2854 GetWebkitPreferences().enable_instant_source_buffer_gc, 2860 GetWebkitPreferences().enable_instant_source_buffer_gc,
2855 GetContentClient()->renderer()->AllowMediaSuspend()); 2861 GetContentClient()->renderer()->AllowMediaSuspend());
2856 2862
2857 bool use_fallback_path = false; 2863 bool use_fallback_path = false;
2858 #if defined(OS_ANDROID) 2864 #if defined(OS_ANDROID)
2859 use_fallback_path = !UseWebMediaPlayerImpl(url); 2865 use_fallback_path = !UseWebMediaPlayerImpl(url);
2860 #endif // defined(OS_ANDROID) 2866 #endif // defined(OS_ANDROID)
2861 2867
2868 std::unique_ptr<media::DemuxerFactory> media_demuxer_factory;
2862 std::unique_ptr<media::RendererFactory> media_renderer_factory; 2869 std::unique_ptr<media::RendererFactory> media_renderer_factory;
2863 if (use_fallback_path) { 2870 if (use_fallback_path) {
2864 #if defined(OS_ANDROID) 2871 #if defined(OS_ANDROID)
2865 auto mojo_renderer_factory = base::MakeUnique<media::MojoRendererFactory>( 2872 auto mojo_renderer_factory = base::MakeUnique<media::MojoRendererFactory>(
2866 media::MojoRendererFactory::GetGpuFactoriesCB(), 2873 media::MojoRendererFactory::GetGpuFactoriesCB(),
2867 GetRemoteInterfaces()->get()); 2874 GetRemoteInterfaces()->get());
2868 2875
2869 media_renderer_factory = base::MakeUnique<MediaPlayerRendererClientFactory>( 2876 media_renderer_factory = base::MakeUnique<MediaPlayerRendererClientFactory>(
2870 render_thread->compositor_task_runner(), 2877 render_thread->compositor_task_runner(),
2871 std::move(mojo_renderer_factory), 2878 std::move(mojo_renderer_factory),
2872 base::Bind(&StreamTextureWrapperImpl::Create, 2879 base::Bind(&StreamTextureWrapperImpl::Create,
2873 render_thread->EnableStreamTextureCopy(), 2880 render_thread->EnableStreamTextureCopy(),
2874 render_thread->GetStreamTexureFactory(), 2881 render_thread->GetStreamTexureFactory(),
2875 base::ThreadTaskRunnerHandle::Get())); 2882 base::ThreadTaskRunnerHandle::Get()));
2876 #endif // defined(OS_ANDROID) 2883 #endif // defined(OS_ANDROID)
2877 } else { 2884 } else {
2885 #if defined(ENABLE_MOJO_DEMUXER) && defined(ENABLE_MOJO_RENDERER)
2886 media_demuxer_factory = base::MakeUnique<media::MojoDemuxerFactory>(
2887 GetMediaInterfaceProvider());
2888 #else
2889 media_demuxer_factory =
2890 base::MakeUnique<media::DefaultDemuxerFactory>(media_log);
2891 #endif
2892
2878 #if defined(ENABLE_MOJO_RENDERER) 2893 #if defined(ENABLE_MOJO_RENDERER)
2879 #if BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION) 2894 #if BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION)
2880 if (base::CommandLine::ForCurrentProcess()->HasSwitch( 2895 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
2881 switches::kDisableMojoRenderer)) { 2896 switches::kDisableMojoRenderer)) {
2882 media_renderer_factory = base::MakeUnique<media::DefaultRendererFactory>( 2897 media_renderer_factory = base::MakeUnique<media::DefaultRendererFactory>(
2883 media_log, GetDecoderFactory(), 2898 media_log, GetDecoderFactory(),
2884 base::Bind(&RenderThreadImpl::GetGpuFactories, 2899 base::Bind(&RenderThreadImpl::GetGpuFactories,
2885 base::Unretained(render_thread))); 2900 base::Unretained(render_thread)));
2886 } 2901 }
2887 #endif // BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION) 2902 #endif // BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION)
(...skipping 17 matching lines...) Expand all
2905 media_renderer_factory = 2920 media_renderer_factory =
2906 base::MakeUnique<media::remoting::AdaptiveRendererFactory>( 2921 base::MakeUnique<media::remoting::AdaptiveRendererFactory>(
2907 std::move(media_renderer_factory), std::move(remoting_controller)); 2922 std::move(media_renderer_factory), std::move(remoting_controller));
2908 #endif 2923 #endif
2909 2924
2910 if (!url_index_.get() || url_index_->frame() != frame_) 2925 if (!url_index_.get() || url_index_->frame() != frame_)
2911 url_index_.reset(new media::UrlIndex(frame_)); 2926 url_index_.reset(new media::UrlIndex(frame_));
2912 2927
2913 media::WebMediaPlayerImpl* media_player = new media::WebMediaPlayerImpl( 2928 media::WebMediaPlayerImpl* media_player = new media::WebMediaPlayerImpl(
2914 frame_, client, encrypted_client, GetWebMediaPlayerDelegate(), 2929 frame_, client, encrypted_client, GetWebMediaPlayerDelegate(),
2915 std::move(media_renderer_factory), url_index_, params); 2930 std::move(media_demuxer_factory), std::move(media_renderer_factory),
2931 url_index_, params);
2916 2932
2917 #if defined(OS_ANDROID) // WMPI_CAST 2933 #if defined(OS_ANDROID) // WMPI_CAST
2918 media_player->SetMediaPlayerManager(GetMediaPlayerManager()); 2934 media_player->SetMediaPlayerManager(GetMediaPlayerManager());
2919 media_player->SetDeviceScaleFactor(render_view_->GetDeviceScaleFactor()); 2935 media_player->SetDeviceScaleFactor(render_view_->GetDeviceScaleFactor());
2920 media_player->SetUseFallbackPath(use_fallback_path); 2936 media_player->SetUseFallbackPath(use_fallback_path);
2921 #endif // defined(OS_ANDROID) 2937 #endif // defined(OS_ANDROID)
2922 2938
2923 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) 2939 #if BUILDFLAG(ENABLE_MEDIA_REMOTING)
2924 remoting_controller_ptr->SetSwitchRendererCallback(base::Bind( 2940 remoting_controller_ptr->SetSwitchRendererCallback(base::Bind(
2925 &media::WebMediaPlayerImpl::ScheduleRestart, media_player->AsWeakPtr())); 2941 &media::WebMediaPlayerImpl::ScheduleRestart, media_player->AsWeakPtr()));
(...skipping 3883 matching lines...) Expand 10 before | Expand all | Expand 10 after
6809 // event target. Potentially a Pepper plugin will receive the event. 6825 // event target. Potentially a Pepper plugin will receive the event.
6810 // In order to tell whether a plugin gets the last mouse event and which it 6826 // In order to tell whether a plugin gets the last mouse event and which it
6811 // is, we set |pepper_last_mouse_event_target_| to null here. If a plugin gets 6827 // is, we set |pepper_last_mouse_event_target_| to null here. If a plugin gets
6812 // the event, it will notify us via DidReceiveMouseEvent() and set itself as 6828 // the event, it will notify us via DidReceiveMouseEvent() and set itself as
6813 // |pepper_last_mouse_event_target_|. 6829 // |pepper_last_mouse_event_target_|.
6814 pepper_last_mouse_event_target_ = nullptr; 6830 pepper_last_mouse_event_target_ = nullptr;
6815 #endif 6831 #endif
6816 } 6832 }
6817 6833
6818 } // namespace content 6834 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/media_interface_provider.cc ('k') | media/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698