| Index: source/patched-ffmpeg-mt/libavutil/internal.h
|
| ===================================================================
|
| --- source/patched-ffmpeg-mt/libavutil/internal.h (revision 50820)
|
| +++ source/patched-ffmpeg-mt/libavutil/internal.h (working copy)
|
| @@ -46,6 +46,12 @@
|
| #endif
|
| #endif
|
|
|
| +
|
| +/**
|
| + * Marks a variable as used and prevents the compiler from optimizing it away.
|
| + * This is usefull for asm that accesses varibles in ways that the compiler doesnt
|
| + * understand
|
| + */
|
| #ifndef attribute_used
|
| #if AV_GCC_VERSION_AT_LEAST(3,1)
|
| # define attribute_used __attribute__((used))
|
| @@ -196,6 +202,30 @@
|
| # define NULL_IF_CONFIG_SMALL(x) x
|
| #endif
|
|
|
| +/**
|
| + * Create a non default alias for a function with specified version.
|
| + * This is needed when symbols are moved from a lib to a dependancy of the lib
|
| + * because the gnu linker as of 2010 is buggy and fails to dynamicaly link if a symbol
|
| + * is not found in the lib in which it was during link time with enabled versioning
|
| + * even if a correctly versioned and matching symbol exists in another lib and
|
| + * even if it did find that would it not contain an explicit check to fail
|
| + */
|
| +#if HAVE_SYMVER_ASM_LABEL
|
| +# define FF_SYMVER(type, name, args, ver) \
|
| + type ff_##name args __asm__ (EXTERN_PREFIX #name "@" ver); \
|
| + type ff_##name args
|
| +#elif HAVE_SYMVER_GNU_ASM
|
| +# define FF_SYMVER(type, name, args, ver) \
|
| + __asm__ (".symver ff_" #name "," EXTERN_PREFIX #name "@" ver); \
|
| + type ff_##name args; \
|
| + type ff_##name args
|
| +#endif
|
| +
|
| +/**
|
| + * Returns NULL if a threading library has not been enabled.
|
| + * Used to disable threading functions in AVCodec definitions
|
| + * when not needed.
|
| + */
|
| #if HAVE_THREADS
|
| # define ONLY_IF_THREADS_ENABLED(x) x
|
| #else
|
|
|