webrtc中音频3A处理开关配置
1 音频引擎初始化的时对3A处理进行设置
c++
WebRtcVoiceEngine::Init
media/engine/webrtc_voice_engine.h
WebRtcVoiceEngine::ApplyOptions
media/engine/webrtc_voice_engine.h
modules/audio_processing/audio_processing_impl.h
AudioProcessingImpl::ApplyConfig
2 创建audio source时设置3A参数
c++
cricket::AudioOptions options;
options.highpass_filter = true;
options.echo_cancellation = true;
options.auto_gain_control = true;
options.noise_suppression = true;
options.combined_audio_video_bwe = true;
options.residual_echo_detector = true;//残余回音消除
rtc::scoped_refptr<webrtc::AudioSourceInterface> source = g_factory->CreateAudioSource(options);
rtc::scoped_refptr<webrtc::AudioTrackInterface> trackPtr = g_factory->CreateAudioTrack(label, source);
PeerConnection::AddTransceiver
pc/peer_connection.h
关键参数:
cricket::MediaType media_type,
rtc::scoped_refptr<MediaStreamTrackInterface> track
PeerConnection::CreateSender
pc/peer_connection.h
关键参数:
rtc::scoped_refptr<MediaStreamTrackInterface> track
RtpSenderBase::SetTrack(MediaStreamTrackInterface* track)
pc/rtp_sender.h
AudioRtpSender::SetSend
pc/rtp_sender.h
备注:
1获取track中source的配置(3A处理相关选项)
2 voice_media_channel()->SetAudioSend(ssrc_, track_enabled, &options,
sink_adapter_.get());
WebRtcVoiceMediaChannel::SetAudioSend
media/engine/webrtc_voice_engine.h
WebRtcVoiceMediaChannel::SetOptions
media/engine/webrtc_voice_engine.h
WebRtcVoiceEngine::ApplyOptions
media/engine/webrtc_voice_engine.h
modules/audio_processing/audio_processing_impl.h
AudioProcessingImpl::ApplyConfig