Ты с ума сошёл в функцию массивы передавать
Замени
function opus_decode(st:OpusDecoder; data:array of Byte; len:Integer;var pcm: array of Byte; frame_size: Integer; decode_fec:Integer):Integer; cdecl; external 'opus.dll';
на
function opus_decode(st: OpusDecoder; data: PByte; len: Integer; pcm: PByte; frame_size: Integer; decode_fec: Integer):Integer; cdecl; external 'opus.dll';
Прототип функции ты неверно объявил. Дальше вызываешь функцию так:
Error := opus_decode(OPDecoder, @PreEnc[0], 9, @PreDec[0], 2000, 0);