OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2004 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 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/base/stringutils.h" | 30 #include "webrtc/base/stringutils.h" |
31 #include "webrtc/base/trace_event.h" | 31 #include "webrtc/base/trace_event.h" |
32 #include "webrtc/media/base/audiosource.h" | 32 #include "webrtc/media/base/audiosource.h" |
33 #include "webrtc/media/base/mediaconstants.h" | 33 #include "webrtc/media/base/mediaconstants.h" |
34 #include "webrtc/media/base/streamparams.h" | 34 #include "webrtc/media/base/streamparams.h" |
35 #include "webrtc/media/engine/adm_helpers.h" | 35 #include "webrtc/media/engine/adm_helpers.h" |
36 #include "webrtc/media/engine/apm_helpers.h" | 36 #include "webrtc/media/engine/apm_helpers.h" |
37 #include "webrtc/media/engine/payload_type_mapper.h" | 37 #include "webrtc/media/engine/payload_type_mapper.h" |
38 #include "webrtc/media/engine/webrtcmediaengine.h" | 38 #include "webrtc/media/engine/webrtcmediaengine.h" |
39 #include "webrtc/media/engine/webrtcvoe.h" | 39 #include "webrtc/media/engine/webrtcvoe.h" |
40 #include "webrtc/modules/audio_coding/codecs/builtin_audio_encoder_factory.h" | |
41 #include "webrtc/modules/audio_mixer/audio_mixer_impl.h" | 40 #include "webrtc/modules/audio_mixer/audio_mixer_impl.h" |
42 #include "webrtc/modules/audio_processing/include/audio_processing.h" | 41 #include "webrtc/modules/audio_processing/include/audio_processing.h" |
43 #include "webrtc/system_wrappers/include/field_trial.h" | 42 #include "webrtc/system_wrappers/include/field_trial.h" |
44 #include "webrtc/system_wrappers/include/metrics.h" | 43 #include "webrtc/system_wrappers/include/metrics.h" |
45 #include "webrtc/system_wrappers/include/trace.h" | 44 #include "webrtc/system_wrappers/include/trace.h" |
46 #include "webrtc/voice_engine/transmit_mixer.h" | 45 #include "webrtc/voice_engine/transmit_mixer.h" |
47 | 46 |
48 namespace cricket { | 47 namespace cricket { |
49 namespace { | 48 namespace { |
50 | 49 |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
204 } else { | 203 } else { |
205 // If codec is multi-rate then just set the bitrate. | 204 // If codec is multi-rate then just set the bitrate. |
206 return rtc::Optional<int>(std::min(bps, spec.info.max_bitrate_bps)); | 205 return rtc::Optional<int>(std::min(bps, spec.info.max_bitrate_bps)); |
207 } | 206 } |
208 } | 207 } |
209 | 208 |
210 } // namespace | 209 } // namespace |
211 | 210 |
212 WebRtcVoiceEngine::WebRtcVoiceEngine( | 211 WebRtcVoiceEngine::WebRtcVoiceEngine( |
213 webrtc::AudioDeviceModule* adm, | 212 webrtc::AudioDeviceModule* adm, |
| 213 const rtc::scoped_refptr<webrtc::AudioEncoderFactory>& encoder_factory, |
214 const rtc::scoped_refptr<webrtc::AudioDecoderFactory>& decoder_factory, | 214 const rtc::scoped_refptr<webrtc::AudioDecoderFactory>& decoder_factory, |
215 rtc::scoped_refptr<webrtc::AudioMixer> audio_mixer) | 215 rtc::scoped_refptr<webrtc::AudioMixer> audio_mixer) |
216 : WebRtcVoiceEngine(adm, decoder_factory, audio_mixer, new VoEWrapper()) { | 216 : WebRtcVoiceEngine(adm, |
| 217 encoder_factory, |
| 218 decoder_factory, |
| 219 audio_mixer, |
| 220 new VoEWrapper()) { |
217 audio_state_ = | 221 audio_state_ = |
218 webrtc::AudioState::Create(MakeAudioStateConfig(voe(), audio_mixer)); | 222 webrtc::AudioState::Create(MakeAudioStateConfig(voe(), audio_mixer)); |
219 } | 223 } |
220 | 224 |
221 WebRtcVoiceEngine::WebRtcVoiceEngine( | 225 WebRtcVoiceEngine::WebRtcVoiceEngine( |
222 webrtc::AudioDeviceModule* adm, | 226 webrtc::AudioDeviceModule* adm, |
| 227 const rtc::scoped_refptr<webrtc::AudioEncoderFactory>& encoder_factory, |
223 const rtc::scoped_refptr<webrtc::AudioDecoderFactory>& decoder_factory, | 228 const rtc::scoped_refptr<webrtc::AudioDecoderFactory>& decoder_factory, |
224 rtc::scoped_refptr<webrtc::AudioMixer> audio_mixer, | 229 rtc::scoped_refptr<webrtc::AudioMixer> audio_mixer, |
225 VoEWrapper* voe_wrapper) | 230 VoEWrapper* voe_wrapper) |
226 : adm_(adm), | 231 : adm_(adm), |
227 encoder_factory_(webrtc::CreateBuiltinAudioEncoderFactory()), | 232 encoder_factory_(encoder_factory), |
228 decoder_factory_(decoder_factory), | 233 decoder_factory_(decoder_factory), |
229 voe_wrapper_(voe_wrapper) { | 234 voe_wrapper_(voe_wrapper) { |
230 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); | 235 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); |
231 LOG(LS_INFO) << "WebRtcVoiceEngine::WebRtcVoiceEngine"; | 236 LOG(LS_INFO) << "WebRtcVoiceEngine::WebRtcVoiceEngine"; |
232 RTC_DCHECK(voe_wrapper); | 237 RTC_DCHECK(voe_wrapper); |
233 RTC_DCHECK(decoder_factory); | 238 RTC_DCHECK(decoder_factory); |
234 | 239 |
235 signal_thread_checker_.DetachFromThread(); | 240 signal_thread_checker_.DetachFromThread(); |
236 | 241 |
237 // Load our audio codec list. | 242 // Load our audio codec lists. |
238 LOG(LS_INFO) << "Supported send codecs in order of preference:"; | 243 LOG(LS_INFO) << "Supported send codecs in order of preference:"; |
239 send_codecs_ = CollectCodecs(encoder_factory_->GetSupportedEncoders()); | 244 send_codecs_ = CollectCodecs(encoder_factory_->GetSupportedEncoders()); |
240 for (const AudioCodec& codec : send_codecs_) { | 245 for (const AudioCodec& codec : send_codecs_) { |
241 LOG(LS_INFO) << ToString(codec); | 246 LOG(LS_INFO) << ToString(codec); |
242 } | 247 } |
243 | 248 |
244 LOG(LS_INFO) << "Supported recv codecs in order of preference:"; | 249 LOG(LS_INFO) << "Supported recv codecs in order of preference:"; |
245 recv_codecs_ = CollectCodecs(decoder_factory_->GetSupportedDecoders()); | 250 recv_codecs_ = CollectCodecs(decoder_factory_->GetSupportedDecoders()); |
246 for (const AudioCodec& codec : recv_codecs_) { | 251 for (const AudioCodec& codec : recv_codecs_) { |
247 LOG(LS_INFO) << ToString(codec); | 252 LOG(LS_INFO) << ToString(codec); |
(...skipping 2074 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2322 ssrc); | 2327 ssrc); |
2323 if (it != unsignaled_recv_ssrcs_.end()) { | 2328 if (it != unsignaled_recv_ssrcs_.end()) { |
2324 unsignaled_recv_ssrcs_.erase(it); | 2329 unsignaled_recv_ssrcs_.erase(it); |
2325 return true; | 2330 return true; |
2326 } | 2331 } |
2327 return false; | 2332 return false; |
2328 } | 2333 } |
2329 } // namespace cricket | 2334 } // namespace cricket |
2330 | 2335 |
2331 #endif // HAVE_WEBRTC_VOICE | 2336 #endif // HAVE_WEBRTC_VOICE |
OLD | NEW |