[alsa-devel] _mmap_playback_avail() short
clemens at ladisch.de
Tue Nov 29 16:21:51 CET 2011
Alan Horstmann wrote:
> On Monday 28 November 2011 21:12, Clemens Ladisch wrote:
> > As a workaround, try snd_pcm_hw_params_set_periods_integer().
> Integer period for the pcm is actually already being set.
Strange; there's a bug somewhere ...
> Can you also explain how the non-integer period *size* is handled?
There are no non-integer period sizes.
> In the test case, dmix is set to 48000 with period 1024. So at 44100 the
> rate conversion means the corresponding period size is 940.8. I am not
> sure how that gets handled. From the params dump giving period as (940 941)
> I had anticipated that a mixture of 4 * 941 and one 940 period would occur.
> However, what I see is that at a period boundary there is always just 940
> avail_frames - is that correct?
Have a look in /proc/asound/cardX/pcm0p/sub0/hw_params.
> How does that get converted to the 1024 frames at 48000? Will there be
> irregular timing?
The rate plugin uses the proportion of the two period sizes for rate
conversion. In your example, 940 samples are always converted into 1024
samples; the actual sample rate is 48000/1024*940 = 44062.5.
More information about the Alsa-devel