[LAD] [Jack-Devel] jack2's dbus name

Lennart Poettering mzynq at 0pointer.de
Thu Jun 18 18:59:37 UTC 2009


On Thu, 18.06.09 20:12, Jussi Laako (jussi at sonarnerd.net) wrote:

> 
> Lennart Poettering wrote:
> > PA does not use fixed block sizes. We always use the largest chunk
> > sizes the applications pass to us and break them up into smaller
> > pieces only when really necessary. We really try our best not having
> > to touch/convert/split/copy user supplied PCM data if we don't have
> > to.
> 
> This is quite different from the goals of JACK, where the purpose is to
> minimize input -> output latency and thus use as small as possible blocks.

Uh. No. That's bogus.

If an application can send PA data in larger blocks then we are happy
about it and take it. Of course, if the application needs low
latencies then it shouldn't pass huge blocks to us, but instead many
smaller ones. The block size the app chooses is entirely up to it, and
it may actually set the size of every block differently at free will.

The general rule for block sizes is to choose them as large as
possible however, as small as necessary and. For example, When you
play data from a file source the block size can safely be chosen very
large, while at the same time DSP data that is passed through needs
much smaller block sizes.

In PA I generally try to cater both for lower latencies and for
minimal CPU usage/wakeups. How to choose buffer sizes highly depends
on the application accessing PA so we do our best to dynamically
adjust to it and try to accept whatever the apps give us. Even when
that means that one app passes us huge blocks while another one passes
us small ones at the same time.

The big difference between JACK and PA here is that in JACK the
transfer of data is mostly done synchronously while in PA we do that
asynchronously. Which is the case because we need to make sure that no
misbheaving client can easily trigger dropouts or even make audio stop
entirely -- which is something much less important for JACK.

Lennart

-- 
Lennart Poettering                        Red Hat, Inc.
lennart [at] poettering [dot] net
http://0pointer.net/lennart/           GnuPG 0x1A015CC4



More information about the Linux-audio-dev mailing list