diff --git a/src/speaker_capturer/linux/speaker_capturer_linux.cpp b/src/speaker_capturer/linux/speaker_capturer_linux.cpp index 777a6ec..4b58799 100644 --- a/src/speaker_capturer/linux/speaker_capturer_linux.cpp +++ b/src/speaker_capturer/linux/speaker_capturer_linux.cpp @@ -164,7 +164,10 @@ int SpeakerCapturerLinux::Start() { self->frame_cache_.insert(self->frame_cache_.end(), p, p + len); while (self->frame_cache_.size() >= kFrameSizeBytes) { - self->cb_(self->frame_cache_.data(), kFrameSizeBytes, "audio"); + std::vector temp_frame( + self->frame_cache_.begin(), + self->frame_cache_.begin() + kFrameSizeBytes); + self->cb_(temp_frame.data(), kFrameSizeBytes, "audio"); self->frame_cache_.erase( self->frame_cache_.begin(), self->frame_cache_.begin() + kFrameSizeBytes);