www.pudn.com > MP4Cam2AVI_SRC_1.2.zip > libfaad2.pas
unit libfaad2;
interface
uses
Windows, Buffer;
{$UNDEF UNICODE}
const
LIBFAAD2DLL = 'LIBFAAD2.DLL';
type
faacDecHandle = TBuffer;
sbr_info = TBuffer;
PBYTE = ^BYTE;
PWORD = ^WORD;
PDWORD = ^DWORD;
SampleBuffer = array[0..4095] of char;
PSampleBuffer = ^SampleBuffer;
PfaacDecConfiguration = ^faacDecConfiguration;
faacDecConfiguration = packed record
defObjectType: SHORTINT;
defSampleRate: longword;
outputFormat: SHORTINT;
downMatrix: SHORTINT;
useOldADTSFormat: SHORTINT;
dontUpSampleImplicitSBR: SHORTINT;
align_bytes: array[0..2] of SHORTINT;
end;
PfaacDecFrameInfo = ^TFaacDecFrameInfo;
TFaacDecFrameInfo = packed record
bytesconsumed: DWORD;
samples: DWORD;
channels: SHORTINT;
error: SHORTINT;
samplerate: DWORD;
// SBR: 0: off, 1: on; upsample, 2: on; downsampled, 3: off; upsampled
sbr: SHORTINT;
// MPEG-4 ObjectType
object_type: SHORTINT;
//AAC header type; MP4 will be signalled as RAW also
header_type: SHORTINT;
// multichannel configuration
num_front_channels: SHORTINT;
num_side_channels: SHORTINT;
num_back_channels: SHORTINT;
num_lfe_channels: SHORTINT;
channel_position: array[0..63] of SHORTINT;
align_bytes: array[0..2] of SHORTINT;
end;
procedure NeAACDecClose(FDHandle: THandle); cdecl; external LIBFAAD2DLL;
function NeAACDecOpen(): THandle; cdecl; external LIBFAAD2DLL;
function NeAACDecInit(FDHandle: THandle; InBuffer: TBuffer; InSize: DWord; sample_rate: PDWord; channels: PByte): Integer; cdecl; external LIBFAAD2DLL;
function NeAACDecInit2(FDHandle: THandle; DecConfig: TBuffer; DecInfoSize: DWord; sample_rate: PDWord; channels: PByte): ShortInt; cdecl; external LIBFAAD2DLL;
function NeAACDecDecode(FDHandle: THandle; frameInfo: PFaacDecFrameInfo; InBuffer: TBuffer; InSize: DWORD): PSampleBuffer; cdecl; external LIBFAAD2DLL;
function NeAACDecGetCurrentConfiguration(FDHandle: THandle): PfaacDecConfiguration; cdecl; external LIBFAAD2DLL;
function NeAACDecSetConfiguration(FDHandle: THandle; FDConfig: PfaacDecConfiguration): ShortInt; cdecl; external LIBFAAD2DLL;
function NeAACDecGetErrorMessage(ErrCode: shortint): PChar; cdecl; external LIBFAAD2DLL;
implementation
end.