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

Alexander E. Patrakov patrakov at gmail.com
Tue Apr 30 21:37:27 UTC 2019

вт, 30 апр. 2019 г. в 23:46, Georg Chini <georg at chini.tk>:
> On 30.04.19 19:23, Alexander E. Patrakov wrote:
> >>       /* If set, this function is called in thread context when an update
> >> of the
> >>        * filter parameters is requested, may be NULL. The function must
> >> replace
> >>        * the currently used parameter structure by the new structure and
> >> return
> >>        * a pointer to the old structure so that it can be freed in the
> >> main thread
> >>        * using parameter_free(). If the old structure can be re-used, the
> >> function
> >>        * may return NULL. */
> >>       void *(*update_filter_parameters)(void *parameters, void
> >> *filter_handle);
> > I don't think this is implementable. How are the parameters supposed
> > to be initially allocated?
> >
> Why should this not be possible to implement? Meanwhile I have
> it already implemented within the new virtual sink library and
> I am using it for the virtual-surround-sink and also for
> the ladspa-sink. Setting and querying parameters works
> perfectly. For the virtual-surround-sink I allocate new memory
> each time, while for the ladspa-sink I prepare a parameter set
> in the main thread and copy it to the "real" parameter set
> in the IO-thread.

Please don't treat the FIR for module-virtual-surround-sink as a set
of reconfigurable parameters. At least for now. Just hard-code the
contents of http://stuff.salscheider-online.de/hrir_kemar.tar.gz or
find a redistributable equivalent, preferably with more than 6

> The initial parameter set must be allocated when the
> filter is initialized. The parameter_set_all() function can be
> used to do that or the filter_init() function could create a
> default parameter set.

OK, I retract the "not implementable" objection.

Alexander E. Patrakov

More information about the pulseaudio-discuss mailing list