29 #include "libavutil/attributes.h"
32 #include "libavutil/cpu.h"
33 #include "libavutil/bswap.h"
35 #include "libswscale/swscale.h"
66 #define mask16b mask15b
76 #define RGB2YUV_SHIFT 8
77 #define BY ((int)( 0.098*(1<<RGB2YUV_SHIFT)+0.5))
78 #define BV ((int)(-0.071*(1<<RGB2YUV_SHIFT)+0.5))
79 #define BU ((int)( 0.439*(1<<RGB2YUV_SHIFT)+0.5))
80 #define GY ((int)( 0.504*(1<<RGB2YUV_SHIFT)+0.5))
81 #define GV ((int)(-0.368*(1<<RGB2YUV_SHIFT)+0.5))
82 #define GU ((int)(-0.291*(1<<RGB2YUV_SHIFT)+0.5))
83 #define RY ((int)( 0.257*(1<<RGB2YUV_SHIFT)+0.5))
84 #define RV ((int)( 0.439*(1<<RGB2YUV_SHIFT)+0.5))
85 #define RU ((int)(-0.148*(1<<RGB2YUV_SHIFT)+0.5))
89 #define COMPILE_TEMPLATE_MMXEXT 0
90 #define COMPILE_TEMPLATE_AMD3DNOW 0
91 #define COMPILE_TEMPLATE_SSE2 0
92 #define COMPILE_TEMPLATE_AVX 0
96 #define RENAME(a) a ## _mmx
97 #include "rgb2rgb_template.c"
101 #undef COMPILE_TEMPLATE_MMXEXT
102 #define COMPILE_TEMPLATE_MMXEXT 1
103 #define RENAME(a) a ## _mmxext
104 #include "rgb2rgb_template.c"
108 #undef COMPILE_TEMPLATE_SSE2
109 #define COMPILE_TEMPLATE_SSE2 1
110 #define RENAME(a) a ## _sse2
111 #include "rgb2rgb_template.c"
115 #undef COMPILE_TEMPLATE_AVX
116 #define COMPILE_TEMPLATE_AVX 1
117 #define RENAME(a) a ## _avx
118 #include "rgb2rgb_template.c"
122 #undef COMPILE_TEMPLATE_MMXEXT
123 #undef COMPILE_TEMPLATE_SSE2
124 #undef COMPILE_TEMPLATE_AVX
125 #undef COMPILE_TEMPLATE_AMD3DNOW
126 #define COMPILE_TEMPLATE_MMXEXT 0
127 #define COMPILE_TEMPLATE_SSE2 0
128 #define COMPILE_TEMPLATE_AMD3DNOW 1
129 #define RENAME(a) a ## _3dnow
130 #include "rgb2rgb_template.c"
149 rgb2rgb_init_3dnow();
151 rgb2rgb_init_mmxext();
#define INLINE_SSE2(flags)
av_cold void rgb2rgb_init_x86(void)
#define DECLARE_ASM_CONST(n, t, v)
int av_get_cpu_flags(void)
Return the flags which specify extensions supported by the CPU.
#define INLINE_MMX(flags)
#define INLINE_AMD3DNOW(flags)
#define INLINE_AVX(flags)
#define INLINE_MMXEXT(flags)