diff options
author | Måns Rullgård <mans@mansr.com> | 2008-01-25 21:14:17 +0000 |
---|---|---|
committer | Måns Rullgård <mans@mansr.com> | 2008-01-25 21:14:17 +0000 |
commit | 7b0dee28d2d58aa038bdab45e35242fb7052e86b (patch) | |
tree | d0173401a081703e21c30e38a415bf77e3f34cf7 /libavcodec/libfaad.c | |
parent | e2fdba650d3ae21c693eac21642e389c8da25a1d (diff) | |
download | ffmpeg-7b0dee28d2d58aa038bdab45e35242fb7052e86b.tar.gz |
clean up dynamic loading of libfaad
Originally committed as revision 11609 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/libfaad.c')
-rw-r--r-- | libavcodec/libfaad.c | 55 |
1 files changed, 20 insertions, 35 deletions
diff --git a/libavcodec/libfaad.c b/libavcodec/libfaad.c index 33a88dad60..f8d7c65732 100644 --- a/libavcodec/libfaad.c +++ b/libavcodec/libfaad.c @@ -234,47 +234,32 @@ static int faac_decode_init(AVCodecContext *avctx) libfaadname, dlerror()); return -1; } -#define dfaac(a, b) \ - do { static const char* n = AV_STRINGIFY(faacDec ## a); \ - if ((s->faacDec ## a = b dlsym( s->handle, n )) == NULL) { err = n; break; } } while(0) - for(;;) { + +#define dfaac(a) do { \ + const char* n = AV_STRINGIFY(faacDec ## a); \ + if (!err && !(s->faacDec ## a = dlsym(s->handle, n))) { \ + err = n; \ + } \ + } while(0) #else /* !CONFIG_LIBFAADBIN */ -#define dfaac(a, b) s->faacDec ## a = faacDec ## a +#define dfaac(a) s->faacDec ## a = faacDec ## a #endif /* CONFIG_LIBFAADBIN */ - // resolve all needed function calls - dfaac(Open, (faacDecHandle FAADAPI (*)(void))); - dfaac(Close, (void FAADAPI (*)(faacDecHandle hDecoder))); - dfaac(GetCurrentConfiguration, (faacDecConfigurationPtr - FAADAPI (*)(faacDecHandle))); -#ifndef FAAD2_VERSION - dfaac(SetConfiguration, (int FAADAPI (*)(faacDecHandle, - faacDecConfigurationPtr))); - - dfaac(Init, (int FAADAPI (*)(faacDecHandle, unsigned char*, - unsigned long*, unsigned long*))); - dfaac(Init2, (int FAADAPI (*)(faacDecHandle, unsigned char*, - unsigned long, unsigned long*, - unsigned long*))); - dfaac(Decode, (int FAADAPI (*)(faacDecHandle, unsigned char*, - unsigned long*, short*, unsigned long*))); -#else - dfaac(SetConfiguration, (unsigned char FAADAPI (*)(faacDecHandle, - faacDecConfigurationPtr))); - dfaac(Init, (long FAADAPI (*)(faacDecHandle, unsigned char*, - unsigned long, unsigned long*, unsigned char*))); - dfaac(Init2, (char FAADAPI (*)(faacDecHandle, unsigned char*, - unsigned long, unsigned long*, - unsigned char*))); - dfaac(Decode, (void *FAADAPI (*)(faacDecHandle, faacDecFrameInfo*, - unsigned char*, unsigned long))); - dfaac(GetErrorMessage, (char* FAADAPI (*)(unsigned char))); + // resolve all needed function calls + dfaac(Open); + dfaac(Close); + dfaac(GetCurrentConfiguration); + dfaac(SetConfiguration); + dfaac(Init); + dfaac(Init2); + dfaac(Decode); +#ifdef FAAD2_VERSION + dfaac(GetErrorMessage); #endif -#undef dfacc + +#undef dfaac #ifdef CONFIG_LIBFAADBIN - break; - } if (err) { dlclose(s->handle); av_log(avctx, AV_LOG_ERROR, "FAAD library: cannot resolve %s in %s!\n", |