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.