2021-03-19 02:42 AM
Hello,
several years ago, we built an audio device based on an STM32 MCU with a cortex M4 core. The firmware is highly optimized for the audio processing and it uses few 3rd party DSP libraries.
Recently, we had an urgent request from one of our major customer to add the MP3 playback capability.
The good news is that ST provides a free of charge MP3 decoder (made by SpiritDSP) in the form of a pre-compiled library, the bad news is that this library is compiled with the soft float ABI.
It is a bad news because our DSP libraries have been compiled with the hard float API, as they rely on the hardware FPU, and that it is not possible to link code compiled with two different ABI.
And, as we cannot re-compile our 3rd libraries with the soft-fp ABI, we are stuck with incompatible binary libraries.
Could you, please, provide the MP3 library compiled with hard float ABI alongside the soft float ABI variant?
There must be a reason, but I don't understand why the MP3 library was not released that way; AFAIK, all the STM32F4 devices have a hardware FPU and the STM32 Cube expansion that includes this library is targeting F4 and F7 devices.
Thank you.
2021-03-19 12:50 PM
Excuse my ignorance here, but isn't this passing data via arrays? What are the actual external dependencies on the library? Can you not compartmentalize the library so all you have is a function interface (like a DLL). Have as a blob you can copy to RAM.
>>There must be a reason, but I don't understand why the MP3 library was not released that way;
Probably the defaults then were for soft abi, the F4 and some of the F7 have the lightweight FPU-S
At this point there are likely licensing issues, or the people who wrote it are off doing bigger/better things in 2021. I'd worry about the MPEGLA if I used this library.
I'd agree that there should be a full set of libraries for common/current use cases.
2021-03-21 07:56 AM
Hello Tesla DeLorean,
we could, I guess, isolate this library and using it with some sort of dynamic link method, or by removing the ABI info from the object files.
We cannot recompile the other libraries, because the original company doesn't exist anymore.
Why should I be concerned about MPEGLA? The MP3 algorithm is in public domain since 2017.