common : more general m_audio_len update logic (#2855)

Co-authored-by: Ivy233 <wangjinrun@uniontech.com>
This commit is contained in:
Ivy233 2025-03-07 16:10:03 +08:00 committed by GitHub
parent c774eec709
commit ef40950c4a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -159,16 +159,12 @@ void audio_async::callback(uint8_t * stream, int len) {
memcpy(&m_audio[m_audio_pos], stream, n0 * sizeof(float)); memcpy(&m_audio[m_audio_pos], stream, n0 * sizeof(float));
memcpy(&m_audio[0], stream + n0 * sizeof(float), (n_samples - n0) * sizeof(float)); memcpy(&m_audio[0], stream + n0 * sizeof(float), (n_samples - n0) * sizeof(float));
m_audio_pos = (m_audio_pos + n_samples) % m_audio.size();
m_audio_len = m_audio.size();
} else { } else {
memcpy(&m_audio[m_audio_pos], stream, n_samples * sizeof(float)); memcpy(&m_audio[m_audio_pos], stream, n_samples * sizeof(float));
}
m_audio_pos = (m_audio_pos + n_samples) % m_audio.size(); m_audio_pos = (m_audio_pos + n_samples) % m_audio.size();
m_audio_len = std::min(m_audio_len + n_samples, m_audio.size()); m_audio_len = std::min(m_audio_len + n_samples, m_audio.size());
} }
}
} }
void audio_async::get(int ms, std::vector<float> & result) { void audio_async::get(int ms, std::vector<float> & result) {