X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=libavutil%2Finternal.h;h=eecc1280df9244b978718fafc0f2a4369930cc64;hb=4ccb7911baa761d373e28068b93db13a76a780b8;hp=b5cc2a6cd10e118dad3a2ae5dec8807151eb823f;hpb=612122b187d711257eecd517e4049cef3bb0b7f0;p=ffmpeg diff --git a/libavutil/internal.h b/libavutil/internal.h index b5cc2a6cd10..eecc1280df9 100644 --- a/libavutil/internal.h +++ b/libavutil/internal.h @@ -37,6 +37,13 @@ #include "config.h" #include "attributes.h" #include "timer.h" +#include "cpu.h" +#include "dict.h" + +struct AVDictionary { + int count; + AVDictionaryEntry *elems; +}; #ifndef attribute_align_arg #if ARCH_X86_32 && AV_GCC_VERSION_AT_LEAST(4,2) @@ -141,7 +148,6 @@ #define strncpy strncpy_is_forbidden_due_to_security_issues_use_av_strlcpy #undef exit #define exit exit_is_forbidden -#ifndef LIBAVFORMAT_BUILD #undef printf #define printf please_use_av_log_instead_of_printf #undef fprintf @@ -150,7 +156,6 @@ #define puts please_use_av_log_instead_of_puts #undef perror #define perror please_use_av_log_instead_of_perror -#endif #define FF_ALLOC_OR_GOTO(ctx, p, size, label)\ {\ @@ -222,4 +227,19 @@ # define ONLY_IF_THREADS_ENABLED(x) NULL #endif +#if HAVE_MMX +/** + * Empty mmx state. + * this must be called between any dsp function and float/double code. + * for example sin(); dsp->idct_put(); emms_c(); cos() + */ +static av_always_inline void emms_c(void) +{ + if(av_get_cpu_flags() & AV_CPU_FLAG_MMX) + __asm__ volatile ("emms" ::: "memory"); +} +#else /* HAVE_MMX */ +#define emms_c() +#endif /* HAVE_MMX */ + #endif /* AVUTIL_INTERNAL_H */