And this one ? op_read: function(OpusFile: TOggOpusFile; pcm : pcint; SampleCount: Integer; li: pcint): Integer; op_read_float: function(OpusFile: TOggOpusFile; pcm : pcfloat; SampleCount: Integer; li: pcint): Integer; op_read_stereo: function(OpusFile: TOggOpusFile; pcm : pcint; SampleCount: Integer): Integer; op_read_float_stereo: function(OpusFile: TOggOpusFile; pcm : pcfloat; SampleCount: Integer): Integer;
PS: I agree with you : op_read needs a pcm=pcint. Is it a big crime to use pcm=pcfloat ? This because I want to use the same main buffer for all formats (16int, 32int and float 32). And because it is working perfectly. But, yes, maybe using a int-temp-buffer and then copy its data to the main float-buffer would be more academic. Other thing. On Linux, LibOpus.so and LibOpusFile.so home-compiled are working like charms. Sadly, on Windows, using the pre-compiled dll downloaded from Opus-site, I have problem with OpusFile.dll. I have checked the dependencies, they are installed. Opus.dll loads and all methods can be accessed. But with OpusFile.dll, it loads but trying to access any method gives: Program received signal SIGSEGV, Segmentation fault. 0x74728ff0 in strlen () from C:\WINDOWS\SYSTEM32\msvcrt.dll Aaargh, Google did not help. Many thanks. Fre;D ----- Many thanks ;-) -- View this message in context: http://free-pascal-general.1045716.n5.nabble.com/Array-as-result-in-function-tp5727366p5727394.html Sent from the Free Pascal - General mailing list archive at Nabble.com. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal