diff --git a/sflphone-common/src/audio/pulseaudio/pulselayer.cpp b/sflphone-common/src/audio/pulseaudio/pulselayer.cpp index c1ffa9c9c0ce9836b3366a2acdec810291586baf..4000b727b677ac63a505f14dc0bde009875d8aae 100644 --- a/sflphone-common/src/audio/pulseaudio/pulselayer.cpp +++ b/sflphone-common/src/audio/pulseaudio/pulselayer.cpp @@ -405,12 +405,19 @@ PulseLayer::stopStream (void) // pa_threaded_mainloop_unlock (m); + _debug("Disconnecting PulseAudio context\n"); + if (context) { + + pa_threaded_mainloop_lock (m); pa_context_disconnect (context); pa_context_unref (context); + pa_threaded_mainloop_unlock (m); context = NULL; } + _debug("Freeing Pulseaudio mainloop\n"); + if (m) { pa_threaded_mainloop_free (m); m = NULL;