вт, 30 апр. 2019 г. в 23:46, Georg Chini <georg@xxxxxxxx>: > > 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 channels. > 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 _______________________________________________ pulseaudio-discuss mailing list pulseaudio-discuss@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss