OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_view_impl.h" | 5 #include "content/renderer/render_view_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <cmath> | 8 #include <cmath> |
9 | 9 |
10 #include "base/auto_reset.h" | 10 #include "base/auto_reset.h" |
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
220 #include "content/renderer/android/phone_number_detector.h" | 220 #include "content/renderer/android/phone_number_detector.h" |
221 #include "content/renderer/media/stream_texture_factory_impl_android.h" | 221 #include "content/renderer/media/stream_texture_factory_impl_android.h" |
222 #include "content/renderer/media/webmediaplayer_proxy_impl_android.h" | 222 #include "content/renderer/media/webmediaplayer_proxy_impl_android.h" |
223 #include "third_party/WebKit/Source/Platform/chromium/public/WebFloatPoint.h" | 223 #include "third_party/WebKit/Source/Platform/chromium/public/WebFloatPoint.h" |
224 #include "third_party/WebKit/Source/Platform/chromium/public/WebFloatRect.h" | 224 #include "third_party/WebKit/Source/Platform/chromium/public/WebFloatRect.h" |
225 #include "third_party/WebKit/Source/WebKit/chromium/public/WebHitTestResult.h" | 225 #include "third_party/WebKit/Source/WebKit/chromium/public/WebHitTestResult.h" |
226 #include "ui/gfx/rect_f.h" | 226 #include "ui/gfx/rect_f.h" |
227 #include "webkit/media/android/media_player_bridge_manager_impl.h" | 227 #include "webkit/media/android/media_player_bridge_manager_impl.h" |
228 #include "webkit/media/android/webmediaplayer_android.h" | 228 #include "webkit/media/android/webmediaplayer_android.h" |
229 #include "webkit/media/android/webmediaplayer_manager_android.h" | 229 #include "webkit/media/android/webmediaplayer_manager_android.h" |
| 230 |
| 231 #if defined(GOOGLE_TV) |
| 232 #include "content/renderer/media/rtc_video_decoder_bridge_tv.h" |
| 233 #include "webkit/media/android/webmediaplayer_tv.h" |
| 234 #endif |
| 235 |
230 #elif defined(OS_WIN) | 236 #elif defined(OS_WIN) |
231 // TODO(port): these files are currently Windows only because they concern: | 237 // TODO(port): these files are currently Windows only because they concern: |
232 // * theming | 238 // * theming |
233 #include "ui/native_theme/native_theme_win.h" | 239 #include "ui/native_theme/native_theme_win.h" |
234 #elif defined(USE_X11) | 240 #elif defined(USE_X11) |
235 #include "ui/native_theme/native_theme.h" | 241 #include "ui/native_theme/native_theme.h" |
236 #elif defined(OS_MACOSX) | 242 #elif defined(OS_MACOSX) |
237 #include "skia/ext/skia_utils_mac.h" | 243 #include "skia/ext/skia_utils_mac.h" |
238 #endif | 244 #endif |
239 | 245 |
(...skipping 2425 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2665 routing_id_); | 2671 routing_id_); |
2666 } | 2672 } |
2667 } | 2673 } |
2668 | 2674 |
2669 WebMediaPlayer* RenderViewImpl::createMediaPlayer( | 2675 WebMediaPlayer* RenderViewImpl::createMediaPlayer( |
2670 WebFrame* frame, const WebKit::WebURL& url, WebMediaPlayerClient* client) { | 2676 WebFrame* frame, const WebKit::WebURL& url, WebMediaPlayerClient* client) { |
2671 FOR_EACH_OBSERVER( | 2677 FOR_EACH_OBSERVER( |
2672 RenderViewObserver, observers_, WillCreateMediaPlayer(frame, client)); | 2678 RenderViewObserver, observers_, WillCreateMediaPlayer(frame, client)); |
2673 | 2679 |
2674 const CommandLine* cmd_line = CommandLine::ForCurrentProcess(); | 2680 const CommandLine* cmd_line = CommandLine::ForCurrentProcess(); |
2675 #if defined(ENABLE_WEBRTC) | 2681 #if defined(ENABLE_WEBRTC) && !defined(GOOGLE_TV) |
2676 if (MediaStreamImpl::CheckMediaStream(url)) { | 2682 if (MediaStreamImpl::CheckMediaStream(url)) { |
2677 #if defined(OS_ANDROID) && defined(ARCH_CPU_ARMEL) | 2683 #if defined(OS_ANDROID) && defined(ARCH_CPU_ARMEL) |
2678 bool found_neon = | 2684 bool found_neon = |
2679 (android_getCpuFeatures() & ANDROID_CPU_ARM_FEATURE_NEON) != 0; | 2685 (android_getCpuFeatures() & ANDROID_CPU_ARM_FEATURE_NEON) != 0; |
2680 UMA_HISTOGRAM_BOOLEAN("Platform.WebRtcNEONFound", found_neon); | 2686 UMA_HISTOGRAM_BOOLEAN("Platform.WebRtcNEONFound", found_neon); |
2681 #endif // defined(OS_ANDROID) && defined(ARCH_CPU_ARMEL) | 2687 #endif // defined(OS_ANDROID) && defined(ARCH_CPU_ARMEL) |
2682 EnsureMediaStreamImpl(); | 2688 EnsureMediaStreamImpl(); |
2683 return new webkit_media::WebMediaPlayerMS( | 2689 return new webkit_media::WebMediaPlayerMS( |
2684 frame, client, AsWeakPtr(), media_stream_impl_, new RenderMediaLog()); | 2690 frame, client, AsWeakPtr(), media_stream_impl_, new RenderMediaLog()); |
2685 } | 2691 } |
(...skipping 12 matching lines...) Expand all Loading... |
2698 RenderThreadImpl::current()->OffscreenContextProviderForMainThread(); | 2704 RenderThreadImpl::current()->OffscreenContextProviderForMainThread(); |
2699 if (!context_provider) { | 2705 if (!context_provider) { |
2700 LOG(ERROR) << "Failed to get context3d for media player"; | 2706 LOG(ERROR) << "Failed to get context3d for media player"; |
2701 return NULL; | 2707 return NULL; |
2702 } | 2708 } |
2703 | 2709 |
2704 if (!media_player_proxy_) { | 2710 if (!media_player_proxy_) { |
2705 media_player_proxy_ = new WebMediaPlayerProxyImplAndroid( | 2711 media_player_proxy_ = new WebMediaPlayerProxyImplAndroid( |
2706 this, media_player_manager_.get()); | 2712 this, media_player_manager_.get()); |
2707 } | 2713 } |
| 2714 #if defined(GOOGLE_TV) |
| 2715 MediaStreamImpl* media_stream_impl = NULL; |
| 2716 media::Demuxer* demuxer = NULL; |
| 2717 #if defined(ENABLE_WEBRTC) |
| 2718 if (MediaStreamImpl::CheckMediaStream(url)) { |
| 2719 EnsureMediaStreamImpl(); |
| 2720 RTCDemuxer* remote_demuxer = |
| 2721 new RTCDemuxer(base::MessageLoopProxy::current()); |
| 2722 if (RTCVideoDecoderBridgeTv::Get()->RegisterDemuxer(remote_demuxer)) { |
| 2723 media_stream_impl = media_stream_impl_; |
| 2724 demuxer = remote_demuxer; |
| 2725 } else { |
| 2726 return NULL; |
| 2727 } |
| 2728 } |
| 2729 #endif // defined(ENABLE_WEBRTC) |
| 2730 return new webkit_media::WebMediaPlayerTv( |
| 2731 frame, |
| 2732 client, |
| 2733 media_player_manager_.get(), |
| 2734 media_player_proxy_, |
| 2735 new StreamTextureFactoryImpl( |
| 2736 context_provider->Context3d(), gpu_channel_host, routing_id_), |
| 2737 new RenderMediaLog(), |
| 2738 media_stream_impl, |
| 2739 demuxer); |
| 2740 #else // defined(GOOGLE_TV) |
2708 return new webkit_media::WebMediaPlayerAndroid( | 2741 return new webkit_media::WebMediaPlayerAndroid( |
2709 frame, | 2742 frame, |
2710 client, | 2743 client, |
2711 media_player_manager_.get(), | 2744 media_player_manager_.get(), |
2712 media_player_proxy_, | 2745 media_player_proxy_, |
2713 new StreamTextureFactoryImpl( | 2746 new StreamTextureFactoryImpl( |
2714 context_provider->Context3d(), gpu_channel_host, routing_id_), | 2747 context_provider->Context3d(), gpu_channel_host, routing_id_)); |
2715 new RenderMediaLog()); | 2748 #endif // defined(GOOGLE_TV) |
2716 #endif | 2749 #endif // defined(OS_ANDROID) |
2717 | 2750 |
2718 scoped_refptr<media::AudioRendererSink> sink; | 2751 scoped_refptr<media::AudioRendererSink> sink; |
2719 if (!cmd_line->HasSwitch(switches::kDisableAudio)) { | 2752 if (!cmd_line->HasSwitch(switches::kDisableAudio)) { |
2720 if (!cmd_line->HasSwitch(switches::kDisableRendererSideMixing)) { | 2753 if (!cmd_line->HasSwitch(switches::kDisableRendererSideMixing)) { |
2721 sink = RenderThreadImpl::current()->GetAudioRendererMixerManager()-> | 2754 sink = RenderThreadImpl::current()->GetAudioRendererMixerManager()-> |
2722 CreateInput(routing_id_); | 2755 CreateInput(routing_id_); |
2723 DVLOG(1) << "Using AudioRendererMixerManager-provided sink: " << sink; | 2756 DVLOG(1) << "Using AudioRendererMixerManager-provided sink: " << sink; |
2724 } else { | 2757 } else { |
2725 // The RenderView creating AudioRendererSink will be the source of | 2758 // The RenderView creating AudioRendererSink will be the source of |
2726 // the audio (WebMediaPlayer is always associated with a document in a | 2759 // the audio (WebMediaPlayer is always associated with a document in a |
(...skipping 3782 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6509 WebURL url = icon_urls[i].iconURL(); | 6542 WebURL url = icon_urls[i].iconURL(); |
6510 if (!url.isEmpty()) | 6543 if (!url.isEmpty()) |
6511 urls.push_back(FaviconURL(url, | 6544 urls.push_back(FaviconURL(url, |
6512 ToFaviconType(icon_urls[i].iconType()))); | 6545 ToFaviconType(icon_urls[i].iconType()))); |
6513 } | 6546 } |
6514 SendUpdateFaviconURL(urls); | 6547 SendUpdateFaviconURL(urls); |
6515 } | 6548 } |
6516 | 6549 |
6517 | 6550 |
6518 } // namespace content | 6551 } // namespace content |
OLD | NEW |