At Mon, 24 Feb 2014 14:19:15 +0100, Takashi Iwai wrote:
It would be easy to replace those functions with pcm_src_convert_float (both resampler libraries have functions that take float directly), but that will break the plugin ABI. Is that acceptable? The same would have to be done for the channel remapping (route conversion) plugin.
It's fine as long as the plugin is backward compatible. That is, pcm_rate.c checks the plugin version and uses the new ops only for objects advertising the newer version. See pcm_extplug.c. There are some codes checking version numbers.
Looking at the code again, the PCM rate plugin version checks are done slightly differently from ext-plugin or io-plugin; it's rather done in the plugin side. pcm_rate.c repeats to trying to hook a plugin until it matches by degrading the version. In the plugin side, it provides additional ops depending on the version it's asked.
Takashi