[pulseaudio-discuss] R: New equalizer module (module-eqpro-sink), some questions

Georg Chini georg at chini.tk
Mon Apr 22 09:23:10 UTC 2019

On 22.04.19 09:34, Tanu Kaskinen wrote:
> On Sat, 2019-04-20 at 11:38 +0200, Georg Chini wrote:
>> PA uses malloc() in the IO-thread, so are we doing things wrong?
>> I think using malloc() when a parameter changes is not interfering
>> with real-time operation because the filter must be reset after
>> a parameter change anyway.
> Where exactly is malloc() used? Sounds like a bug.

Well, for example pa_memblock_new() potentially uses malloc and
this is surely used from the I/O thread. I did not check, but I guess
there are also places where something like pa_xstrdup() or pa_xnew()
is used from the I/O thread. At least I was not aware that there
are any restrictions.
pa_rtpoll_item_new() also potentially uses malloc().

All in all there are many places where malloc() might be used.

>> Well, after evaluation of the feedback I have been getting so far,
>> I do not think I will make an attempt to create some plugin-sink.
>> The existing standards do not fit to what I have in mind and
>> if I read Alexander right they even intentionally do not support
>> those features.
>> Inventing a PA internal standard does not make sense, because
>> your main argument against implementing the equalizer as a module
>> was that you did not want to host the DSP code inside PA. If we
>> did our own standard, new filters would again be bound to PA.
> New filters would be specific to PA, yes, but not maintained by us, and
> new filters wouldn't have to go through the review process, so there
> would still be some benefit in having a PA specific stable plugin API.
I don't understand. What is the difference between having DSP
code in a module or in a filter plugin? After consolidation of
the virtual sinks, there is nearly nothing left in the modules that
would need our attention. It is mostly pure DSP code. I think now
writing a module is the quickest way to get a filter working and
using another plugin format would only complicate things. So
from my point of view, there already is a PA specific plugin format
and I am not going to invent another one. When the messaging
API patches are reviewed, I will write an addition to the virtual
sink library which makes setting parameters easy.

More information about the pulseaudio-discuss mailing list