diff -u -r ./libfaad/common.h ../faad2-patch/libfaad/common.h --- ./libfaad/common.h 2004-02-06 06:55:24.000000000 -0600 +++ ../faad2-patch/libfaad/common.h 2005-05-06 09:51:38.000000000 -0600 @@ -197,6 +197,15 @@ #else # if HAVE_STDINT_H # include +# elsif defined(__x86_64__) /* longs are 64-bit for amd64! */ +typedef unsigned long uint64_t; +typedef unsigned int uint32_t; +typedef unsigned short uint16_t; +typedef unsigned char uint8_t; +typedef long int64_t; +typedef int int32_t; +typedef short int16_t; +typedef char int8_t; # else /* we need these... */ typedef unsigned long long uint64_t; diff -u -r ./libfaad/decoder.c ../faad2-patch/libfaad/decoder.c --- ./libfaad/decoder.c 2004-02-04 14:07:24.000000000 -0600 +++ ../faad2-patch/libfaad/decoder.c 2005-05-06 10:08:12.000000000 -0600 @@ -57,9 +57,9 @@ return err_msg[errcode]; } -uint32_t FAADAPI faacDecGetCapabilities(void) +unsigned long FAADAPI faacDecGetCapabilities(void) { - uint32_t cap = 0; + unsigned long cap = 0; /* can't do without it */ cap += LC_DEC_CAP; @@ -190,9 +190,9 @@ return 0; } -int32_t FAADAPI faacDecInit(faacDecHandle hDecoder, uint8_t *buffer, - uint32_t buffer_size, - uint32_t *samplerate, uint8_t *channels) +long FAADAPI faacDecInit(faacDecHandle hDecoder, uint8_t *buffer, + unsigned long buffer_size, + unsigned long *samplerate, uint8_t *channels) { uint32_t bits = 0; bitfile ld; @@ -285,8 +285,8 @@ /* Init the library using a DecoderSpecificInfo */ int8_t FAADAPI faacDecInit2(faacDecHandle hDecoder, uint8_t *pBuffer, - uint32_t SizeOfDecoderSpecificInfo, - uint32_t *samplerate, uint8_t *channels) + unsigned long SizeOfDecoderSpecificInfo, + unsigned long *samplerate, uint8_t *channels) { int8_t rc; mp4AudioSpecificConfig mp4ASC; @@ -366,7 +366,7 @@ } #ifdef DRM -int8_t FAADAPI faacDecInitDRM(faacDecHandle hDecoder, uint32_t samplerate, +int8_t FAADAPI faacDecInitDRM(faacDecHandle hDecoder, unsigned long samplerate, uint8_t channels) { uint8_t i; @@ -512,7 +512,7 @@ if (hDecoder) faad_free(hDecoder); } -void FAADAPI faacDecPostSeekReset(faacDecHandle hDecoder, int32_t frame) +void FAADAPI faacDecPostSeekReset(faacDecHandle hDecoder, long frame) { if (hDecoder) { @@ -730,7 +730,7 @@ void* FAADAPI faacDecDecode(faacDecHandle hDecoder, faacDecFrameInfo *hInfo, - uint8_t *buffer, uint32_t buffer_size) + uint8_t *buffer, unsigned long buffer_size) { uint8_t channels = 0; uint8_t output_channels = 0; diff -u -r ./libfaad/decoder.h ../faad2-patch/libfaad/decoder.h --- ./libfaad/decoder.h 2004-01-05 08:05:11.000000000 -0600 +++ ../faad2-patch/libfaad/decoder.h 2005-05-06 10:03:27.000000000 -0600 @@ -78,7 +78,7 @@ int8_t* FAADAPI faacDecGetErrorMessage(uint8_t errcode); -uint32_t FAADAPI faacDecGetCapabilities(void); +unsigned long FAADAPI faacDecGetCapabilities(void); faacDecHandle FAADAPI faacDecOpen(void); @@ -88,29 +88,29 @@ faacDecConfigurationPtr config); /* Init the library based on info from the AAC file (ADTS/ADIF) */ -int32_t FAADAPI faacDecInit(faacDecHandle hDecoder, +long FAADAPI faacDecInit(faacDecHandle hDecoder, uint8_t *buffer, - uint32_t buffer_size, - uint32_t *samplerate, + unsigned long buffer_size, + unsigned long *samplerate, uint8_t *channels); /* Init the library using a DecoderSpecificInfo */ int8_t FAADAPI faacDecInit2(faacDecHandle hDecoder, uint8_t *pBuffer, - uint32_t SizeOfDecoderSpecificInfo, - uint32_t *samplerate, uint8_t *channels); + unsigned long SizeOfDecoderSpecificInfo, + unsigned long *samplerate, uint8_t *channels); /* Init the library for DRM */ -int8_t FAADAPI faacDecInitDRM(faacDecHandle hDecoder, uint32_t samplerate, +int8_t FAADAPI faacDecInitDRM(faacDecHandle hDecoder, unsigned long samplerate, uint8_t channels); void FAADAPI faacDecClose(faacDecHandle hDecoder); -void FAADAPI faacDecPostSeekReset(faacDecHandle hDecoder, int32_t frame); +void FAADAPI faacDecPostSeekReset(faacDecHandle hDecoder, long frame); void* FAADAPI faacDecDecode(faacDecHandle hDecoder, faacDecFrameInfo *hInfo, uint8_t *buffer, - uint32_t buffer_size); + unsigned long buffer_size); #ifdef _WIN32 #pragma pack(pop) diff -u -r ./libfaad/structs.h ../faad2-patch/libfaad/structs.h --- ./libfaad/structs.h 2004-01-29 05:31:11.000000000 -0600 +++ ../faad2-patch/libfaad/structs.h 2005-05-06 09:46:24.000000000 -0600 @@ -307,58 +307,58 @@ typedef struct mp4AudioSpecificConfig { /* Audio Specific Info */ - uint8_t objectTypeIndex; - uint8_t samplingFrequencyIndex; - uint32_t samplingFrequency; - uint8_t channelsConfiguration; + unsigned char objectTypeIndex; + unsigned char samplingFrequencyIndex; + unsigned long samplingFrequency; + unsigned char channelsConfiguration; /* GA Specific Info */ - uint8_t frameLengthFlag; - uint8_t dependsOnCoreCoder; - uint16_t coreCoderDelay; - uint8_t extensionFlag; - uint8_t aacSectionDataResilienceFlag; - uint8_t aacScalefactorDataResilienceFlag; - uint8_t aacSpectralDataResilienceFlag; - uint8_t epConfig; + unsigned char frameLengthFlag; + unsigned char dependsOnCoreCoder; + unsigned short coreCoderDelay; + unsigned char extensionFlag; + unsigned char aacSectionDataResilienceFlag; + unsigned char aacScalefactorDataResilienceFlag; + unsigned char aacSpectralDataResilienceFlag; + unsigned char epConfig; - int8_t sbr_present_flag; - int8_t forceUpSampling; + char sbr_present_flag; + char forceUpSampling; } mp4AudioSpecificConfig; typedef struct faacDecConfiguration { - uint8_t defObjectType; - uint32_t defSampleRate; - uint8_t outputFormat; - uint8_t downMatrix; - uint8_t useOldADTSFormat; - uint8_t dontUpSampleImplicitSBR; + unsigned char defObjectType; + unsigned long defSampleRate; + unsigned char outputFormat; + unsigned char downMatrix; + unsigned char useOldADTSFormat; + unsigned char dontUpSampleImplicitSBR; } faacDecConfiguration, *faacDecConfigurationPtr; typedef struct faacDecFrameInfo { - uint32_t bytesconsumed; - uint32_t samples; - uint8_t channels; - uint8_t error; - uint32_t samplerate; + unsigned long bytesconsumed; + unsigned long samples; + unsigned char channels; + unsigned char error; + unsigned long samplerate; /* SBR: 0: off, 1: on; normal, 2: on; downsampled */ - uint8_t sbr; + unsigned char sbr; /* MPEG-4 ObjectType */ - uint8_t object_type; + unsigned char object_type; /* AAC header type; MP4 will be signalled as RAW also */ - uint8_t header_type; + unsigned char header_type; /* multichannel configuration */ - uint8_t num_front_channels; - uint8_t num_side_channels; - uint8_t num_back_channels; - uint8_t num_lfe_channels; - uint8_t channel_position[MAX_CHANNELS]; + unsigned char num_front_channels; + unsigned char num_side_channels; + unsigned char num_back_channels; + unsigned char num_lfe_channels; + unsigned char channel_position[MAX_CHANNELS]; } faacDecFrameInfo; typedef struct diff -u -r ./plugins/xmms/src/libmp4.c ../faad2-patch/plugins/xmms/src/libmp4.c --- ./plugins/xmms/src/libmp4.c 2005-05-06 09:32:16.000000000 -0600 +++ ../faad2-patch/plugins/xmms/src/libmp4.c 2005-05-06 09:56:31.000000000 -0600 @@ -22,6 +22,9 @@ #define MP4_ABOUT "Written by ciberfred" #define BUFFER_SIZE FAAD_MIN_STREAMSIZE*64 +void getMP4info(char* file); +int getAACTrack(MP4FileHandle file); + static void mp4_init(void); static void mp4_about(void); static void mp4_play(char *); @@ -116,11 +119,11 @@ extention = strrchr(filename, '.'); - if (extention && + if (extention && ( (!strcasecmp(extention, ".mp4") || // official extention !strcasecmp(extention, ".m4a") || // Apple mp4 extention !strcasecmp(extention, ".aac") // old MPEG2/4-AAC extention - )) + ))) { return (1); }