diff --git a/ultragrid/src/audio/playback/coreaudio.c b/ultragrid/src/audio/playback/coreaudio.c index ffb82b983..aed4d46b0 100644 --- a/ultragrid/src/audio/playback/coreaudio.c +++ b/ultragrid/src/audio/playback/coreaudio.c @@ -91,9 +91,10 @@ static OSStatus theRenderProc(void *inRefCon, ret = ring_buffer_read(s->buffer, ioData->mBuffers[0].mData, write_bytes); ioData->mBuffers[0].mDataByteSize = ret; - if(!write_bytes) { + if(!ret) { fprintf(stderr, "[CoreAudio] Audio buffer underflow.\n"); - //usleep(10 * 1000 * 1000); + memset(ioData->mBuffers[0].mData, 0, write_bytes); + ioData->mBuffers[0].mDataByteSize = write_bytes; } return noErr; } diff --git a/ultragrid/src/utils/ring_buffer.c b/ultragrid/src/utils/ring_buffer.c index 8ebb41388..18df161c1 100644 --- a/ultragrid/src/utils/ring_buffer.c +++ b/ultragrid/src/utils/ring_buffer.c @@ -113,7 +113,7 @@ void ring_buffer_write(struct ring_buffer * ring, const char *in, int len) { if(read_len_new < 0) read_len_new += ring->len; if(read_len_new < read_len_old) { - fprintf(stderr, "Warning: ring buffer underflow!!!\n"); + fprintf(stderr, "Warning: ring buffer overflow!!!\n"); } }