diff --git a/mythtv/libs/libmyth/audio/audiooutputpulse.cpp b/mythtv/libs/libmyth/audio/audiooutputpulse.cpp index a7d2b907cb4..20bf8188107 100644 --- a/mythtv/libs/libmyth/audio/audiooutputpulse.cpp +++ b/mythtv/libs/libmyth/audio/audiooutputpulse.cpp @@ -45,6 +45,11 @@ AudioOutputPulseAudio::AudioOutputPulseAudio(const AudioSettings &settings) : AudioOutputPulseAudio::~AudioOutputPulseAudio() { KillAudio(); + if (pcontext) + { + pa_context_unref(pcontext); + pcontext = NULL; + } } AudioOutputSettings* AudioOutputPulseAudio::GetOutputSettings() @@ -106,6 +111,7 @@ AudioOutputSettings* AudioOutputPulseAudio::GetOutputSettings() } pa_context_disconnect(pcontext); + pa_context_unref(pcontext); pcontext = NULL; pa_threaded_mainloop_stop(mainloop); mainloop = NULL; @@ -210,6 +216,7 @@ void AudioOutputPulseAudio::CloseDevice() { pa_context_drain(pcontext, NULL, NULL); pa_context_disconnect(pcontext); + pa_context_unref(pcontext); pcontext = NULL; }