Re: Proposal for more reliable audio DMA.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



At Wed, 24 Jun 2009 15:07:17 -0400,
Jon Smirl wrote:
> 
> On Wed, Jun 24, 2009 at 12:28 PM, Mark
> Brown<broonie@xxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
> > On 24 Jun 2009, at 17:07, Jon Smirl <jonsmirl@xxxxxxxxx> wrote:
> >
> >> Trying to directly expose the ring buffer to the app seems like a good
> >>
> >> way to avoid a copy, but it isn't achieving that. pulse is not
> >> decoding audio straight into the ring buffer, it decodes first and
> >> then copies into the buffer. Pulse is using the timers to estimate the
> >> destination for the copy.  Move this copy down into the drivers, the
> >> drivers know the correct destination for the copy.
> >
> > Pulse isn't just doing straight playback, a large part of what it's there
> > for is to do software mixing. When you have multiple sources active pulse is
> > going to be forced to do the copy as part of the mixing process so putting
> > that bit of the buffer management in kernel won't help in the way you think
> > it does. Part of what's going on here is that the kernel code is trying to
> > give userspace access to the data for as long as possible.
> >
> 
> Does this work as a use case?
> 
> Pulse is playing music in the background.  A game want to do a laser blast.
> 
> Pulse has already sent a buffer into kernel for the background music.
> Pulse makes a new buffer that contains the background mixed with the laser.
> It sends this new buffer into the kernel and says play with minimum latency.

When it's mmapped and can be updated on the fly, no need to resend the
buffer.  You can just rewrite it.

> The problem is knowing which sample in the background music to start
> mixing the low latency laser blast into.

That's why querying the accurate hwptr is important in PA.


Takashi
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel


[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux