diff --git a/sflphone-common/src/audio/pulseaudio/pulselayer.cpp b/sflphone-common/src/audio/pulseaudio/pulselayer.cpp index e0aca6a3fb0133a1be689061e4801d79bbb3fd0a..7a1664ec90a38cb9d78c41d2e96ee9a22a2ef787 100644 --- a/sflphone-common/src/audio/pulseaudio/pulselayer.cpp +++ b/sflphone-common/src/audio/pulseaudio/pulselayer.cpp @@ -58,7 +58,7 @@ static void stream_moved_callback(pa_stream *s UNUSED, void *userdata UNUSED) static void playback_underflow_callback (pa_stream* s, void* userdata UNUSED) { _debug ("Audio: Buffer Underflow"); - + pa_stream_trigger (s, NULL, NULL); } @@ -292,7 +292,6 @@ bool PulseLayer::disconnectAudioStream (void) _info("Audio: Disconnect audio stream"); closePlaybackStream(); - closeCaptureStream(); if (!playback && !record) @@ -305,7 +304,6 @@ bool PulseLayer::disconnectAudioStream (void) void PulseLayer::closeCaptureStream (void) { if (record) { - delete record; record=NULL; } @@ -315,7 +313,6 @@ void PulseLayer::closeCaptureStream (void) void PulseLayer::closePlaybackStream (void) { if (playback) { - delete playback; playback=NULL; } @@ -360,8 +357,11 @@ PulseLayer::stopStream (void) { _info("Audio: Stop audio stream"); - pa_stream_flush (playback->pulseStream(), NULL, NULL); - pa_stream_flush (record->pulseStream(), NULL, NULL); + if(playback) + pa_stream_flush (playback->pulseStream(), NULL, NULL); + + if(record) + pa_stream_flush (record->pulseStream(), NULL, NULL); disconnectAudioStream(); }