Re: More snd_pcm_ioplug_avail_update() questions

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

 



On Wed, 25 Jul 2018 23:52:36 +0200,
Rob Duncan wrote:
> 
> Is it required that all available data has been committed between calls
> to snd_pcm_ioplug_avail_update() on an IO plugin capture stream?

Yes, the capture data is committed.
The snd_pcm_ioplug_hw_ptr_update() should have reported the amount of
data the slave PCM can actually transfer.  Hence the transfer call
thereafter must fulfill the whole requested data.

The capture in ioplug is a sort of mmap emulation.  On real hardware,
the mmap data is already committed before update_avail is called,
update_avail just follows the already committed amount.  In the
emulation mode, it's other way round; the data is committed at the
point hwptr is update, i.e. avail_update is called.


Takashi

> If this is not a requirement then there can still be uncommitted data in
> the mmap after the current appl_ptr.  This data will get overwritten by
> the transfer call.
> 
> If it is a requirement then snd_pcm_rate_avail_update() seems to be
> doing the wrong thing, because it only commits in units of the period
> size, which means that there could be a partial period left in the mmap.
> 
> Can someone clarify what the contract is for these calls?
> 
> Thanks,
> 
> Rob.
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@xxxxxxxxxxxxxxxx
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> 
_______________________________________________
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