-
Notifications
You must be signed in to change notification settings - Fork 28
Problem loadLib "libsndfile" on Raspberry5/debian12/lazarus with uos Release v250416 #58
Copy link
Copy link
Open
Description
Hello,
After successfully using UOS for voice recognition with Vosk on a Raspberry 3B+,
I need to implement the same program on a Raspberry 5/Debian 12.
with uos Release v250416, I'm getting an error loading the libsndfile libraries aarch64...
Any ideas?
Thanks.
uos_libsndfile.pas:
thelib="/home/pi/outils/uos-2250416/examples/lib/Linux/aarch64_raspberrypi/libsndfile_aarch64.so"
the line: sf_Handle := DynLibs.SafeLoadLibrary(thelib); = 0
function sf_Load(const libfilename: string): boolean;
var
thelib: string;
begin
Result := False;
if sf_Handle <> 0 then
begin
Result := True {is it already there ?};
//Reference counting
Inc(ReferenceCounter);
end
else
begin {go & load the library}
if Length(libfilename) = 0 then thelib := libsf else thelib := libfilename;
sf_Handle := DynLibs.SafeLoadLibrary(thelib); // obtain the handle we want
if sf_Handle <> DynLibs.NilHandle then
begin {now we tie the functions to the VARs from above}
Pointer(sf_version_string) := DynLibs.GetProcedureAddress(sf_Handle, PChar('sf_version_string'));
Pointer(sf_open_native) := DynLibs.GetProcedureAddress(sf_Handle, PChar('sf_open'));
Pointer(sf_open_fd) := DynLibs.GetProcedureAddress(sf_Handle, PChar('sf_open_fd'));
Pointer(sf_open_virtual) := DynLibs.GetProcedureAddress(
sf_Handle, PChar('sf_open_virtual'));
Pointer(sf_error) := DynLibs.GetProcedureAddress(sf_Handle, PChar('sf_error'));
Pointer(sf_strerror) := DynLibs.GetProcedureAddress(sf_Handle, PChar('sf_strerror'));
Pointer(sf_error_number) := DynLibs.GetProcedureAddress(
sf_Handle, PChar('sf_error_number'));
Pointer(sf_perror) := DynLibs.GetProcedureAddress(sf_Handle, PChar('sf_perror'));
Pointer(sf_error_str) := DynLibs.GetProcedureAddress(sf_Handle, PChar('sf_error_str'));
Pointer(sf_command_pointer) := DynLibs.GetProcedureAddress(sf_Handle, PChar('sf_command'));
Pointer(sf_command_array) := DynLibs.GetProcedureAddress(sf_Handle, PChar('sf_command'));
Pointer(sf_command_double) := DynLibs.GetProcedureAddress(sf_Handle, PChar('sf_command'));
Pointer(sf_command_tsf) := DynLibs.GetProcedureAddress(sf_Handle, PChar('sf_command'));
Pointer(sf_format_check) := DynLibs.GetProcedureAddress(
sf_Handle, PChar('sf_format_check'));
Pointer(sf_seek) := DynLibs.GetProcedureAddress(sf_Handle, PChar('sf_seek'));
Pointer(sf_set_string) := DynLibs.GetProcedureAddress(sf_Handle, PChar('sf_set_string'));
Pointer(sf_get_string) := DynLibs.GetProcedureAddress(sf_Handle, PChar('sf_get_string'));
Pointer(sf_read_raw) := DynLibs.GetProcedureAddress(sf_Handle, PChar('sf_read_raw'));
Pointer(sf_write_raw) := DynLibs.GetProcedureAddress(sf_Handle, PChar('sf_write_raw'));
Pointer(sf_readf_short) := DynLibs.GetProcedureAddress(sf_Handle, PChar('sf_readf_short'));
Pointer(sf_writef_short) := DynLibs.GetProcedureAddress(
sf_Handle, PChar('sf_writef_short'));
Pointer(sf_readf_int) := DynLibs.GetProcedureAddress(sf_Handle, PChar('sf_readf_int'));
Pointer(sf_writef_int) := DynLibs.GetProcedureAddress(sf_Handle, PChar('sf_writef_int'));
Pointer(sf_readf_float) := DynLibs.GetProcedureAddress(sf_Handle, PChar('sf_readf_float'));
Pointer(sf_writef_float) := DynLibs.GetProcedureAddress(
sf_Handle, PChar('sf_writef_float'));
Pointer(sf_readf_double) := DynLibs.GetProcedureAddress(
sf_Handle, PChar('sf_readf_double'));
Pointer(sf_writef_double) := DynLibs.GetProcedureAddress(
sf_Handle, PChar('sf_writef_double'));
Pointer(sf_read_short) := DynLibs.GetProcedureAddress(sf_Handle, PChar('sf_read_short'));
Pointer(sf_write_short) := DynLibs.GetProcedureAddress(sf_Handle, PChar('sf_write_short'));
Pointer(sf_read_int) := DynLibs.GetProcedureAddress(sf_Handle, PChar('sf_read_int'));
Pointer(sf_write_int) := DynLibs.GetProcedureAddress(sf_Handle, PChar('sf_write_int'));
Pointer(sf_read_float) := DynLibs.GetProcedureAddress(sf_Handle, PChar('sf_read_float'));
Pointer(sf_write_float) := DynLibs.GetProcedureAddress(sf_Handle, PChar('sf_write_float'));
Pointer(sf_read_double) := DynLibs.GetProcedureAddress(sf_Handle, PChar('sf_read_double'));
Pointer(sf_write_double) := DynLibs.GetProcedureAddress(
sf_Handle, PChar('sf_write_double'));
Pointer(sf_close) := DynLibs.GetProcedureAddress(sf_Handle, PChar('sf_close'));
Pointer(sf_write_sync) := DynLibs.GetProcedureAddress(sf_Handle, PChar('sf_write_sync'));
end;
Result := sf_IsLoaded;
ReferenceCounter := 1;
end;
end;
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels