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

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

Issue 2822353003: Simplify RFI::CreateMediaPlayer (Closed)
Patch Set: Created 3 years, 8 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 | « no previous file | no next file » | 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 2909 matching lines...) Expand 10 before | Expand all | Expand 10 after
2920 render_thread->compositor_task_runner(), 2920 render_thread->compositor_task_runner(),
2921 std::move(mojo_media_player_renderer_factory), 2921 std::move(mojo_media_player_renderer_factory),
2922 base::Bind(&StreamTextureWrapperImpl::Create, 2922 base::Bind(&StreamTextureWrapperImpl::Create,
2923 render_thread->EnableStreamTextureCopy(), 2923 render_thread->EnableStreamTextureCopy(),
2924 render_thread->GetStreamTexureFactory(), 2924 render_thread->GetStreamTexureFactory(),
2925 base::ThreadTaskRunnerHandle::Get()))); 2925 base::ThreadTaskRunnerHandle::Get())));
2926 2926
2927 factory_selector->SetUseMediaPlayer(UseMediaPlayerRenderer(url)); 2927 factory_selector->SetUseMediaPlayer(UseMediaPlayerRenderer(url));
2928 #endif // defined(OS_ANDROID) 2928 #endif // defined(OS_ANDROID)
2929 2929
2930 std::unique_ptr<media::RendererFactory> media_renderer_factory; 2930 bool use_mojo_renderer_factory = false;
2931 media::RendererFactorySelector::FactoryType factory_type;
2932
2933 #if defined(ENABLE_MOJO_RENDERER) 2931 #if defined(ENABLE_MOJO_RENDERER)
2934 #if BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION) 2932 #if BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION)
2935 if (base::CommandLine::ForCurrentProcess()->HasSwitch( 2933 use_mojo_renderer_factory =
2936 switches::kDisableMojoRenderer)) { 2934 !base::CommandLine::ForCurrentProcess()->HasSwitch(
2937 media_renderer_factory = base::MakeUnique<media::DefaultRendererFactory>( 2935 switches::kDisableMojoRenderer);
2938 media_log, GetDecoderFactory(), 2936 #else
2939 base::Bind(&RenderThreadImpl::GetGpuFactories, 2937 use_mojo_renderer_factory = true;
2940 base::Unretained(render_thread))); 2938 #endif // BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION)
2939 if (use_mojo_renderer_factory) {
2940 factory_selector->AddFactory(
2941 media::RendererFactorySelector::FactoryType::MOJO,
2942 base::MakeUnique<media::MojoRendererFactory>(
2943 base::Bind(&RenderThreadImpl::GetGpuFactories,
2944 base::Unretained(render_thread)),
2945 GetMediaInterfaceProvider()));
2946 }
2947 #endif // defined(ENABLE_MOJO_RENDERER)
2941 2948
2942 factory_type = media::RendererFactorySelector::FactoryType::DEFAULT; 2949 if (!use_mojo_renderer_factory) {
2950 factory_selector->AddFactory(
2951 media::RendererFactorySelector::FactoryType::DEFAULT,
2952 base::MakeUnique<media::DefaultRendererFactory>(
2953 media_log, GetDecoderFactory(),
2954 base::Bind(&RenderThreadImpl::GetGpuFactories,
2955 base::Unretained(render_thread))));
2943 } 2956 }
2944 #endif // BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION)
2945 if (!media_renderer_factory) {
2946 media_renderer_factory = base::MakeUnique<media::MojoRendererFactory>(
2947 base::Bind(&RenderThreadImpl::GetGpuFactories,
2948 base::Unretained(render_thread)),
2949 GetMediaInterfaceProvider());
2950
2951 factory_type = media::RendererFactorySelector::FactoryType::MOJO;
2952 }
2953 #else
2954 media_renderer_factory = base::MakeUnique<media::DefaultRendererFactory>(
2955 media_log, GetDecoderFactory(),
2956 base::Bind(&RenderThreadImpl::GetGpuFactories,
2957 base::Unretained(render_thread)));
2958
2959 factory_type = media::RendererFactorySelector::FactoryType::DEFAULT;
2960 #endif // defined(ENABLE_MOJO_RENDERER)
2961 2957
2962 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) 2958 #if BUILDFLAG(ENABLE_MEDIA_REMOTING)
2963 auto* const remoting_controller_ptr = remoting_controller.get(); 2959 auto* const remoting_controller_ptr = remoting_controller.get();
2964 2960
2965 auto courier_factory = 2961 auto courier_factory =
2966 base::MakeUnique<media::remoting::CourierRendererFactory>( 2962 base::MakeUnique<media::remoting::CourierRendererFactory>(
2967 std::move(remoting_controller)); 2963 std::move(remoting_controller));
2968 2964
2969 // base::Unretained is safe here because |factory_selector_| owns 2965 // base::Unretained is safe here because |factory_selector_| owns
2970 // |courier_factory|. 2966 // |courier_factory|.
2971 factory_selector->SetUseCourierCB(base::Bind( 2967 factory_selector->SetUseCourierCB(base::Bind(
2972 &media::remoting::CourierRendererFactory::ShouldCreateCourierRenderer, 2968 &media::remoting::CourierRendererFactory::ShouldCreateCourierRenderer,
2973 base::Unretained(courier_factory.get()))); 2969 base::Unretained(courier_factory.get())));
2974 2970
2975 factory_selector->AddFactory( 2971 factory_selector->AddFactory(
2976 media::RendererFactorySelector::FactoryType::COURIER, 2972 media::RendererFactorySelector::FactoryType::COURIER,
2977 std::move(courier_factory)); 2973 std::move(courier_factory));
2978 #endif 2974 #endif
2979 2975
2980 if (!url_index_.get() || url_index_->frame() != frame_) 2976 if (!url_index_.get() || url_index_->frame() != frame_)
2981 url_index_.reset(new media::UrlIndex(frame_)); 2977 url_index_.reset(new media::UrlIndex(frame_));
2982 2978
2983 factory_selector->AddFactory(factory_type, std::move(media_renderer_factory));
2984 factory_selector->SetBaseFactoryType(factory_type);
2985
2986 media::WebMediaPlayerImpl* media_player = new media::WebMediaPlayerImpl( 2979 media::WebMediaPlayerImpl* media_player = new media::WebMediaPlayerImpl(
2987 frame_, client, encrypted_client, GetWebMediaPlayerDelegate(), 2980 frame_, client, encrypted_client, GetWebMediaPlayerDelegate(),
2988 std::move(factory_selector), url_index_, params); 2981 std::move(factory_selector), url_index_, params);
2989 2982
2990 #if defined(OS_ANDROID) // WMPI_CAST 2983 #if defined(OS_ANDROID) // WMPI_CAST
2991 media_player->SetMediaPlayerManager(GetMediaPlayerManager()); 2984 media_player->SetMediaPlayerManager(GetMediaPlayerManager());
2992 media_player->SetDeviceScaleFactor(render_view_->GetDeviceScaleFactor()); 2985 media_player->SetDeviceScaleFactor(render_view_->GetDeviceScaleFactor());
2993 #endif // defined(OS_ANDROID) 2986 #endif // defined(OS_ANDROID)
2994 2987
2995 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) 2988 #if BUILDFLAG(ENABLE_MEDIA_REMOTING)
(...skipping 4021 matching lines...) Expand 10 before | Expand all | Expand 10 after
7017 policy(info.default_policy), 7010 policy(info.default_policy),
7018 replaces_current_history_item(info.replaces_current_history_item), 7011 replaces_current_history_item(info.replaces_current_history_item),
7019 history_navigation_in_new_child_frame( 7012 history_navigation_in_new_child_frame(
7020 info.is_history_navigation_in_new_child_frame), 7013 info.is_history_navigation_in_new_child_frame),
7021 client_redirect(info.is_client_redirect), 7014 client_redirect(info.is_client_redirect),
7022 cache_disabled(info.is_cache_disabled), 7015 cache_disabled(info.is_cache_disabled),
7023 form(info.form), 7016 form(info.form),
7024 source_location(info.source_location) {} 7017 source_location(info.source_location) {}
7025 7018
7026 } // namespace content 7019 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698