From 552155bd1f5824c536dd6d1bbc8d293f3f1d8499 Mon Sep 17 00:00:00 2001 From: Nils Fenner Date: Wed, 23 Dec 2015 23:29:20 +0100 Subject: [PATCH] Merge PR #2719 from antis81:fix_audio_subscriptions * fix dangling audio output device * do not resubscribe sid in copy constructor --- src/audio/audio.cpp | 4 ++-- src/core/toxcall.cpp | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/audio/audio.cpp b/src/audio/audio.cpp index 5d67c6917..704c4c17c 100644 --- a/src/audio/audio.cpp +++ b/src/audio/audio.cpp @@ -760,6 +760,8 @@ void Audio::unsubscribeOutput(SID& sid) { QMutexLocker locker(&d->audioLock); + d->outSources.removeAll(sid); + if (sid) { if (alIsSource(sid)) { alDeleteSources(1, &sid); @@ -772,8 +774,6 @@ void Audio::unsubscribeOutput(SID& sid) sid = 0; } - d->outSources.removeAll(sid); - if (d->outSources.isEmpty()) d->cleanupOutput(); } diff --git a/src/core/toxcall.cpp b/src/core/toxcall.cpp index 7a878edc6..191034f1e 100644 --- a/src/core/toxcall.cpp +++ b/src/core/toxcall.cpp @@ -49,7 +49,6 @@ ToxCall::ToxCall(ToxCall&& other) noexcept // required -> ownership of audio input is moved to new instance Audio& audio = Audio::getInstance(); audio.subscribeInput(); - audio.subscribeOutput(alSource); #ifdef QTOX_FILTER_AUDIO filterer = other.filterer;