On Wed, Jun 20, 2018 at 7:26 PM, Pierre-Louis Bossart pierre-louis.bossart@linux.intel.com wrote:
On 6/20/18 9:52 AM, Daniel Baluta wrote:
On Fri, Jun 15, 2018 at 9:28 PM, Liam Girdwood liam.r.girdwood@linux.intel.com wrote:
On Fri, 2018-06-15 at 18:42 +0300, Daniel Baluta wrote:
Hi,
Does SOF firmware/driver supports loading a library and executing code from it?
Yes, this can currently done by :-
- Building the library (source or binary) into the base firmware image
like SRC, mixer etc is today.
- Building the library as a separate module that is stitched into the FW
image and loaded with base FW (like boot loader on APL/CNL).
and step 3 is work in progress (in module branch)
- Building the library as a separate module that is loaded and linked at
runtime (like Linux kernel modules).
Thanks Liam. Another question:
After implementing 3) how one can use the DSP to decode for example an mp3 file back into a pcm file.
I have some libraries that DSP can use to decode mp3 into pcm.
So, I assume I can use cplay to stream an mp3 file into a compress device then create a pipeline of components and buffers, but i'm not sure how do I get the pcm decoded bytes back. Ideally, would be to use crecord.
So you want the PCM samples to be provided back to userspace?
Yes.
That's not really a configuration we've tested at Intel, and the compressed stuff was more geared towards direct connection to the hardware to save on power.
It's still possible but you have to play with the topology and have one stream providing the compressed data and another one to record, with some special scheduling to make sure this activity doesn't prevent the DSP from working (there is no output DMA or timer event to throttle the processing and e.g. handle IPC)
Ok. Will try to create a pipeline with two components: 1st component output to be looped into 2nd component input and some processing in between.