Mercurial > hg > easaier-soundaccess
diff sv/audioio/AudioCallbackPlaySource.cpp @ 110:71e5f393b727
debugging TimeStretchFilter - adding safety margin to buffers
author | lbajardsilogic |
---|---|
date | Mon, 17 Sep 2007 08:07:23 +0000 |
parents | d94ee3e8dfe1 |
children | 66af7c1b10d9 |
line wrap: on
line diff
--- a/sv/audioio/AudioCallbackPlaySource.cpp Fri Sep 14 16:50:30 2007 +0000 +++ b/sv/audioio/AudioCallbackPlaySource.cpp Mon Sep 17 08:07:23 2007 +0000 @@ -33,7 +33,8 @@ //#define DEBUG_AUDIO_PLAY_SOURCE 1 //#define DEBUG_AUDIO_PLAY_SOURCE_PLAYING 1 -const size_t AudioCallbackPlaySource::m_ringBufferSize = 131071; +//const size_t AudioCallbackPlaySource::m_ringBufferSize = 131071; +const size_t AudioCallbackPlaySource::m_ringBufferSize = 1764000; AudioCallbackPlaySource::AudioCallbackPlaySource(ViewManager *manager) : m_viewManager(manager), @@ -1558,6 +1559,20 @@ { ib[c] = (float*) malloc(required*sizeof(float)); RingBuffer<float> *rb = getReadRingBuffer(c); + if (!rb) { + std::cerr << "WARNING: AudioCallbackPlaySource::applyRealTimeFilters: " + << "No ring buffer available for channel " << c + << ", returning no data here" << std::endl; + return; + } + size_t rs = rb->getReadSpace(); + if (rs < required) { + std::cerr << "WARNING: AudioCallbackPlaySource::applyRealTimeFilters: " + << "Ring buffer for channel " << c << " has only " + << rs << " (of " << got << ") samples available, " + << "exit" << std::endl; + return; + } if (rb) { size_t gotHere = rb->peek(ib[c], got); if (gotHere < got)