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

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

Issue 1230793009: Initial support for the desktop media pipeline on Android. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 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
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 9
10 #include "base/auto_reset.h" 10 #include "base/auto_reset.h"
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 162
163 #if defined(OS_ANDROID) 163 #if defined(OS_ANDROID)
164 #include <cpu-features.h> 164 #include <cpu-features.h>
165 165
166 #include "content/common/gpu/client/context_provider_command_buffer.h" 166 #include "content/common/gpu/client/context_provider_command_buffer.h"
167 #include "content/renderer/android/synchronous_compositor_factory.h" 167 #include "content/renderer/android/synchronous_compositor_factory.h"
168 #include "content/renderer/java/gin_java_bridge_dispatcher.h" 168 #include "content/renderer/java/gin_java_bridge_dispatcher.h"
169 #include "content/renderer/media/android/renderer_media_player_manager.h" 169 #include "content/renderer/media/android/renderer_media_player_manager.h"
170 #include "content/renderer/media/android/stream_texture_factory_impl.h" 170 #include "content/renderer/media/android/stream_texture_factory_impl.h"
171 #include "content/renderer/media/android/webmediaplayer_android.h" 171 #include "content/renderer/media/android/webmediaplayer_android.h"
172 #include "media/base/media_switches.h"
172 #else 173 #else
173 #include "cc/blink/context_provider_web_context.h" 174 #include "cc/blink/context_provider_web_context.h"
174 #endif 175 #endif
175 176
176 #if defined(ENABLE_PEPPER_CDMS) 177 #if defined(ENABLE_PEPPER_CDMS)
177 #include "content/renderer/media/crypto/pepper_cdm_wrapper_impl.h" 178 #include "content/renderer/media/crypto/pepper_cdm_wrapper_impl.h"
178 #elif defined(ENABLE_BROWSER_CDMS) 179 #elif defined(ENABLE_BROWSER_CDMS)
179 #include "content/renderer/media/crypto/renderer_cdm_manager.h" 180 #include "content/renderer/media/crypto/renderer_cdm_manager.h"
180 #endif 181 #endif
181 182
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after
486 base::TimeTicks() + base::TimeDelta::FromSecondsD(request->uiStartTime()); 487 base::TimeTicks() + base::TimeDelta::FromSecondsD(request->uiStartTime());
487 FrameMsg_UILoadMetricsReportType::Value report_type = 488 FrameMsg_UILoadMetricsReportType::Value report_type =
488 static_cast<FrameMsg_UILoadMetricsReportType::Value>( 489 static_cast<FrameMsg_UILoadMetricsReportType::Value>(
489 request->inputPerfMetricReportPolicy()); 490 request->inputPerfMetricReportPolicy());
490 return CommonNavigationParams(request->url(), referrer, 491 return CommonNavigationParams(request->url(), referrer,
491 extra_data->transition_type(), 492 extra_data->transition_type(),
492 FrameMsg_Navigate_Type::NORMAL, true, 493 FrameMsg_Navigate_Type::NORMAL, true,
493 ui_timestamp, report_type, GURL(), GURL()); 494 ui_timestamp, report_type, GURL(), GURL());
494 } 495 }
495 496
496 #if !defined(OS_ANDROID) 497 #if !defined(OS_ANDROID) || defined(ENABLE_MEDIA_PIPELINE_ON_ANDROID)
497 media::Context3D GetSharedMainThreadContext3D() { 498 media::Context3D GetSharedMainThreadContext3D() {
498 cc::ContextProvider* provider = 499 cc::ContextProvider* provider =
499 RenderThreadImpl::current()->SharedMainThreadContextProvider().get(); 500 RenderThreadImpl::current()->SharedMainThreadContextProvider().get();
500 if (!provider) 501 if (!provider)
501 return media::Context3D(); 502 return media::Context3D();
502 return media::Context3D(provider->ContextGL(), provider->GrContext()); 503 return media::Context3D(provider->ContextGL(), provider->GrContext());
503 } 504 }
504 #endif 505 #endif
505 506
506 bool IsReload(FrameMsg_Navigate_Type::Value navigation_type) { 507 bool IsReload(FrameMsg_Navigate_Type::Value navigation_type) {
(...skipping 1460 matching lines...) Expand 10 before | Expand all | Expand 10 after
1967 render_view_->RegisterVideoHoleFrame(this); 1968 render_view_->RegisterVideoHoleFrame(this);
1968 contains_media_player_ = true; 1969 contains_media_player_ = true;
1969 } 1970 }
1970 #endif // defined(VIDEO_HOLE) 1971 #endif // defined(VIDEO_HOLE)
1971 1972
1972 blink::WebMediaStream web_stream( 1973 blink::WebMediaStream web_stream(
1973 blink::WebMediaStreamRegistry::lookupMediaStreamDescriptor(url)); 1974 blink::WebMediaStreamRegistry::lookupMediaStreamDescriptor(url));
1974 if (!web_stream.isNull()) 1975 if (!web_stream.isNull())
1975 return CreateWebMediaPlayerForMediaStream(client); 1976 return CreateWebMediaPlayerForMediaStream(client);
1976 1977
1977 #if defined(OS_ANDROID) 1978 #if defined(OS_ANDROID) && defined(ENABLE_MEDIA_PIPELINE_ON_ANDROID)
liberato (no reviews please) 2015/07/10 17:15:09 I think that this can simplify slightly to: #if d
xhwang 2015/07/10 17:27:50 Hmm, it's sad to see "return WMPA" twice. Actuall
liberato (no reviews please) 2015/07/10 17:32:07 i agree about the sad. i tried to restructure thi
watk 2015/07/10 18:51:25 Removed
1979 if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
1980 switches::kEnableMediaPipelineOnAndroid)) {
1981 return CreateAndroidWebMediaPlayer(client, GetMediaPermission(),
1982 initial_cdm);
1983 }
1984 #elif defined(OS_ANDROID)
1978 return CreateAndroidWebMediaPlayer(client, GetMediaPermission(), initial_cdm); 1985 return CreateAndroidWebMediaPlayer(client, GetMediaPermission(), initial_cdm);
1979 #else 1986 #endif
1987
1988 #if !defined(OS_ANDROID) || defined(ENABLE_MEDIA_PIPELINE_ON_ANDROID)
1980 scoped_refptr<media::MediaLog> media_log(new RenderMediaLog()); 1989 scoped_refptr<media::MediaLog> media_log(new RenderMediaLog());
1981 1990
1982 RenderThreadImpl* render_thread = RenderThreadImpl::current(); 1991 RenderThreadImpl* render_thread = RenderThreadImpl::current();
1983 media::WebMediaPlayerParams params( 1992 media::WebMediaPlayerParams params(
1984 base::Bind(&ContentRendererClient::DeferMediaLoad, 1993 base::Bind(&ContentRendererClient::DeferMediaLoad,
1985 base::Unretained(GetContentClient()->renderer()), 1994 base::Unretained(GetContentClient()->renderer()),
1986 static_cast<RenderFrame*>(this)), 1995 static_cast<RenderFrame*>(this)),
1987 render_thread->GetAudioRendererMixerManager()->CreateInput(routing_id_), 1996 render_thread->GetAudioRendererMixerManager()->CreateInput(routing_id_),
1988 media_log, render_thread->GetMediaThreadTaskRunner(), 1997 media_log, render_thread->GetMediaThreadTaskRunner(),
1989 render_thread->compositor_task_runner(), 1998 render_thread->compositor_task_runner(),
(...skipping 11 matching lines...) Expand all
2001 if (!media_renderer_factory.get()) { 2010 if (!media_renderer_factory.get()) {
2002 media_renderer_factory.reset(new media::DefaultRendererFactory( 2011 media_renderer_factory.reset(new media::DefaultRendererFactory(
2003 media_log, render_thread->GetGpuFactories(), 2012 media_log, render_thread->GetGpuFactories(),
2004 *render_thread->GetAudioHardwareConfig())); 2013 *render_thread->GetAudioHardwareConfig()));
2005 } 2014 }
2006 #endif // defined(ENABLE_MOJO_MEDIA) 2015 #endif // defined(ENABLE_MOJO_MEDIA)
2007 2016
2008 return new media::WebMediaPlayerImpl( 2017 return new media::WebMediaPlayerImpl(
2009 frame, client, weak_factory_.GetWeakPtr(), media_renderer_factory.Pass(), 2018 frame, client, weak_factory_.GetWeakPtr(), media_renderer_factory.Pass(),
2010 GetCdmFactory(), params); 2019 GetCdmFactory(), params);
2011 #endif // defined(OS_ANDROID) 2020 #endif // !defined(OS_ANDROID) || defined(ENABLE_MEDIA_PIPELINE_ON_ANDROID)
2012 } 2021 }
2013 2022
2014 blink::WebApplicationCacheHost* RenderFrameImpl::createApplicationCacheHost( 2023 blink::WebApplicationCacheHost* RenderFrameImpl::createApplicationCacheHost(
2015 blink::WebLocalFrame* frame, 2024 blink::WebLocalFrame* frame,
2016 blink::WebApplicationCacheHostClient* client) { 2025 blink::WebApplicationCacheHostClient* client) {
2017 if (!frame || !frame->view()) 2026 if (!frame || !frame->view())
2018 return NULL; 2027 return NULL;
2019 DCHECK(!frame_ || frame_ == frame); 2028 DCHECK(!frame_ || frame_ == frame);
2020 return new RendererWebApplicationCacheHostImpl( 2029 return new RendererWebApplicationCacheHostImpl(
2021 RenderViewImpl::FromWebView(frame->view()), client, 2030 RenderViewImpl::FromWebView(frame->view()), client,
(...skipping 2988 matching lines...) Expand 10 before | Expand all | Expand 10 after
5010 void RenderFrameImpl::RegisterMojoServices() { 5019 void RenderFrameImpl::RegisterMojoServices() {
5011 // Only main frame have ImageDownloader service. 5020 // Only main frame have ImageDownloader service.
5012 if (!frame_->parent()) { 5021 if (!frame_->parent()) {
5013 GetServiceRegistry()->AddService<image_downloader::ImageDownloader>( 5022 GetServiceRegistry()->AddService<image_downloader::ImageDownloader>(
5014 base::Bind(&ImageDownloaderImpl::CreateMojoService, 5023 base::Bind(&ImageDownloaderImpl::CreateMojoService,
5015 base::Unretained(this))); 5024 base::Unretained(this)));
5016 } 5025 }
5017 } 5026 }
5018 5027
5019 } // namespace content 5028 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698