Clemens Ladisch wrote: >> state: PREPARED > The pcm isn't (yet) running. > >> avail : 5 > And the buffer is almost full. snd_pcm_writei blocks because it > cannot write more data to the buffer, probably because the transfer > threshold is too high.
?! See below... > How do you start the pcm? If you're using the start threshold, it may > be too big, too. The code is based on alsa-lib/test/pcm.c using the poll method, so if you look at that, you'll see how most of the parameters are set in my code. I had to change to alsa_buffer_size-1 after upgrading to ALSA 0.9rc6 (I was using rc2, if memory serves) otherwise it never started playing... it seems something had changed in alsa-lib around this time. alsa_buffer_size = snd_pcm_hw_params_get_buffer_size(params); err = snd_pcm_hw_params_set_period_time_near(handle, params, alsa_period_time, &dir); alsa_period_size = snd_pcm_hw_params_get_period_size(params, &dir); ... err = snd_pcm_sw_params_set_start_threshold(handle, swparams, alsa_buffer_size-1) err = snd_pcm_sw_params_set_avail_min(handle, swparams, alsa_period_size); - Tom. ------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click _______________________________________________ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel