From mboxrd@z Thu Jan 1 00:00:00 1970 From: Takashi Iwai Subject: Re: PCM format restrict dilema Date: Tue, 16 Sep 2003 18:40:11 +0200 Sender: alsa-devel-admin@lists.sourceforge.net Message-ID: References: <1063721993.1556.12.camel@localhost> Mime-Version: 1.0 (generated by SEMI 1.14.5 - "Awara-Onsen") Content-Type: text/plain; charset=US-ASCII Return-path: In-Reply-To: <1063721993.1556.12.camel@localhost> Errors-To: alsa-devel-admin@lists.sourceforge.net List-Help: List-Post: List-Subscribe: , List-Unsubscribe: , List-Archive: To: manuel.jander@mat.utfsm.cl Cc: alsa-devel@lists.sourceforge.net List-Id: alsa-devel@alsa-project.org 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