Merge pull request #5356 from xperia64/cubeb_avoid_leak

Avoid leaking cubeb input stream
This commit is contained in:
Pengfei Zhu 2020-05-22 22:04:14 +08:00 committed by GitHub
commit c4ba7b3626
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 10 additions and 2 deletions

View File

@ -37,8 +37,12 @@ CubebInput::~CubebInput() {
if (!impl->ctx)
return;
if (cubeb_stream_stop(impl->stream) != CUBEB_OK) {
LOG_ERROR(Audio, "Error stopping cubeb input stream.");
if (impl->stream) {
if (cubeb_stream_stop(impl->stream) != CUBEB_OK) {
LOG_ERROR(Audio, "Error stopping cubeb input stream.");
}
cubeb_stream_destroy(impl->stream);
}
cubeb_destroy(impl->ctx);
@ -103,8 +107,12 @@ void CubebInput::StartSampling(const Frontend::Mic::Parameters& params) {
}
void CubebInput::StopSampling() {
// TODO(xperia64): Destroy the stream for now to avoid a leak because StartSampling
// reinitializes the stream every time
if (impl->stream) {
cubeb_stream_stop(impl->stream);
cubeb_stream_destroy(impl->stream);
impl->stream = nullptr;
}
is_sampling = false;
}