diff --git a/src/audio/pulselayer.cpp b/src/audio/pulselayer.cpp index a2da80d467f095d9cfbd318e81349f05292ab8a2..c078f25c2d9421d6413ea3906a5c2b17bab2875c 100644 --- a/src/audio/pulselayer.cpp +++ b/src/audio/pulselayer.cpp @@ -325,15 +325,17 @@ void PulseLayer::writeToSpeaker( void ) normalAvail = _mainSndRingBuffer.AvailForGet(); toGet = (normalAvail < (int)(framesPerBuffer * sizeof(SFLDataFormat))) ? normalAvail : framesPerBuffer * sizeof(SFLDataFormat); if (toGet) { - _mainSndRingBuffer.Get(out, toGet, 100); - _mainSndRingBuffer.Discard(toGet); + _mainSndRingBuffer.Get(out, toGet, 100); + _mainSndRingBuffer.Discard(toGet); } else { - bzero(out, framesPerBuffer * sizeof(SFLDataFormat)); + bzero(out, framesPerBuffer * sizeof(SFLDataFormat)); } pa_stream_write( playback->pulseStream() , out , toGet , pa_xfree, 0 , PA_SEEK_RELATIVE); } } + + if(out) pa_xfree(out); } void PulseLayer::readFromMic( void )