On Mon, 2012-10-01 at 17:06 +0200, David Henningsson wrote: > If there is no silence memblock and no data, pa_memblockq_peek can > return NULL. In this case, do not crash on an assertion in > pa_memblock_acquire, but instead return a proper error to the client. If there is no data in the buffer, pa_stream_peek() is supposed to return NULL according to the documentation. And it does that: if there's no data, pa_memblock_peek() will return a negative value, causing pa_stream_peek() to return NULL. The problem is the case where the buffer does contain data, but not at the read index. That is, there is a hole in the buffer. The client documentation doesn't have any warnings about holes, so the only safe way to handle holes is to return silence. Fixing this should be a simple matter of giving a silence memchunk when creating record_memblockq. -- Tanu