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

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

Issue 14247018: Implement WebRTC in Chrome for TV (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: WebRTC impl on Chrome for TV Created 7 years, 7 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 (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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698