<!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&nbsp;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&nbsp;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>&nbsp;</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&nbsp;cvs 
repository&nbsp;it does look like mmap was&nbsp;an option&nbsp;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>&nbsp;</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>&nbsp;</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>&nbsp;</DIV></BODY></HTML>