| 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..7c369bc55ee8602a604feb25921f442d01628b65 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<media::GpuVideoAcceleratorFactories> 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();
|
| +#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());
|
| - }
|
| + } 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_,
|
|
|