Re: Disabling buffer fill level preprocessing by ALSA

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



At Mon, 31 Dec 2007 18:12:27 +0100,
Lennart Poettering wrote:
> 
> Hi!
> 
> In PulseAudio I want to schedule on my own when I need to write audio
> data into the device and when not. To achieve that I want to be
> notified via poll() whenever a period boundary is passed (i.e. when an
> IRQ happens), but only then. That's different from the usual mode
> where you are notified via poll() whether there is space in the
> playback buffer that needs to be filled up. 
> 
> On OSS the mmap() mode enables a mode like I described above. After
> enabling mmap() the application can decide by itself what it considers
> full and what empty in the dma buffer, and use GETOPTR to query the
> playback position. poll() on the OSS fd will directly reflect the
> sound card IRQs and is not influenced if you ever wrote data to device
> or not.
> 
> I assume that I can enable a mode like that with one of the SW
> params. But quite frankly the docs for it are not enlighening at all.

Set the stop_threshould sw_params to the boundary size.

	snd_pcm_sw_params_get_boundary(sw_params, &boundary);
	snd_pcm_sw_params_set_stop_threshold(pcm, sw_params, boundary);

then the driver behaves in the "freewheel" mode.  The dmix plugin uses
this technique.


Takashi
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux