<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.3395" name=GENERATOR></HEAD>
<BODY>
<DIV><SPAN class=988325016-03102008><FONT face=Arial size=2>Hi
everyone,</FONT></SPAN></DIV>
<DIV><SPAN class=988325016-03102008><FONT face=Arial size=2>I wonder why
alsasink does not rely on the mmap() utilities provided by alsa, namely
snd_pcm_mmap_begin() and snd_pcm_mmap_commit(). If my understanding is
correct, the audio data provided to alsasink is first copied in a ring buffer,
then passed to alsa using snd_pcm_writei(), which results in an
additional copy from user to kernel space. For embedded low-power devices
with dedicated internal ram for audio, this does not make a lot of sense, you
want to write directly incoming data into the hardware
buffer.</FONT></SPAN></DIV>
<DIV><SPAN class=988325016-03102008> </SPAN></DIV>
<DIV><SPAN class=988325016-03102008><FONT face=Arial size=2>I understand though
that not all audio devices support mmap, but looking at the cvs
repository it does look like mmap was an option in gstreamer
several years ago, and it disappeared in version 1.40 of gstalsasink.c.
</FONT></SPAN><SPAN class=988325016-03102008><FONT face=Arial size=2>Does anyone
know why this support was removed ? And how difficult it would be to add it
again ?</FONT></SPAN></DIV>
<DIV><SPAN class=988325016-03102008><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=988325016-03102008><FONT face=Arial size=2>Thanks for your
feedback.</FONT></SPAN></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV align=left><FONT face=Arial size=2>Regards,</FONT></DIV>
<DIV align=left><FONT face=Arial size=2>- Pierre</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV></BODY></HTML>