WebRTC audio采集、编码、发送

AudioDeviceLinuxPulse::RecThreadProcess

AudioDeviceLinuxPulse::ProcessRecordedData

AudioDeviceLinuxPulse::ReadRecordedData

 // Provide data to VoiceEngine
        if (ProcessRecordedData(_recBuffer, numRecSamples, recDelay) == -1)
        {
            // We have stopped recording
            return -1;
        }

 

AudioDeviceBuffer::DeliverRecordedData

VoEBaseImpl::RecordedDataIsAvailable

VoEBaseImpl::ProcessRecordedDataWithAPM

VoEBaseImpl::ProcessRecordedDataWithAPM

TransmitMixer::PrepareDemux

TransmitMixer::GenerateAudioFrame

VoEBaseImpl::ProcessRecordedDataWithAPM

TransmitMixer::DemuxAndMix

Channel::Demultiplex

Channel::PrepareEncodeAndSend

TransmitMixer::EncodeAndSend

Channel::EncodeAndSend

AudioCodingModuleImpl::Add10MsData

 

    // The ACM resamples internally.
    _audioFrame.timestamp_ = _timeStamp;
    if (audio_coding_->Add10MsData((AudioFrame&)_audioFrame) != 0)
    {
        WEBRTC_TRACE(kTraceError, kTraceVoice, VoEId(_instanceId,_channelId),
                     "Channel::EncodeAndSend() ACM encoding failed");
        return -1;
    }

AudioCodingModuleImpl::PreprocessToAddData

ACMGenericCodec::Add10MsDataSafe

ACMGenericCodec::Encode

AudioCodingModuleImpl::ProcessSingleStream

Channel::SendData

ModuleRtpRtcpImpl::SendOutgoingData

RTPSender::SendOutgoingData

RTPSender::BuildRTPheader

RTPSender::SendToNetwork

Channel::SendPacket

BaseChannel::SendPacket

P2PTransportChannel::SendPacket

AsyncUDPSocket::SendTo

PhysicalSocket: Sendto

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。