| Index: content/renderer/render_view_impl.cc
|
| diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
|
| index 17a21506400fa8bcae06498b1fb7b2f3e54f8b8d..1ae0dc00ad9d5597efe7ee468558ed2f9be0bff8 100644
|
| --- a/content/renderer/render_view_impl.cc
|
| +++ b/content/renderer/render_view_impl.cc
|
| @@ -227,6 +227,12 @@
|
| #include "webkit/media/android/media_player_bridge_manager_impl.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 "webkit/media/android/webmediaplayer_tv.h"
|
| +#endif
|
| +
|
| #elif defined(OS_WIN)
|
| // TODO(port): these files are currently Windows only because they concern:
|
| // * theming
|
| @@ -2672,7 +2678,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 =
|
| @@ -2705,15 +2711,42 @@ WebMediaPlayer* RenderViewImpl::createMediaPlayer(
|
| media_player_proxy_ = new WebMediaPlayerProxyImplAndroid(
|
| this, media_player_manager_.get());
|
| }
|
| - return new webkit_media::WebMediaPlayerAndroid(
|
| +#if defined(GOOGLE_TV)
|
| + MediaStreamImpl* media_stream_impl = NULL;
|
| + media::Demuxer* demuxer = NULL;
|
| +#if defined(ENABLE_WEBRTC)
|
| + if (MediaStreamImpl::CheckMediaStream(url)) {
|
| + EnsureMediaStreamImpl();
|
| + RTCDemuxer* remote_demuxer =
|
| + new RTCDemuxer(base::MessageLoopProxy::current());
|
| + if (RTCVideoDecoderBridgeTv::Get()->RegisterDemuxer(remote_demuxer)) {
|
| + media_stream_impl = media_stream_impl_;
|
| + demuxer = remote_demuxer;
|
| + } else {
|
| + return NULL;
|
| + }
|
| + }
|
| +#endif // defined(ENABLE_WEBRTC)
|
| + return new webkit_media::WebMediaPlayerTv(
|
| frame,
|
| client,
|
| media_player_manager_.get(),
|
| media_player_proxy_,
|
| new StreamTextureFactoryImpl(
|
| context_provider->Context3d(), gpu_channel_host, routing_id_),
|
| - new RenderMediaLog());
|
| -#endif
|
| + new RenderMediaLog(),
|
| + media_stream_impl,
|
| + demuxer);
|
| +#else // defined(GOOGLE_TV)
|
| + return new webkit_media::WebMediaPlayerAndroid(
|
| + frame,
|
| + client,
|
| + media_player_manager_.get(),
|
| + media_player_proxy_,
|
| + new StreamTextureFactoryImpl(
|
| + context_provider->Context3d(), gpu_channel_host, routing_id_));
|
| +#endif // defined(GOOGLE_TV)
|
| +#endif // defined(OS_ANDROID)
|
|
|
| scoped_refptr<media::AudioRendererSink> sink;
|
| if (!cmd_line->HasSwitch(switches::kDisableAudio)) {
|
|
|