[pulseaudio-discuss] pa_sink_render(), minimum chunk.memblock length
Lennart Poettering
lennart at poettering.net
Fri Apr 24 18:47:18 PDT 2009
On Fri, 24.04.09 17:31, Baek Chang (baeksan at ccrma.stanford.edu) wrote:
> When calling pa_sink_render(pa_sink*s, size_t length, pa_memchunk *result),
> is there a way to specify the minimum requested length for the chunk? The
> length that is passed in, is the maximum request for the thread, but I don't
> see that there is a minimum requested length. Is this set up by configuring
> the minimum requested latency when the sink is created?
>
> In my module, I request 4096 bytes, and sometimes I get back 628. When I
> request say 8192, I still get 628 sometimes. Is there a relation to the max
> requested length of the memchunk and what is actually returned?
No, there is no lower limit that you could configure. This wouldn't
really fit into the zero-copy logic of PA because enforcing a minimal
block size like this would require merging multiple smaller blocks by
copying them together.
If you have device with fixed block sizes you can use
pa_sink_render_into() instead of pa_sink_render(). That will mix
exactly the requested amount of data into the buffer you pass to
it.
Lennart
--
Lennart Poettering Red Hat, Inc.
lennart [at] poettering [dot] net ICQ# 11060553
http://0pointer.net/lennart/ GnuPG 0x1A015CC4
More information about the pulseaudio-discuss
mailing list