WebRTC audio解码后播放【转】

    xiaoxiao2026-06-09  10

    AudioDeviceLinuxPulse::PlayThreadProcess AudioDeviceBuffer::RequestPlayoutData 因为 将 AudioDeviceBuffer注册了audioCallback WebRtc_Word32 AudioDeviceBuffer::RegisterAudioCallback(AudioTransport* audioCallback) { CriticalSectionScoped lock(&_critSectCb); _ptrCbAudioTransport = audioCallback; return 0; } VoEBaseImpl::NeedMorePlayData // Register the AudioTransport implementation if (_shared->audio_device()->RegisterAudioCallback(this) != 0) { _shared->SetLastError(VE_AUDIO_DEVICE_MODULE_ERROR, kTraceWarning, "Init() failed to register audio callback for the ADM"); } 所以_ptrCbAudioTransport->NeedMorePlayData会调用到VoEBaseImpl::NeedMorePlayData res = _ptrCbAudioTransport->NeedMorePlayData(_playSamples, playBytesPerSample, playChannels, playSampleRate, &_playBuffer[0], nSamplesOut, &elapsed_time_ms, &ntp_time_ms); VoEBaseImpl::NeedMorePlayData OutputMixer::MixActiveChannels AudioConferenceMixerImpl::Process AudioConferenceMixerImpl::UpdateToMix Channel::GetAudioFrame AudioCodingModuleImpl::PlayoutData10Ms ACMNetEQ::RecOut WebRtcNetEQ_RecOut WebRtcNetEQ_RecOutInternal WebRtcNetEQ_DSP2MCUinterrupt WebRtcNetEQ_SignalMcu WebRtcNetEQ_PacketBufferExtract WebRtcNetEQ_BufstatsDecision WebRtcNetEQ_DSPInit FuncDecode OutputMixer::DoOperationsOnCombinedSignal AudioProcessingImpl::AnalyzeReverseStream OutputMixer::GetMixedAudio RemixAndResample AudioDeviceBuffer::GetPlayoutData AudioDeviceLinuxPulse::EnableWriteCallback AudioDeviceLinuxPulse::PaStreamWriteCallbackHandler LATE(pa_stream_peek)(_recStream, &sampleData, &sampleDataSize) if (LATE(pa_stream_write)( _playStream,(void *) &_playBuffer[_playbackBufferUnused],write, NULL, (int64_t) 0,PA_SEEK_RELATIVE) != PA_OK)来自: http://blog.csdn.net/u014338577/article/details/45748017

    转载请注明原文地址: https://ju.6miu.com/read-1310353.html
    最新回复(0)