faad contains originally the following prototypes long FAADAPI faacDecInit(faacDecHandle hDecoder, unsigned char *buffer, unsigned long buffer_size, unsigned long *samplerate, unsigned char *channels); /* Init the library using a DecoderSpecificInfo */ char FAADAPI faacDecInit2(faacDecHandle hDecoder, unsigned char *pBuffer, unsigned long SizeOfDecoderSpecificInfo, unsigned long *samplerate, unsigned char *channels); that a gentoo specific patch changes to long FAADAPI faacDecInit(faacDecHandle hDecoder, uint8_t *buffer, uint32_t buffer_size, uint32_t *samplerate, uint8_t *channels); -- int8_t FAADAPI faacDecInit2(faacDecHandle hDecoder, uint8_t *pBuffer, uint32_t SizeOfDecoderSpecificInfo, uint32_t *samplerate, uint8_t *channels); /* Init the library for DRM */ int8_t FAADAPI faacDecInitDRM(faacDecHandle hDecoder, uint32_t samplerate, uint8_t channels); void FAADAPI faacDecPostSeekReset(faacDecHandle hDecoder, long frame); this seems to prevent the gstreamer faad2 plugin to compile correctly Reproducible: Always Steps to Reproduce: 1. 2. 3. Actual Results: compilation of the gst-gaad plugin fails Expected Results: plugin doesn't fail...
it seems all this comes from the amd64 patch. well, turns out this patch is fairly useless... the only areas where unsigned long are used are things legths, in which case, the patch wouldn't change anything
Taking over faad2 for sound herd.
It's not gentoo-specific as other distributions uses the same patch, too, and it's needed to fix 64-bit platforms (amd64, ia64, alpha). The change to gstreamer code you'd need it's trivial, but I think now you can just use gstreamer from portage and go away with it. Note that some upstream maintainer is already aware of the needed patch to faad2, such as avidemux's, and provides workaround for modified APIs.