WebRTCDemo.apk代码走读(4):音频发送流程

WebRTCDemo.apk代码走读(四):音频发送流程

转载注明出处http://blog.csdn.net/wanghorse

发送音频
OpenSlesInput::RecorderSimpleBufferQueueCallback
    OpenSlesInput::RecorderSimpleBufferQueueCallbackHandler,保存数据
OpenSlesInput::CbThreadImpl
    AudioDeviceBuffer::SetRecordedBuffer, 复制数据
    AudioDeviceBuffer::SetVQEData
    AudioDeviceBuffer::DeliverRecordedData
        VoEBaseImpl::RecordedDataIsAvailable
            VoEBaseImpl::ProcessRecordedDataWithAPM
                AudioDeviceModuleImpl::MaxMicrophoneVolume
                    AudioDeviceTemplate::MaxMicrophoneVolume
                TransmitMixer::PrepareDemux
                    TransmitMixer::GenerateAudioFrame
                        DownConvertToCodecFormat, 单双转换,重采样
                            PushResampler<T>::Resample
                    TransmitMixer::ProcessAudioagcaecanc
                        AudioProcessingImpl::ProcessStream
                            AudioBuffer::DeinterleaveFrom
                            AudioProcessingImpl::ProcessStreamLocked
                            AudioBuffer::InterleaveTo
                TransmitMixer::DemuxAndMix
                    Channel::Demultiplex 复制数据
                    Channel::PrepareEncodeAndSend, 一些处理,比如添加dtmf
                TransmitMixer::EncodeAndSend()
                    Channel::EncodeAndSend
                        AudioCodingModuleImpl::Add10MsData
                            AudioCodingModuleImpl::PreprocessToAddData 存储数据
                        AudioCodingModuleImpl::Process
                            AudioCodingModuleImpl::ProcessSingleStream
                                ACMGenericCodec::Encode
                                    ACMISAC::InternalEncode
                                Channel::SendData
                                    ModuleRtpRtcpImpl::SendOutgoingData
                                        RTPSender::SendOutgoingData
                                            RTPSenderAudio::SendAudio
                                                RTPSender::BuildRTPheader
                                                    RTPSender::CreateRtpHeader
                                                RTPSender::SendToNetwork
                                                    统计
                                                    RTPSender::SendPacketToNetwork
                                                        Channel::SendPacket
                                                            UdpTransportImpl::SendPacket