return;
}
- const size_t n_samples = len / sizeof(float);
+ size_t n_samples = len / sizeof(float);
- m_audio_new.resize(n_samples);
- memcpy(m_audio_new.data(), stream, n_samples * sizeof(float));
+ if (n_samples > m_audio.size()) {
+ n_samples = m_audio.size();
+
+ stream += (len - (n_samples * sizeof(float)));
+ }
//fprintf(stderr, "%s: %zu samples, pos %zu, len %zu\n", __func__, n_samples, m_audio_pos, m_audio_len);
const size_t n0 = m_audio.size() - m_audio_pos;
memcpy(&m_audio[m_audio_pos], stream, n0 * sizeof(float));
- memcpy(&m_audio[0], &stream[n0], (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();