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

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: combined KeyHandlingDemxuer w/ KeyHandlingChunkDemuxer 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 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 #include "content/renderer/android/email_detector.h" 219 #include "content/renderer/android/email_detector.h"
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/webmediaplayer_android.h" 227 #include "webkit/media/android/webmediaplayer_android.h"
228 #include "webkit/media/android/webmediaplayer_manager_android.h" 228 #include "webkit/media/android/webmediaplayer_manager_android.h"
229
230 #if defined(GOOGLE_TV)
231 #include "content/renderer/media/rtc_video_decoder_bridge_tv.h"
232 #endif
233
229 #elif defined(OS_WIN) 234 #elif defined(OS_WIN)
230 // TODO(port): these files are currently Windows only because they concern: 235 // TODO(port): these files are currently Windows only because they concern:
231 // * theming 236 // * theming
232 #include "ui/native_theme/native_theme_win.h" 237 #include "ui/native_theme/native_theme_win.h"
233 #elif defined(USE_X11) 238 #elif defined(USE_X11)
234 #include "ui/native_theme/native_theme.h" 239 #include "ui/native_theme/native_theme.h"
235 #elif defined(OS_MACOSX) 240 #elif defined(OS_MACOSX)
236 #include "skia/ext/skia_utils_mac.h" 241 #include "skia/ext/skia_utils_mac.h"
237 #endif 242 #endif
238 243
(...skipping 2442 matching lines...) Expand 10 before | Expand all | Expand 10 after
2681 routing_id_); 2686 routing_id_);
2682 } 2687 }
2683 } 2688 }
2684 2689
2685 WebMediaPlayer* RenderViewImpl::createMediaPlayer( 2690 WebMediaPlayer* RenderViewImpl::createMediaPlayer(
2686 WebFrame* frame, const WebKit::WebURL& url, WebMediaPlayerClient* client) { 2691 WebFrame* frame, const WebKit::WebURL& url, WebMediaPlayerClient* client) {
2687 FOR_EACH_OBSERVER( 2692 FOR_EACH_OBSERVER(
2688 RenderViewObserver, observers_, WillCreateMediaPlayer(frame, client)); 2693 RenderViewObserver, observers_, WillCreateMediaPlayer(frame, client));
2689 2694
2690 const CommandLine* cmd_line = CommandLine::ForCurrentProcess(); 2695 const CommandLine* cmd_line = CommandLine::ForCurrentProcess();
2691 #if defined(ENABLE_WEBRTC) 2696 #if defined(ENABLE_WEBRTC) && !defined(GOOGLE_TV)
Ami GONE FROM CHROMIUM 2013/05/08 20:26:44 The conditional compile & runtime behavior in this
wonsik 2013/05/13 14:03:48 Well, I can't see a good way to improve this.
2692 if (MediaStreamImpl::CheckMediaStream(url)) { 2697 if (MediaStreamImpl::CheckMediaStream(url)) {
2693 #if defined(OS_ANDROID) && defined(ARCH_CPU_ARMEL) 2698 #if defined(OS_ANDROID) && defined(ARCH_CPU_ARMEL)
2694 bool found_neon = 2699 bool found_neon =
2695 (android_getCpuFeatures() & ANDROID_CPU_ARM_FEATURE_NEON) != 0; 2700 (android_getCpuFeatures() & ANDROID_CPU_ARM_FEATURE_NEON) != 0;
2696 UMA_HISTOGRAM_BOOLEAN("Platform.WebRtcNEONFound", found_neon); 2701 UMA_HISTOGRAM_BOOLEAN("Platform.WebRtcNEONFound", found_neon);
2697 #endif // defined(OS_ANDROID) && defined(ARCH_CPU_ARMEL) 2702 #endif // defined(OS_ANDROID) && defined(ARCH_CPU_ARMEL)
2698 EnsureMediaStreamImpl(); 2703 EnsureMediaStreamImpl();
2699 return new webkit_media::WebMediaPlayerMS( 2704 return new webkit_media::WebMediaPlayerMS(
2700 frame, client, AsWeakPtr(), media_stream_impl_, new RenderMediaLog()); 2705 frame, client, AsWeakPtr(), media_stream_impl_, new RenderMediaLog());
2701 } 2706 }
(...skipping 12 matching lines...) Expand all
2714 RenderThreadImpl::current()->OffscreenContextProviderForMainThread(); 2719 RenderThreadImpl::current()->OffscreenContextProviderForMainThread();
2715 if (!context_provider) { 2720 if (!context_provider) {
2716 LOG(ERROR) << "Failed to get context3d for media player"; 2721 LOG(ERROR) << "Failed to get context3d for media player";
2717 return NULL; 2722 return NULL;
2718 } 2723 }
2719 2724
2720 if (!media_player_proxy_) { 2725 if (!media_player_proxy_) {
2721 media_player_proxy_ = new WebMediaPlayerProxyImplAndroid( 2726 media_player_proxy_ = new WebMediaPlayerProxyImplAndroid(
2722 this, media_player_manager_.get()); 2727 this, media_player_manager_.get());
2723 } 2728 }
2724 return new webkit_media::WebMediaPlayerAndroid( 2729 MediaStreamImpl* media_stream_impl = NULL;
2725 frame, 2730 media::Demuxer* demuxer = NULL;
2726 client, 2731 #if defined(ENABLE_WEBRTC)
2727 media_player_manager_.get(), 2732 if (MediaStreamImpl::CheckMediaStream(url)) {
2728 media_player_proxy_, 2733 EnsureMediaStreamImpl();
2729 new StreamTextureFactoryImpl( 2734 demuxer = RTCVideoDecoderBridgeTv::Get()->CreateDemuxer(
2730 context_provider->Context3d(), gpu_channel_host, routing_id_), 2735 RenderThreadImpl::current()->GetMediaStreamDependencyFactory(),
2731 new RenderMediaLog()); 2736 base::MessageLoopProxy::current());
2732 #endif 2737 if (demuxer) {
2738 media_stream_impl = media_stream_impl_;
2739 } else {
2740 LOG(ERROR) << "Multiple MediaStream not supported yet.";
2741 return NULL;
2742 }
2743 }
2744 #endif // defined(ENABLE_WEBRTC)
2745 webkit_media::WebMediaPlayerAndroid* web_media_player_android =
2746 new webkit_media::WebMediaPlayerAndroid(
2747 frame,
2748 client,
2749 media_player_manager_.get(),
2750 media_player_proxy_,
2751 new StreamTextureFactoryImpl(
2752 context_provider->Context3d(), gpu_channel_host, routing_id_),
2753 new RenderMediaLog(),
2754 media_stream_impl,
2755 demuxer);
2756 #if defined(GOOGLE_TV)
Ami GONE FROM CHROMIUM 2013/05/08 20:26:44 shouldn't this be checking for WEBRTC?
wonsik 2013/05/13 14:03:48 Done.
2757 if (media_stream_impl) {
2758 // RTCVideoDecoderBridgeTv::Get() outlives web_media_player_android since
2759 // it's a singleton, thus base::Unretained is safe here.
2760 web_media_player_android->SetDestroyDemuxerCB(
2761 base::Bind(&RTCVideoDecoderBridgeTv::DestroyDemuxer,
2762 base::Unretained(RTCVideoDecoderBridgeTv::Get())));
2763 }
2764 #endif // defined(GOOGLE_TV)
2765 return web_media_player_android;
2766 #endif // defined(OS_ANDROID)
2733 2767
2734 scoped_refptr<media::AudioRendererSink> sink; 2768 scoped_refptr<media::AudioRendererSink> sink;
2735 if (!cmd_line->HasSwitch(switches::kDisableAudio)) { 2769 if (!cmd_line->HasSwitch(switches::kDisableAudio)) {
2736 sink = RenderThreadImpl::current()->GetAudioRendererMixerManager()-> 2770 sink = RenderThreadImpl::current()->GetAudioRendererMixerManager()->
2737 CreateInput(routing_id_); 2771 CreateInput(routing_id_);
2738 DVLOG(1) << "Using AudioRendererMixerManager-provided sink: " << sink; 2772 DVLOG(1) << "Using AudioRendererMixerManager-provided sink: " << sink;
2739 } 2773 }
2740 2774
2741 scoped_refptr<media::GpuVideoDecoder::Factories> gpu_factories; 2775 scoped_refptr<media::GpuVideoDecoder::Factories> gpu_factories;
2742 WebGraphicsContext3DCommandBufferImpl* context3d = NULL; 2776 WebGraphicsContext3DCommandBufferImpl* context3d = NULL;
(...skipping 3786 matching lines...) Expand 10 before | Expand all | Expand 10 after
6529 WebURL url = icon_urls[i].iconURL(); 6563 WebURL url = icon_urls[i].iconURL();
6530 if (!url.isEmpty()) 6564 if (!url.isEmpty())
6531 urls.push_back(FaviconURL(url, 6565 urls.push_back(FaviconURL(url,
6532 ToFaviconType(icon_urls[i].iconType()))); 6566 ToFaviconType(icon_urls[i].iconType())));
6533 } 6567 }
6534 SendUpdateFaviconURL(urls); 6568 SendUpdateFaviconURL(urls);
6535 } 6569 }
6536 6570
6537 6571
6538 } // namespace content 6572 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698