Paul Davis <[EMAIL PROTECTED]> wrote

> >Hello,
> >is it possible to get a callback after a specified number
> >of samples (e.g. 4000) are played?
> >I'd like to refill the buffer then and need the exact
> >number to synchronize audio and video.
> 
> you can get this to a limited extent by setting the software parameter
> "avail_min" with snd_pcm_sw_params_set_avail_min(). it controls the
> number of frames of data/space that has to be available for a task
> sleeping on a read/write of the PCM stream to be woken up.
> 
> however, it won't do what you want, because the resolution is limited
> to the interrupt frequency of the audio card, and for just about every
> interface out there, this is almost always a power of 2 value. 

Is this an Alsa design or a hardware limitation?

> thus,
> you could set avail_min to 4000, but you be will woken only when the
> actual value is 4096, not 4000. why? because the ALSA driver has no
> way of knowing when the value is 4000 - it can only know when the
> interrupt comes in.
> 
> the only way around this is to use an alternate, higher-frequency
> interrupt source, such as the RTC (real time clock), but this
> is invariably power-of-2 also, and worse, doesn't run in sync
> with audio or video. if you could find a suitable source, you just
> check the current frames/space available every interrupt, and move on
> from there. i don't know of any suitable interrupt sources.
> 
> to put it another way, your approach is wrong :) syncing audio and
> video needs to be done differently. audio has a much higher frame
> rate, so use that as the basic time source, and simply redraw the
> screen at suitable intervals (preferably the vertical refresh
> interval), using the current audio "time" as a guide to what to draw.

You think of polling snd_pcm_avail_update and drawing the picture when
the calculated number of samples have been played?




-------------------------------------------------------
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