Advertisement
Guest User

Software based mmap support and dmix

a guest
May 6th, 2015
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.14 KB | None | 0 0
  1. Hi all,
  2.  
  3. I am trying to have dmix plugin work ( I succeeded) with the audio card that does not have hardware mmap support and uses pcm_indirect method to map software buffer for mmap feature.
  4.  
  5. Most of the plugins were working quite well with mmap/pcm_indirect combo. However, dmix plugin did not work (no sound). I debugged and realized that appl_ptr in pcm_direct.h(snd_pcm_indirect_playback_transfer()) was always 0 and hence nothing got copied to slave pcm buffer. I then discovered that dmix operates in freewheeling-mode..
  6.  
  7. I have made a small workaround patch (I believe it can be cleaned up) in case of free-wheeling mode, basically using sw_ready to hold bytes that need to be copied. I used rec->sw_ready because it looked safest to use for this purpose. As a result of this patch, normally period_size bytes are copied to pcm buffer every period and sound is playing smooth.
  8.  
  9. I am a noob in alsa and linux in general. So, I would like your opinion on the patch. I would much prefer if I could write a patch that is generic and clean enough, so that it could be used by others. New pcm-indirect.h attached.
  10.  
  11. Thanks a lot for your help.
  12. Regards
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement