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

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

Issue 594713002: Pass initial CDM to CreateMediaPlayer() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fixes for android + mojo Created 6 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/renderer/render_frame_impl.h ('k') | media/blink/encrypted_media_player_support.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 9
10 #include "base/auto_reset.h" 10 #include "base/auto_reset.h"
(...skipping 1585 matching lines...) Expand 10 before | Expand all | Expand 10 after
1596 return CreatePlugin(frame, info, params_to_use); 1596 return CreatePlugin(frame, info, params_to_use);
1597 #else 1597 #else
1598 return NULL; 1598 return NULL;
1599 #endif // defined(ENABLE_PLUGINS) 1599 #endif // defined(ENABLE_PLUGINS)
1600 } 1600 }
1601 1601
1602 blink::WebMediaPlayer* RenderFrameImpl::createMediaPlayer( 1602 blink::WebMediaPlayer* RenderFrameImpl::createMediaPlayer(
1603 blink::WebLocalFrame* frame, 1603 blink::WebLocalFrame* frame,
1604 const blink::WebURL& url, 1604 const blink::WebURL& url,
1605 blink::WebMediaPlayerClient* client) { 1605 blink::WebMediaPlayerClient* client) {
1606 return createMediaPlayer(frame, url, client, NULL);
1607 }
1608
1609 blink::WebMediaPlayer* RenderFrameImpl::createMediaPlayer(
1610 blink::WebLocalFrame* frame,
1611 const blink::WebURL& url,
1612 blink::WebMediaPlayerClient* client,
1613 blink::WebContentDecryptionModule* initial_cdm) {
1606 #if defined(VIDEO_HOLE) 1614 #if defined(VIDEO_HOLE)
1607 if (!contains_media_player_) { 1615 if (!contains_media_player_) {
1608 render_view_->RegisterVideoHoleFrame(this); 1616 render_view_->RegisterVideoHoleFrame(this);
1609 contains_media_player_ = true; 1617 contains_media_player_ = true;
1610 } 1618 }
1611 #endif // defined(VIDEO_HOLE) 1619 #endif // defined(VIDEO_HOLE)
1612 1620
1613 blink::WebMediaStream web_stream( 1621 blink::WebMediaStream web_stream(
1614 blink::WebMediaStreamRegistry::lookupMediaStreamDescriptor(url)); 1622 blink::WebMediaStreamRegistry::lookupMediaStreamDescriptor(url));
1615 if (!web_stream.isNull()) 1623 if (!web_stream.isNull())
1616 return CreateWebMediaPlayerForMediaStream(url, client); 1624 return CreateWebMediaPlayerForMediaStream(url, client);
1617 1625
1618 #if defined(OS_ANDROID) 1626 #if defined(OS_ANDROID)
1619 return CreateAndroidWebMediaPlayer(url, client); 1627 return CreateAndroidWebMediaPlayer(url, client, initial_cdm);
1620 #else 1628 #else
1621 RenderThreadImpl* render_thread = RenderThreadImpl::current(); 1629 RenderThreadImpl* render_thread = RenderThreadImpl::current();
1622 media::WebMediaPlayerParams params( 1630 media::WebMediaPlayerParams params(
1623 base::Bind(&ContentRendererClient::DeferMediaLoad, 1631 base::Bind(&ContentRendererClient::DeferMediaLoad,
1624 base::Unretained(GetContentClient()->renderer()), 1632 base::Unretained(GetContentClient()->renderer()),
1625 static_cast<RenderFrame*>(this)), 1633 static_cast<RenderFrame*>(this)),
1626 render_thread->GetAudioRendererMixerManager()->CreateInput( 1634 render_thread->GetAudioRendererMixerManager()->CreateInput(
1627 render_view_->routing_id_, routing_id_), 1635 render_view_->routing_id_, routing_id_),
1628 *render_thread->GetAudioHardwareConfig(), 1636 *render_thread->GetAudioHardwareConfig(),
1629 new RenderMediaLog(), 1637 new RenderMediaLog(),
1630 render_thread->GetGpuFactories(), 1638 render_thread->GetGpuFactories(),
1631 render_thread->GetMediaThreadTaskRunner(), 1639 render_thread->GetMediaThreadTaskRunner(),
1632 render_thread->compositor_message_loop_proxy(), 1640 render_thread->compositor_message_loop_proxy(),
1633 base::Bind(&EncryptedMediaPlayerSupportImpl::Create)); 1641 base::Bind(&EncryptedMediaPlayerSupportImpl::Create),
1642 initial_cdm);
1634 return new media::WebMediaPlayerImpl(frame, 1643 return new media::WebMediaPlayerImpl(frame,
1635 client, 1644 client,
1636 weak_factory_.GetWeakPtr(), 1645 weak_factory_.GetWeakPtr(),
1637 params); 1646 params);
1638 #endif // defined(OS_ANDROID) 1647 #endif // defined(OS_ANDROID)
1639 } 1648 }
1640 1649
1641 blink::WebContentDecryptionModule* 1650 blink::WebContentDecryptionModule*
1642 RenderFrameImpl::createContentDecryptionModule( 1651 RenderFrameImpl::createContentDecryptionModule(
1643 blink::WebLocalFrame* frame, 1652 blink::WebLocalFrame* frame,
(...skipping 2224 matching lines...) Expand 10 before | Expand all | Expand 10 after
3868 if (ds->hasUnreachableURL()) 3877 if (ds->hasUnreachableURL())
3869 return ds->unreachableURL(); 3878 return ds->unreachableURL();
3870 3879
3871 const WebURLRequest& request = ds->request(); 3880 const WebURLRequest& request = ds->request();
3872 return request.url(); 3881 return request.url();
3873 } 3882 }
3874 3883
3875 #if defined(OS_ANDROID) 3884 #if defined(OS_ANDROID)
3876 3885
3877 WebMediaPlayer* RenderFrameImpl::CreateAndroidWebMediaPlayer( 3886 WebMediaPlayer* RenderFrameImpl::CreateAndroidWebMediaPlayer(
3878 const blink::WebURL& url, 3887 const blink::WebURL& url,
3879 WebMediaPlayerClient* client) { 3888 WebMediaPlayerClient* client,
3889 blink::WebContentDecryptionModule* initial_cdm) {
3880 GpuChannelHost* gpu_channel_host = 3890 GpuChannelHost* gpu_channel_host =
3881 RenderThreadImpl::current()->EstablishGpuChannelSync( 3891 RenderThreadImpl::current()->EstablishGpuChannelSync(
3882 CAUSE_FOR_GPU_LAUNCH_VIDEODECODEACCELERATOR_INITIALIZE); 3892 CAUSE_FOR_GPU_LAUNCH_VIDEODECODEACCELERATOR_INITIALIZE);
3883 if (!gpu_channel_host) { 3893 if (!gpu_channel_host) {
3884 LOG(ERROR) << "Failed to establish GPU channel for media player"; 3894 LOG(ERROR) << "Failed to establish GPU channel for media player";
3885 return NULL; 3895 return NULL;
3886 } 3896 }
3887 3897
3888 scoped_refptr<StreamTextureFactory> stream_texture_factory; 3898 scoped_refptr<StreamTextureFactory> stream_texture_factory;
3889 if (SynchronousCompositorFactory* factory = 3899 if (SynchronousCompositorFactory* factory =
(...skipping 11 matching lines...) Expand all
3901 stream_texture_factory = StreamTextureFactoryImpl::Create( 3911 stream_texture_factory = StreamTextureFactoryImpl::Create(
3902 context_provider, gpu_channel_host, routing_id_); 3912 context_provider, gpu_channel_host, routing_id_);
3903 } 3913 }
3904 3914
3905 return new WebMediaPlayerAndroid( 3915 return new WebMediaPlayerAndroid(
3906 frame_, 3916 frame_,
3907 client, 3917 client,
3908 weak_factory_.GetWeakPtr(), 3918 weak_factory_.GetWeakPtr(),
3909 GetMediaPlayerManager(), 3919 GetMediaPlayerManager(),
3910 GetCdmManager(), 3920 GetCdmManager(),
3921 initial_cdm,
3911 stream_texture_factory, 3922 stream_texture_factory,
3912 RenderThreadImpl::current()->GetMediaThreadTaskRunner(), 3923 RenderThreadImpl::current()->GetMediaThreadTaskRunner(),
3913 new RenderMediaLog()); 3924 new RenderMediaLog());
3914 } 3925 }
3915 3926
3916 RendererMediaPlayerManager* RenderFrameImpl::GetMediaPlayerManager() { 3927 RendererMediaPlayerManager* RenderFrameImpl::GetMediaPlayerManager() {
3917 if (!media_player_manager_) 3928 if (!media_player_manager_)
3918 media_player_manager_ = new RendererMediaPlayerManager(this); 3929 media_player_manager_ = new RendererMediaPlayerManager(this);
3919 return media_player_manager_; 3930 return media_player_manager_;
3920 } 3931 }
3921 3932
3922 #endif // defined(OS_ANDROID) 3933 #endif // defined(OS_ANDROID)
3923 3934
3924 #if defined(ENABLE_BROWSER_CDMS) 3935 #if defined(ENABLE_BROWSER_CDMS)
3925 RendererCdmManager* RenderFrameImpl::GetCdmManager() { 3936 RendererCdmManager* RenderFrameImpl::GetCdmManager() {
3926 if (!cdm_manager_) 3937 if (!cdm_manager_)
3927 cdm_manager_ = new RendererCdmManager(this); 3938 cdm_manager_ = new RendererCdmManager(this);
3928 return cdm_manager_; 3939 return cdm_manager_;
3929 } 3940 }
3930 #endif // defined(ENABLE_BROWSER_CDMS) 3941 #endif // defined(ENABLE_BROWSER_CDMS)
3931 3942
3932 } // namespace content 3943 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/render_frame_impl.h ('k') | media/blink/encrypted_media_player_support.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698