[pulseaudio-discuss] [PATCH] Don't use tsched on unsafe ALSA plugins

Raymond Yau superquad.vortex2 at gmail.com
Sun Apr 20 16:04:25 PDT 2014


>
> Since the dca ALSA plugin is based on extplug, it has a slave and
therefore
> a card. Thus, PulseAudio thinks that it looks like hardware and attempts
> rewinds, which this plugin cannot handle correctly, because ALSA never
> notifies extplug plugins about rewinds.
>
> The same mishandling of rewinds applies to some other plugins.
>
> Work around this ALSA bug by switching to IRQ-based scheduling on strange
> plugin types.

Do you mean pulseaudio won't perform any rewind when switching to interrupt
driven mode ?

What algorithm do pulseaudio use when use interrupt driven  scheduling
since pulseaudio allow user to specify number of periods ?

http://0pointer.de/blog/projects/pulse-glitch-free.html

e.g. 4 periods per buffer

1) write data to sound card whenever there is an empty period
2) write data to sound card when half of buffer is empty
3) write data to sound card when there is only one period left

> +    if (type == SND_PCM_TYPE_MULTI) return true;     /* EMU10K1,
Audigy2, others */

Seem emu10k1 and audigy2 are not a good example since snd_pcm_start fail
with EBADFD when using multi plugin (multi channel) with start threshold
set to boundary

alsa-sink.c: Starting playback.
I: (alsa-lib)pcm_hw.c: SNDRV_PCM_IOCTL_START failed (-77)

https://bugzilla.redhat.com/show_bug.cgi?id=608936#c19
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20140421/18aa61ee/attachment.html>


More information about the pulseaudio-discuss mailing list