Chromium Code Reviews| Index: content/renderer/render_view_impl.cc |
| diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc |
| index a189b7b321e7ecb2c04a8ab5090e5dc8a9ea60dc..37489f7cb60bc7feab36aa79f54ee1c5045660e5 100644 |
| --- a/content/renderer/render_view_impl.cc |
| +++ b/content/renderer/render_view_impl.cc |
| @@ -225,6 +225,12 @@ |
| #include "ui/gfx/rect_f.h" |
| #include "webkit/media/android/webmediaplayer_android.h" |
| #include "webkit/media/android/webmediaplayer_manager_android.h" |
| + |
| +#if defined(GOOGLE_TV) |
| +#include "content/renderer/media/rtc_video_decoder_bridge_tv.h" |
| +#include "content/renderer/media/rtc_video_decoder_factory_tv.h" |
| +#endif |
| + |
| #elif defined(OS_WIN) |
| // TODO(port): these files are currently Windows only because they concern: |
| // * theming |
| @@ -2688,7 +2694,7 @@ WebMediaPlayer* RenderViewImpl::createMediaPlayer( |
| RenderViewObserver, observers_, WillCreateMediaPlayer(frame, client)); |
| const CommandLine* cmd_line = CommandLine::ForCurrentProcess(); |
| -#if defined(ENABLE_WEBRTC) |
| +#if defined(ENABLE_WEBRTC) && !defined(GOOGLE_TV) |
| if (MediaStreamImpl::CheckMediaStream(url)) { |
| #if defined(OS_ANDROID) && defined(ARCH_CPU_ARMEL) |
| bool found_neon = |
| @@ -2721,15 +2727,36 @@ WebMediaPlayer* RenderViewImpl::createMediaPlayer( |
| media_player_proxy_ = new WebMediaPlayerProxyImplAndroid( |
| this, media_player_manager_.get()); |
| } |
| - return new webkit_media::WebMediaPlayerAndroid( |
| - frame, |
| - client, |
| - media_player_manager_.get(), |
| - media_player_proxy_, |
| - new StreamTextureFactoryImpl( |
| - context_provider->Context3d(), gpu_channel_host, routing_id_), |
| - new RenderMediaLog()); |
| -#endif |
| + webkit_media::WebMediaPlayerAndroid* web_media_player_android = |
|
acolwell GONE FROM CHROMIUM
2013/05/14 18:17:47
nit: Use scoped_ptr<webkit_media::WebMediaPlayerAn
wonsik
2013/05/20 14:02:24
Done.
|
| + new webkit_media::WebMediaPlayerAndroid( |
| + frame, |
| + client, |
| + media_player_manager_.get(), |
| + media_player_proxy_, |
| + new StreamTextureFactoryImpl( |
| + context_provider->Context3d(), gpu_channel_host, routing_id_), |
| + new RenderMediaLog()); |
| +#if defined(ENABLE_WEBRTC) && defined(GOOGLE_TV) |
| + if (MediaStreamImpl::CheckMediaStream(url)) { |
| + EnsureMediaStreamImpl(); |
| + RTCVideoDecoderFactoryTv* factory = RenderThreadImpl::current() |
| + ->GetMediaStreamDependencyFactory()->decoder_factory_tv(); |
| + // |media_stream_impl_| and |factory| outlives web_media_player_android. |
|
acolwell GONE FROM CHROMIUM
2013/05/14 18:17:47
nit: s/web_media_player_android/|web_media_player_
wonsik
2013/05/20 14:02:24
Done.
|
| + if (!factory->AcquireDemuxer() || |
| + !web_media_player_android->InjectMediaStream( |
| + media_stream_impl_, |
| + factory, |
| + base::Bind( |
| + base::IgnoreResult(&RTCVideoDecoderFactoryTv::ReleaseDemuxer), |
| + base::Unretained(factory)))) { |
| + LOG(ERROR) << "Failed to inject media stream."; |
| + delete web_media_player_android; |
| + return NULL; |
| + } |
| + } |
| +#endif // defined(ENABLE_WEBRTC) && defined(GOOGLE_TV) |
| + return web_media_player_android; |
| +#endif // defined(OS_ANDROID) |
| scoped_refptr<media::AudioRendererSink> sink; |
| if (!cmd_line->HasSwitch(switches::kDisableAudio)) { |