Chromium Code Reviews| Index: content/renderer/media/media_stream_dependency_factory.cc |
| diff --git a/content/renderer/media/media_stream_dependency_factory.cc b/content/renderer/media/media_stream_dependency_factory.cc |
| index a0f25a6cfc48fb16179fa0aa35000cee90ec89a6..cc78eb035666d2d335414d4d0f7bf96c1a93bc65 100644 |
| --- a/content/renderer/media/media_stream_dependency_factory.cc |
| +++ b/content/renderer/media/media_stream_dependency_factory.cc |
| @@ -16,6 +16,7 @@ |
| #include "content/renderer/media/rtc_peer_connection_handler.h" |
| #include "content/renderer/media/rtc_video_capturer.h" |
| #include "content/renderer/media/rtc_video_decoder_factory.h" |
| +#include "content/renderer/media/rtc_video_encoder_factory.h" |
| #include "content/renderer/media/video_capture_impl_manager.h" |
| #include "content/renderer/media/webaudio_capturer_source.h" |
| #include "content/renderer/media/webrtc_audio_device_impl.h" |
| @@ -27,7 +28,7 @@ |
| #include "content/renderer/p2p/port_allocator.h" |
| #include "content/renderer/render_thread_impl.h" |
| #include "jingle/glue/thread_wrapper.h" |
| -#include "media/filters/gpu_video_decoder_factories.h" |
| +#include "media/filters/gpu_video_accelerator_factories.h" |
| #include "third_party/WebKit/public/platform/WebMediaConstraints.h" |
| #include "third_party/WebKit/public/platform/WebMediaStream.h" |
| #include "third_party/WebKit/public/platform/WebMediaStreamSource.h" |
| @@ -497,22 +498,22 @@ bool MediaStreamDependencyFactory::CreatePeerConnectionFactory() { |
| scoped_ptr<cricket::WebRtcVideoEncoderFactory> encoder_factory; |
| const CommandLine* cmd_line = CommandLine::ForCurrentProcess(); |
| - if (cmd_line->HasSwitch(switches::kEnableWebRtcHWDecoding)) { |
| - scoped_refptr<base::MessageLoopProxy> media_loop_proxy = |
| - RenderThreadImpl::current()->GetMediaThreadMessageLoopProxy(); |
| - scoped_refptr<RendererGpuVideoDecoderFactories> gpu_factories = |
| - RenderThreadImpl::current()->GetGpuFactories(media_loop_proxy); |
| - if (gpu_factories.get() != NULL) |
| + scoped_refptr<base::MessageLoopProxy> media_loop_proxy = |
| + RenderThreadImpl::current()->GetMediaThreadMessageLoopProxy(); |
| + scoped_refptr<RendererGpuVideoAcceleratorFactories> gpu_factories = |
| + RenderThreadImpl::current()->GetGpuFactories(media_loop_proxy); |
| +#if !defined(GOOGLE_TV) |
| + if (cmd_line->HasSwitch(switches::kEnableWebRtcHWDecoding)) |
| + if (gpu_factories) |
| decoder_factory.reset(new RTCVideoDecoderFactory(gpu_factories)); |
| - } |
| -#if defined(GOOGLE_TV) |
| +#else |
| // PeerConnectionFactory will hold the ownership of this |
| // VideoDecoderFactory. |
| - decoder_factory.reset(decoder_factory_tv_ = new RTCVideoDecoderFactoryTv); |
| + decoder_factory.reset(decoder_factory_tv_ = new RTCVideoDecoderFactoryTv()); |
| #endif |
| -#if defined(ENABLE_WEBRTC) && defined(OS_CHROMEOS) |
| const CommandLine& command_line = *CommandLine::ForCurrentProcess(); |
|
hshi1
2013/08/08 19:51:55
nit: this is redundant. You can use the "cmd_line"
|
| +#if defined(ENABLE_WEBRTC) && defined(OS_CHROMEOS) |
| if (command_line.HasSwitch(switches::kEnableEncodedScreenCapture)) { |
| // PeerConnectionFactory owns the encoder factory. Pass a weak pointer of |
| // encoder factory to |vc_manager_| because the manager outlives it. |
| @@ -521,8 +522,13 @@ bool MediaStreamDependencyFactory::CreatePeerConnectionFactory() { |
| encoder_factory.reset(rtc_encoding_capturer_factory); |
| vc_manager_->set_encoding_capturer_factory( |
| rtc_encoding_capturer_factory->AsWeakPtr()); |
|
hshi1
2013/08/08 00:37:30
Sorry please do one more rebase... the above block
|
| - } |
| + } else |
| #endif |
| + { |
| + if (command_line.HasSwitch(switches::kEnableWebRtcHWEncoding)) |
| + if (gpu_factories) |
| + encoder_factory.reset(new RTCVideoEncoderFactory(gpu_factories)); |
| + } |
| scoped_refptr<webrtc::PeerConnectionFactoryInterface> factory( |
| webrtc::CreatePeerConnectionFactory(worker_thread_, |