Conversation
src-lite is currently broken since the SRC_LITE macro in src.c is never defined. Fix it by making src-lite mutually exclusive with other src options since that seems to be the only currently available option. Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
| #ifdef CONFIG_COMP_SRC | ||
| #ifdef CONFIG_COMP_SRC_LITE | ||
| #include <audio/src/src_lite.toml> | ||
| #else |
There was a problem hiding this comment.
this should be
#elif CONFIG_COMP_SRC
of course. Same below. Will fix if the PR's approach as such is accepted
There was a problem hiding this comment.
Can we build both as separate modules with different UUIDs today ? i.e. that way topology can pick depending on memory, mcps, performance etc.
There was a problem hiding this comment.
@lgirdwood we don't have any topologies, using src-lite, otherwise someone could've noticed that it wasn't working. "Modules" (you mean Module Adapter drivers, right?) are usually built into the image, in which case you probably wouldn't be able to build src.c twice - it would have conflicting symbols. You could build them as loadable llext modules, but it would be too weird to only be able to build something as an llext and not built-in. And you wouldn't be able to load them simultaneously. In principle it should be possible to build both even without copying src.c and eliminate name conflicts, however, I'm not sure how ugly that would look in cmake. And is this really needed? Isn't "lite" just yet another src option along with "tiny," "small," etc.? And those cannot be built together. Unlike "lite" they do all share the same UUID, but semantically they seem similar.
There was a problem hiding this comment.
...a different approach would be doing it similar to volume.c and other "modules," implementing support to multiple UUIDs. For that we'd need to include both sets of coefficients and to switch between them depending on which UUID is instantiated.
There was a problem hiding this comment.
replying to myself: no, it wouldn't be that easy. Those coefficient headers do indeed define the same symbols, and they aren't static, so they definitely would conflict
|
alternative #9206 got merged |
src-lite is currently broken since the SRC_LITE macro in src.c is never defined. Fix it by making src-lite mutually exclusive with other src options since that seems to be the only currently available option.