At Tue, 16 Sep 2003 10:19:53 -0400,
Manuel Jander wrote:
> 
> Hello,
> 
> I have the following dilema. The Aureal Vortex DMA engine supports
> upto 4 hardware pages, but they have to be frame aligned. The current
> driver also needs them to be of the same size. To archive this, i added
> the following code in the pcm "open" function.
> 
> /* Force equal size periods */
> if ((err = snd_pcm_hw_constraint_integer(runtime,
> SNDRV_PCM_HW_PARAM_PERIODS)) < 0)
> return err;
> /* Force DMA 32 bit alignment */
> if ((err = snd_pcm_hw_constraint_step(runtime, 0,
> SNDRV_PCM_HW_PARAM_PERIOD_BYTES, 4)) < 0)
> return err;
> 
> Now PCM works correctly, but some apps, like aplay fail to play some
> formats, because they get their period size requirementes rejected, and
> they just give up instead of trying other period sizes. Since aplay uses
> a time based criteria for the period sizes instead of "sane" values, the
> period sizes are very odd.

yes, this is a known issue.
recently i've talked with Jaroslav about this theme, and we agreed
that it's a design flaw of the current configurator system.

> The question is, should i blame aplay or try to implement some
> workaround in the Aureal driver ??

i fixed aplay recently to allocate the period size first.
this works better than the former way (buffer -> period).
please try the cvs version.

about the influence of this bug: 
AFAIK, very rare applications use the time-based period/buffer size,
so this is not critical.  strangely enough, aplay is an exception :)

(btw, aplay has also options to specify the buffer/period sizes in
frames, but the time-based values are used as default.)


Takashi


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Alsa-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-devel

Reply via email to