OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright 2004 The WebRTC project authors. All Rights Reserved. | 2 * Copyright 2004 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 19 matching lines...) Expand all Loading... | |
30 #include "webrtc/p2p/client/basicportallocator.h" | 30 #include "webrtc/p2p/client/basicportallocator.h" |
31 #include "webrtc/pc/audiotrack.h" | 31 #include "webrtc/pc/audiotrack.h" |
32 #include "webrtc/pc/localaudiosource.h" | 32 #include "webrtc/pc/localaudiosource.h" |
33 #include "webrtc/pc/mediastream.h" | 33 #include "webrtc/pc/mediastream.h" |
34 #include "webrtc/pc/peerconnection.h" | 34 #include "webrtc/pc/peerconnection.h" |
35 #include "webrtc/pc/videocapturertracksource.h" | 35 #include "webrtc/pc/videocapturertracksource.h" |
36 #include "webrtc/pc/videotrack.h" | 36 #include "webrtc/pc/videotrack.h" |
37 | 37 |
38 namespace webrtc { | 38 namespace webrtc { |
39 | 39 |
40 rtc::scoped_refptr<AudioEncoderFactory> CreateBuiltinAudioEncoderFactoryImpl(); | |
41 | |
42 rtc::scoped_refptr<AudioDecoderFactory> CreateBuiltinAudioDecoderFactoryImpl(); | |
43 | |
44 std::unique_ptr<cricket::MediaEngineInterface> CreateMediaEngineImpl( | |
45 webrtc::AudioDeviceModule* adm, | |
46 const rtc::scoped_refptr<webrtc::AudioEncoderFactory>& | |
47 audio_encoder_factory, | |
48 const rtc::scoped_refptr<webrtc::AudioDecoderFactory>& | |
49 audio_decoder_factory, | |
50 cricket::WebRtcVideoEncoderFactory* video_encoder_factory, | |
51 cricket::WebRtcVideoDecoderFactory* video_decoder_factory, | |
52 rtc::scoped_refptr<webrtc::AudioMixer> audio_mixer); | |
Taylor Brandstetter
2017/05/18 17:57:05
Are the extra "Impl" methods needed here? It seems
Zhi Huang
2017/05/23 03:40:35
I think we still need CreateBuiltinAudioEncoderFac
| |
53 | |
40 rtc::scoped_refptr<PeerConnectionFactoryInterface> CreatePeerConnectionFactory( | 54 rtc::scoped_refptr<PeerConnectionFactoryInterface> CreatePeerConnectionFactory( |
41 rtc::scoped_refptr<AudioEncoderFactory> audio_encoder_factory, | 55 rtc::scoped_refptr<AudioEncoderFactory> audio_encoder_factory, |
42 rtc::scoped_refptr<AudioDecoderFactory> audio_decoder_factory) { | 56 rtc::scoped_refptr<AudioDecoderFactory> audio_decoder_factory) { |
43 rtc::scoped_refptr<PeerConnectionFactory> pc_factory( | 57 rtc::scoped_refptr<PeerConnectionFactory> pc_factory( |
44 new rtc::RefCountedObject<PeerConnectionFactory>(audio_encoder_factory, | 58 new rtc::RefCountedObject<PeerConnectionFactory>(audio_encoder_factory, |
45 audio_decoder_factory)); | 59 audio_decoder_factory)); |
46 | 60 |
47 RTC_CHECK(rtc::Thread::Current() == pc_factory->signaling_thread()); | 61 RTC_CHECK(rtc::Thread::Current() == pc_factory->signaling_thread()); |
48 // The signaling thread is the current thread so we can | 62 // The signaling thread is the current thread so we can |
49 // safely call Initialize directly. | 63 // safely call Initialize directly. |
50 if (!pc_factory->Initialize()) { | 64 if (!pc_factory->Initialize()) { |
51 return nullptr; | 65 return nullptr; |
52 } | 66 } |
53 return PeerConnectionFactoryProxy::Create(pc_factory->signaling_thread(), | 67 return PeerConnectionFactoryProxy::Create(pc_factory->signaling_thread(), |
54 pc_factory); | 68 pc_factory); |
55 } | 69 } |
56 | 70 |
57 rtc::scoped_refptr<PeerConnectionFactoryInterface> | 71 rtc::scoped_refptr<PeerConnectionFactoryInterface> |
58 CreatePeerConnectionFactory() { | 72 CreatePeerConnectionFactory() { |
59 return CreatePeerConnectionFactory(CreateBuiltinAudioEncoderFactory(), | 73 return CreatePeerConnectionFactory(CreateBuiltinAudioEncoderFactoryImpl(), |
60 CreateBuiltinAudioDecoderFactory()); | 74 CreateBuiltinAudioDecoderFactoryImpl()); |
61 } | 75 } |
62 | 76 |
63 rtc::scoped_refptr<PeerConnectionFactoryInterface> CreatePeerConnectionFactory( | 77 rtc::scoped_refptr<PeerConnectionFactoryInterface> CreatePeerConnectionFactory( |
64 rtc::Thread* network_thread, | 78 rtc::Thread* network_thread, |
65 rtc::Thread* worker_thread, | 79 rtc::Thread* worker_thread, |
66 rtc::Thread* signaling_thread, | 80 rtc::Thread* signaling_thread, |
67 AudioDeviceModule* default_adm, | 81 AudioDeviceModule* default_adm, |
68 rtc::scoped_refptr<AudioEncoderFactory> audio_encoder_factory, | 82 rtc::scoped_refptr<AudioEncoderFactory> audio_encoder_factory, |
69 rtc::scoped_refptr<AudioDecoderFactory> audio_decoder_factory, | 83 rtc::scoped_refptr<AudioDecoderFactory> audio_decoder_factory, |
70 cricket::WebRtcVideoEncoderFactory* video_encoder_factory, | 84 cricket::WebRtcVideoEncoderFactory* video_encoder_factory, |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
120 CreatePeerConnectionFactoryWithAudioMixer( | 134 CreatePeerConnectionFactoryWithAudioMixer( |
121 rtc::Thread* network_thread, | 135 rtc::Thread* network_thread, |
122 rtc::Thread* worker_thread, | 136 rtc::Thread* worker_thread, |
123 rtc::Thread* signaling_thread, | 137 rtc::Thread* signaling_thread, |
124 AudioDeviceModule* default_adm, | 138 AudioDeviceModule* default_adm, |
125 cricket::WebRtcVideoEncoderFactory* encoder_factory, | 139 cricket::WebRtcVideoEncoderFactory* encoder_factory, |
126 cricket::WebRtcVideoDecoderFactory* decoder_factory, | 140 cricket::WebRtcVideoDecoderFactory* decoder_factory, |
127 rtc::scoped_refptr<AudioMixer> audio_mixer) { | 141 rtc::scoped_refptr<AudioMixer> audio_mixer) { |
128 return CreatePeerConnectionFactoryWithAudioMixer( | 142 return CreatePeerConnectionFactoryWithAudioMixer( |
129 network_thread, worker_thread, signaling_thread, default_adm, | 143 network_thread, worker_thread, signaling_thread, default_adm, |
130 CreateBuiltinAudioEncoderFactory(), CreateBuiltinAudioDecoderFactory(), | 144 CreateBuiltinAudioEncoderFactoryImpl(), |
131 encoder_factory, decoder_factory, audio_mixer); | 145 CreateBuiltinAudioDecoderFactoryImpl(), encoder_factory, decoder_factory, |
146 audio_mixer); | |
132 } | 147 } |
133 | 148 |
134 PeerConnectionFactory::PeerConnectionFactory( | 149 PeerConnectionFactory::PeerConnectionFactory( |
135 rtc::scoped_refptr<webrtc::AudioEncoderFactory> audio_encoder_factory, | 150 rtc::scoped_refptr<webrtc::AudioEncoderFactory> audio_encoder_factory, |
136 rtc::scoped_refptr<webrtc::AudioDecoderFactory> audio_decoder_factory) | 151 rtc::scoped_refptr<webrtc::AudioDecoderFactory> audio_decoder_factory) |
137 : owns_ptrs_(true), | 152 : owns_ptrs_(true), |
138 wraps_current_thread_(false), | 153 wraps_current_thread_(false), |
139 network_thread_(rtc::Thread::CreateWithSocketServer().release()), | 154 network_thread_(rtc::Thread::CreateWithSocketServer().release()), |
140 worker_thread_(rtc::Thread::Create().release()), | 155 worker_thread_(rtc::Thread::Create().release()), |
141 signaling_thread_(rtc::Thread::Current()), | 156 signaling_thread_(rtc::Thread::Current()), |
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
378 return worker_thread_; | 393 return worker_thread_; |
379 } | 394 } |
380 | 395 |
381 rtc::Thread* PeerConnectionFactory::network_thread() { | 396 rtc::Thread* PeerConnectionFactory::network_thread() { |
382 return network_thread_; | 397 return network_thread_; |
383 } | 398 } |
384 | 399 |
385 std::unique_ptr<cricket::MediaEngineInterface> | 400 std::unique_ptr<cricket::MediaEngineInterface> |
386 PeerConnectionFactory::CreateMediaEngine_w() { | 401 PeerConnectionFactory::CreateMediaEngine_w() { |
387 RTC_DCHECK(worker_thread_ == rtc::Thread::Current()); | 402 RTC_DCHECK(worker_thread_ == rtc::Thread::Current()); |
388 return std::unique_ptr<cricket::MediaEngineInterface>( | 403 return CreateMediaEngineImpl( |
389 cricket::WebRtcMediaEngineFactory::Create( | 404 default_adm_.get(), audio_encoder_factory_, audio_decoder_factory_, |
390 default_adm_.get(), audio_encoder_factory_, | 405 video_encoder_factory_.get(), video_decoder_factory_.get(), |
391 audio_decoder_factory_, | 406 external_audio_mixer_); |
392 video_encoder_factory_.get(), video_decoder_factory_.get(), | |
393 external_audio_mixer_)); | |
394 } | 407 } |
395 | 408 |
396 } // namespace webrtc | 409 } // namespace webrtc |
OLD | NEW |