Problem loading flac and hls plugins on latest Raspbian OS (64-bit)

Started by roberto,

roberto

Hi,

I am having problems loading the latest flac and hls plugins when using the latest Raspbian OS (Trixie, 64-bit lite). I am loading the "aarch64" versions as downloaded from the website.
The "_aac", "_ac3", "dsd" and "wv" plugins all load OK.

Any ideas how I can get any error messages? I am using the method Bass.BASS_PluginLoadDirectory(pluginsDir)" to load them but the dictionary returned ignores the flac and hls plugins but includes the ones mentioned above. Calling BASS_ErrorGetCode() just returns BASS_OK.


All help appreciated :)

Rob.


roberto

I realised I could use Bass.BASS_PluginLoad(file) to load each plug-in individually and so use Bass.BASS_ErrorGetCode() to retrieve the error code.
For the "_flac" and "_hls" plugins I am getting the error BASS_ERROR_FILEOPEN. The other plugins I tried to load all loaded OK.

Not sure if this is getting us closer to the problem, however,

Rob.


Ian @ un4seen

Quote from: robertoFor the "_flac" and "_hls" plugins I am getting the error BASS_ERROR_FILEOPEN. The other plugins I tried to load all loaded OK.

BASS_ERROR_FILEOPEN indicates that BASS_PluginLoad was unable to find/load the specified library. Just to be sure, are you really using "bass_flac" and "bass_hls" or is that just a typo? They should actually be "bassflac" and "basshls".

roberto

Yes. Sorry that's a typo, the files its attempting to load are libbassflac.so and libbasshls.so.

It does a directory listing to get the names so the files exist and the permissions are the same as the plugin files that load OK.

The versions for "armv7l" load fine when I use the 32-bit Raspbian OS.

Thanks,

Rob.

Ian @ un4seen

What do the "file" and "ldd" tools say about those files, eg. "file libbassflac.so" and "ldd libbassflac.so"? Also, are you using the full filename in the BASS_PluginLoad calls? If so, please try just the add-on name, eg. "bassflac".

roberto

These are the outputs from the tools:-

libbassflac.so: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=db15cdd2472ae0587b303c37cdfb2196e2135cdf, stripped

        linux-vdso.so.1 (0x0000007faa87f000)
        libbass.so => not found
        libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000007faa650000)
        /lib/ld-linux-aarch64.so.1 (0x0000007faa830000)

libbasshls.so: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=e2506a059de6aece667aaff580f907b8c1d31111, stripped

        linux-vdso.so.1 (0x0000007faed5d000)
        libbass.so => not found
        libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000007faeb30000)
        /lib/ld-linux-aarch64.so.1 (0x0000007faed10000)


These are the ldd outputs from libbass_aac.so and libbass_ac3.so which do load ok.
linux-vdso.so.1 (0x0000007f823c4000)
        libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000007f82280000)
        libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000007f820c0000)
        /lib/ld-linux-aarch64.so.1 (0x0000007f82380000)
linux-vdso.so.1 (0x0000007f8482c000)
        libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000007f84720000)
        libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000007f84560000)
        /lib/ld-linux-aarch64.so.1 (0x0000007f847f0000)

Perhaps its something to do with not finding libbass.so?

Rob.

roberto

I have libbass.so in the "bin" folder for my app then load in the plugins from the sub-folder for the specific processor architecure (i.e. aarm64, armv7l etc.).

I will try copying over the correct plugins to the bin folder and then loading them straight from there. Means that those plugins that need to link with libbass.so can find it.

I'll let you know if this works.

Rob.

Ian @ un4seen

Quote from: robertoThese are the outputs from the tools:-
...

From that, it looks like you may have old versions of all of those libraries (even BASS_AAC/AC3), as they should be using $ORIGIN to locate the BASS library. Please try downloading the latest versions of all of the BASS/add-on libraries from the BASS webpage and see if you still have the problem then.

Quote from: robertoI have libbass.so in the "bin" folder for my app then load in the plugins from the sub-folder for the specific processor architecure (i.e. aarm64, armv7l etc.).

The add-on libraries should be in the same folder as the BASS library (libbass.so). Please note that the BASS and add-on library architectures all need to match your executable's. If you have a single BASS library architecture, then that's the only architecture that'll work regardless of any extra architectures you may have for the add-ons.

roberto

I am fairly certain the aarch64 plugins are the latest from your website (was the first thing I did to try and
fix this problem). The arm7l ones are from an older release.

I will update my code in line with what you have said and let you know how I get on.

Rob.

roberto

Just to let you know all the arm plugins load OK now. I had to load them from my app's main executable folder where "libbass.so" resided since this was required by the "flac" and "hls" plugins.

One annoying thing I found with the latest Raspian OS is that the latest 32-bit version seems to use a 64-bit version of the kernel and meant the way I determined the processor architecture failed. I used "uname -m" and this returned "aarch64" even though all the apps were 32-bit. Using "dpkg --print-architecture" returned the correct architecture.

Thanks for your help,

Rob.