OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/media/webrtc/peer_connection_dependency_factory.h" | 5 #include "content/renderer/media/webrtc/peer_connection_dependency_factory.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <utility> | 9 #include <utility> |
10 #include <vector> | 10 #include <vector> |
11 | 11 |
12 #include "base/bind.h" | 12 #include "base/bind.h" |
13 #include "base/bind_helpers.h" | 13 #include "base/bind_helpers.h" |
14 #include "base/command_line.h" | 14 #include "base/command_line.h" |
15 #include "base/location.h" | 15 #include "base/location.h" |
16 #include "base/logging.h" | 16 #include "base/logging.h" |
17 #include "base/macros.h" | 17 #include "base/macros.h" |
18 #include "base/memory/ptr_util.h" | 18 #include "base/memory/ptr_util.h" |
19 #include "base/metrics/field_trial.h" | 19 #include "base/metrics/field_trial.h" |
20 #include "base/strings/string_util.h" | 20 #include "base/strings/string_util.h" |
21 #include "base/strings/utf_string_conversions.h" | 21 #include "base/strings/utf_string_conversions.h" |
22 #include "base/synchronization/waitable_event.h" | 22 #include "base/synchronization/waitable_event.h" |
23 #include "base/threading/thread_task_runner_handle.h" | 23 #include "base/threading/thread_task_runner_handle.h" |
24 #include "build/build_config.h" | 24 #include "build/build_config.h" |
25 #include "content/common/media/media_stream_messages.h" | 25 #include "content/common/media/media_stream_messages.h" |
26 #include "content/public/common/content_client.h" | 26 #include "content/public/common/content_client.h" |
| 27 #include "content/public/common/content_features.h" |
27 #include "content/public/common/content_switches.h" | 28 #include "content/public/common/content_switches.h" |
28 #include "content/public/common/feature_h264_with_openh264_ffmpeg.h" | 29 #include "content/public/common/feature_h264_with_openh264_ffmpeg.h" |
29 #include "content/public/common/features.h" | 30 #include "content/public/common/features.h" |
30 #include "content/public/common/renderer_preferences.h" | 31 #include "content/public/common/renderer_preferences.h" |
31 #include "content/public/common/webrtc_ip_handling_policy.h" | 32 #include "content/public/common/webrtc_ip_handling_policy.h" |
32 #include "content/public/renderer/content_renderer_client.h" | 33 #include "content/public/renderer/content_renderer_client.h" |
33 #include "content/renderer/media/gpu/rtc_video_decoder_factory.h" | 34 #include "content/renderer/media/gpu/rtc_video_decoder_factory.h" |
34 #include "content/renderer/media/gpu/rtc_video_encoder_factory.h" | 35 #include "content/renderer/media/gpu/rtc_video_encoder_factory.h" |
35 #include "content/renderer/media/media_stream.h" | 36 #include "content/renderer/media/media_stream.h" |
36 #include "content/renderer/media/media_stream_video_source.h" | 37 #include "content/renderer/media/media_stream_video_source.h" |
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
231 new IpcPacketSocketFactory(p2p_socket_dispatcher_.get())); | 232 new IpcPacketSocketFactory(p2p_socket_dispatcher_.get())); |
232 | 233 |
233 std::unique_ptr<cricket::WebRtcVideoDecoderFactory> decoder_factory; | 234 std::unique_ptr<cricket::WebRtcVideoDecoderFactory> decoder_factory; |
234 std::unique_ptr<cricket::WebRtcVideoEncoderFactory> encoder_factory; | 235 std::unique_ptr<cricket::WebRtcVideoEncoderFactory> encoder_factory; |
235 | 236 |
236 const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess(); | 237 const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess(); |
237 if (gpu_factories && gpu_factories->IsGpuVideoAcceleratorEnabled()) { | 238 if (gpu_factories && gpu_factories->IsGpuVideoAcceleratorEnabled()) { |
238 if (!cmd_line->HasSwitch(switches::kDisableWebRtcHWDecoding)) | 239 if (!cmd_line->HasSwitch(switches::kDisableWebRtcHWDecoding)) |
239 decoder_factory.reset(new RTCVideoDecoderFactory(gpu_factories)); | 240 decoder_factory.reset(new RTCVideoDecoderFactory(gpu_factories)); |
240 | 241 |
241 if (!cmd_line->HasSwitch(switches::kDisableWebRtcHWEncoding) || | 242 if (!cmd_line->HasSwitch(switches::kDisableWebRtcHWVP8Encoding) || |
242 !cmd_line->GetSwitchValueASCII(switches::kDisableWebRtcHWEncoding) | 243 base::FeatureList::IsEnabled(features::kWebRtcHWH264Encoding)) { |
243 .empty()) { | |
244 encoder_factory.reset(new RTCVideoEncoderFactory(gpu_factories)); | 244 encoder_factory.reset(new RTCVideoEncoderFactory(gpu_factories)); |
245 } | 245 } |
246 } | 246 } |
247 | 247 |
248 #if defined(OS_ANDROID) | 248 #if defined(OS_ANDROID) |
249 if (!media::MediaCodecUtil::SupportsSetParameters()) | 249 if (!media::MediaCodecUtil::SupportsSetParameters()) |
250 encoder_factory.reset(); | 250 encoder_factory.reset(); |
251 #endif | 251 #endif |
252 | 252 |
253 pc_factory_ = webrtc::CreatePeerConnectionFactory( | 253 pc_factory_ = webrtc::CreatePeerConnectionFactory( |
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
551 | 551 |
552 void PeerConnectionDependencyFactory::EnsureWebRtcAudioDeviceImpl() { | 552 void PeerConnectionDependencyFactory::EnsureWebRtcAudioDeviceImpl() { |
553 DCHECK(CalledOnValidThread()); | 553 DCHECK(CalledOnValidThread()); |
554 if (audio_device_.get()) | 554 if (audio_device_.get()) |
555 return; | 555 return; |
556 | 556 |
557 audio_device_ = new WebRtcAudioDeviceImpl(); | 557 audio_device_ = new WebRtcAudioDeviceImpl(); |
558 } | 558 } |
559 | 559 |
560 } // namespace content | 560 } // namespace content |
OLD | NEW |