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

Alexander E. Patrakov patrakov at gmail.com
Sun Apr 20 08:08:58 PDT 2014


20.04.2014 20:44, David Henningsson wrote:
> On 2014-04-19 23:21, Alexander E. Patrakov wrote:
>> 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.
>
> This sounds like an alsa-lib bug, and thus it would be wiser to correct
> it in ALSA rather than in PulseAudio?

Yes, this is a bug in alsa-lib. As for the "would it be wiser" question, 
I don't have an answer yet. I will try and see what happens. My main 
worry is that it will surely make all plugs non-rewindable, and thus has 
a very high potential of unfixable regressions for applications that do 
rewinds in the legacy non-pulseaudio setup.

>
>>
>> Work around this ALSA bug by switching to IRQ-based scheduling on strange
>> plugin types.
>> ---
>> I have not deleted the "does a card exist" check, but for the AC3 encoder
>> case (which is mentioned in the git log) it is now redundant. Feel free
>> to delete if no other triggering use case is known.
>>
>> P.S. I see this line in alsa-lib/src/pcm/pcm_extplug.c:
>>
>>          params->info &= ~(SND_PCM_INFO_MMAP | SND_PCM_INFO_MMAP_VALID);
>>
>> but then also:
>>
>>          snd_pcm_access_mask_t saccess_mask = { SND_PCM_ACCBIT_MMAP };
>>
>> How should I understand this - is the intention here to disable mmap
>> access
>> or enable it?
>
> Again, this sounds like an ALSA question?

Yes, it is an ALSA question.

>
> In addition, there is a snd_pcm_rewindable function, but we don't use
> it, and I don't know how well the different ALSA pcm types work with it.
> But it seems to me like the best course of action could be to make sure
> it reports the correct value for all ALSA pcm types, and then for
> PulseAudio to start using it?

As I said, I will try. If this fails, we'll gain a better commit message 
for this patch :)

-- 
Alexander E. Patrakov


More information about the pulseaudio-discuss mailing list