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 eeb813905705fdfc66a776f5140b175b2107cb92..463d1c45ce3b65d302f3f502f3735982ebd97fd8 100644 |
| --- a/content/renderer/media/media_stream_dependency_factory.cc |
| +++ b/content/renderer/media/media_stream_dependency_factory.cc |
| @@ -14,6 +14,7 @@ |
| #include "content/renderer/media/rtc_media_constraints.h" |
| #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/video_capture_impl_manager.h" |
| #include "content/renderer/media/webaudio_capturer_source.h" |
| #include "content/renderer/media/webrtc_audio_device_impl.h" |
| @@ -25,6 +26,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.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" |
| @@ -484,19 +486,26 @@ bool MediaStreamDependencyFactory::CreatePeerConnectionFactory() { |
| DCHECK(!audio_device_.get()); |
| audio_device_ = new WebRtcAudioDeviceImpl(); |
| - cricket::WebRtcVideoDecoderFactory* decoder_factory = NULL; |
| + scoped_ptr<cricket::WebRtcVideoDecoderFactory> decoder_factory; |
| #if defined(GOOGLE_TV) |
| // PeerConnectionFactory will hold the ownership of this |
| // VideoDecoderFactory. |
| - decoder_factory = decoder_factory_tv_ = new RTCVideoDecoderFactoryTv; |
| + decoder_factory.reset(decoder_factory_tv_ = new RTCVideoDecoderFactoryTv); |
| #endif |
| + const CommandLine* cmd_line = CommandLine::ForCurrentProcess(); |
| + if (cmd_line->HasSwitch(switches::kEnableWebRTCHWDecoding)) { |
| + scoped_refptr<media::GpuVideoDecoder::Factories> gpu_factories = |
| + RenderThreadImpl::current()->GetGpuFactories(); |
| + if (gpu_factories.get() != NULL) |
|
Ami GONE FROM CHROMIUM
2013/06/19 18:28:58
Is the .get() really required?
wuchengli
2013/06/20 07:27:04
Some people are changing refptr to get() universal
|
| + decoder_factory.reset(new RTCVideoDecoderFactory(gpu_factories)); |
| + } |
| scoped_refptr<webrtc::PeerConnectionFactoryInterface> factory( |
| webrtc::CreatePeerConnectionFactory(worker_thread_, |
| signaling_thread_, |
| audio_device_.get(), |
| NULL, |
| - decoder_factory)); |
| + decoder_factory.release())); |
| if (factory.get()) |
| pc_factory_ = factory; |
| else |