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

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

Issue 2822353003: Simplify RFI::CreateMediaPlayer (Closed)
Patch Set: Rebase Created 3 years, 7 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 2900 matching lines...) Expand 10 before | Expand all | Expand 10 after
2911 render_thread->compositor_task_runner(), 2911 render_thread->compositor_task_runner(),
2912 std::move(mojo_media_player_renderer_factory), 2912 std::move(mojo_media_player_renderer_factory),
2913 base::Bind(&StreamTextureWrapperImpl::Create, 2913 base::Bind(&StreamTextureWrapperImpl::Create,
2914 render_thread->EnableStreamTextureCopy(), 2914 render_thread->EnableStreamTextureCopy(),
2915 render_thread->GetStreamTexureFactory(), 2915 render_thread->GetStreamTexureFactory(),
2916 base::ThreadTaskRunnerHandle::Get()))); 2916 base::ThreadTaskRunnerHandle::Get())));
2917 2917
2918 factory_selector->SetUseMediaPlayer(UseMediaPlayerRenderer(url)); 2918 factory_selector->SetUseMediaPlayer(UseMediaPlayerRenderer(url));
2919 #endif // defined(OS_ANDROID) 2919 #endif // defined(OS_ANDROID)
2920 2920
2921 // |factory_type| will be overwritten in all possible path below, and the 2921 bool use_mojo_renderer_factory = false;
2922 // DEFAULT value is not accurate. However, this prevents the compiler from
2923 // issuing a -Wsometimes-uninitialized warning.
2924 // TODO(tguilbert): Remove |factory_type|, and clean up the logic. The work is
2925 // already completed and incrementally being submitted. See crbug.com/663503.
2926 auto factory_type = media::RendererFactorySelector::FactoryType::DEFAULT;
2927 std::unique_ptr<media::RendererFactory> media_renderer_factory;
2928
2929 #if defined(ENABLE_MOJO_RENDERER) 2922 #if defined(ENABLE_MOJO_RENDERER)
2930 #if BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION) 2923 #if BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION)
2931 if (base::CommandLine::ForCurrentProcess()->HasSwitch( 2924 use_mojo_renderer_factory =
2932 switches::kDisableMojoRenderer)) { 2925 !base::CommandLine::ForCurrentProcess()->HasSwitch(
2933 media_renderer_factory = base::MakeUnique<media::DefaultRendererFactory>( 2926 switches::kDisableMojoRenderer);
2934 media_log.get(), GetDecoderFactory(), 2927 #else
2935 base::Bind(&RenderThreadImpl::GetGpuFactories, 2928 use_mojo_renderer_factory = true;
2936 base::Unretained(render_thread))); 2929 #endif // BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION)
2930 if (use_mojo_renderer_factory) {
2931 factory_selector->AddFactory(
2932 media::RendererFactorySelector::FactoryType::MOJO,
2933 base::MakeUnique<media::MojoRendererFactory>(
2934 base::Bind(&RenderThreadImpl::GetGpuFactories,
2935 base::Unretained(render_thread)),
2936 GetMediaInterfaceProvider()));
2937 }
2938 #endif // defined(ENABLE_MOJO_RENDERER)
2937 2939
2938 factory_type = media::RendererFactorySelector::FactoryType::DEFAULT; 2940 if (!use_mojo_renderer_factory) {
2941 factory_selector->AddFactory(
2942 media::RendererFactorySelector::FactoryType::DEFAULT,
2943 base::MakeUnique<media::DefaultRendererFactory>(
2944 media_log, GetDecoderFactory(),
2945 base::Bind(&RenderThreadImpl::GetGpuFactories,
2946 base::Unretained(render_thread))));
2939 } 2947 }
2940 #endif // BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION)
2941 if (!media_renderer_factory) {
2942 media_renderer_factory = base::MakeUnique<media::MojoRendererFactory>(
2943 base::Bind(&RenderThreadImpl::GetGpuFactories,
2944 base::Unretained(render_thread)),
2945 GetMediaInterfaceProvider());
2946
2947 factory_type = media::RendererFactorySelector::FactoryType::MOJO;
2948 }
2949 #else
2950 media_renderer_factory = base::MakeUnique<media::DefaultRendererFactory>(
2951 media_log.get(), GetDecoderFactory(),
2952 base::Bind(&RenderThreadImpl::GetGpuFactories,
2953 base::Unretained(render_thread)));
2954
2955 factory_type = media::RendererFactorySelector::FactoryType::DEFAULT;
2956 #endif // defined(ENABLE_MOJO_RENDERER)
2957 2948
2958 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) 2949 #if BUILDFLAG(ENABLE_MEDIA_REMOTING)
2959 auto courier_factory = 2950 auto courier_factory =
2960 base::MakeUnique<media::remoting::CourierRendererFactory>( 2951 base::MakeUnique<media::remoting::CourierRendererFactory>(
2961 std::move(remoting_controller)); 2952 std::move(remoting_controller));
2962 2953
2963 // base::Unretained is safe here because |factory_selector| owns 2954 // base::Unretained is safe here because |factory_selector| owns
2964 // |courier_factory|. 2955 // |courier_factory|.
2965 factory_selector->SetQueryIsRemotingActiveCB( 2956 factory_selector->SetQueryIsRemotingActiveCB(
2966 base::Bind(&media::remoting::CourierRendererFactory::IsRemotingActive, 2957 base::Bind(&media::remoting::CourierRendererFactory::IsRemotingActive,
2967 base::Unretained(courier_factory.get()))); 2958 base::Unretained(courier_factory.get())));
2968 2959
2969 factory_selector->AddFactory( 2960 factory_selector->AddFactory(
2970 media::RendererFactorySelector::FactoryType::COURIER, 2961 media::RendererFactorySelector::FactoryType::COURIER,
2971 std::move(courier_factory)); 2962 std::move(courier_factory));
2972 #endif 2963 #endif
2973 2964
2974 if (!url_index_.get() || url_index_->frame() != frame_) 2965 if (!url_index_.get() || url_index_->frame() != frame_)
2975 url_index_.reset(new media::UrlIndex(frame_)); 2966 url_index_.reset(new media::UrlIndex(frame_));
2976 2967
2977 factory_selector->AddFactory(factory_type, std::move(media_renderer_factory));
2978 factory_selector->SetBaseFactoryType(factory_type);
ncarter (slow) 2017/05/03 23:25:32 Is it no longer necessary to call SetBaseFactoryTy
tguilbert 2017/05/03 23:29:05 It is! Thank you for catching this!
2979
2980 std::unique_ptr<media::WebMediaPlayerParams> params( 2968 std::unique_ptr<media::WebMediaPlayerParams> params(
2981 new media::WebMediaPlayerParams( 2969 new media::WebMediaPlayerParams(
2982 std::move(media_log), 2970 std::move(media_log),
2983 base::Bind(&ContentRendererClient::DeferMediaLoad, 2971 base::Bind(&ContentRendererClient::DeferMediaLoad,
2984 base::Unretained(GetContentClient()->renderer()), 2972 base::Unretained(GetContentClient()->renderer()),
2985 static_cast<RenderFrame*>(this), 2973 static_cast<RenderFrame*>(this),
2986 GetWebMediaPlayerDelegate()->has_played_media()), 2974 GetWebMediaPlayerDelegate()->has_played_media()),
2987 audio_renderer_sink, render_thread->GetMediaThreadTaskRunner(), 2975 audio_renderer_sink, render_thread->GetMediaThreadTaskRunner(),
2988 render_thread->GetWorkerTaskRunner(), 2976 render_thread->GetWorkerTaskRunner(),
2989 render_thread->compositor_task_runner(), context_3d_cb, 2977 render_thread->compositor_task_runner(), context_3d_cb,
(...skipping 4086 matching lines...) Expand 10 before | Expand all | Expand 10 after
7076 policy(info.default_policy), 7064 policy(info.default_policy),
7077 replaces_current_history_item(info.replaces_current_history_item), 7065 replaces_current_history_item(info.replaces_current_history_item),
7078 history_navigation_in_new_child_frame( 7066 history_navigation_in_new_child_frame(
7079 info.is_history_navigation_in_new_child_frame), 7067 info.is_history_navigation_in_new_child_frame),
7080 client_redirect(info.is_client_redirect), 7068 client_redirect(info.is_client_redirect),
7081 cache_disabled(info.is_cache_disabled), 7069 cache_disabled(info.is_cache_disabled),
7082 form(info.form), 7070 form(info.form),
7083 source_location(info.source_location) {} 7071 source_location(info.source_location) {}
7084 7072
7085 } // namespace content 7073 } // 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