65 #define mask16b mask15b 82 #define BY ((int)( 0.098*(1<<RGB2YUV_SHIFT)+0.5)) 83 #define BV ((int)(-0.071*(1<<RGB2YUV_SHIFT)+0.5)) 84 #define BU ((int)( 0.439*(1<<RGB2YUV_SHIFT)+0.5)) 85 #define GY ((int)( 0.504*(1<<RGB2YUV_SHIFT)+0.5)) 86 #define GV ((int)(-0.368*(1<<RGB2YUV_SHIFT)+0.5)) 87 #define GU ((int)(-0.291*(1<<RGB2YUV_SHIFT)+0.5)) 88 #define RY ((int)( 0.257*(1<<RGB2YUV_SHIFT)+0.5)) 89 #define RV ((int)( 0.439*(1<<RGB2YUV_SHIFT)+0.5)) 90 #define RU ((int)(-0.148*(1<<RGB2YUV_SHIFT)+0.5)) 94 #define COMPILE_TEMPLATE_MMXEXT 0 95 #define COMPILE_TEMPLATE_AMD3DNOW 0 96 #define COMPILE_TEMPLATE_SSE2 0 97 #define COMPILE_TEMPLATE_AVX 0 101 #define RENAME(a) a ## _mmx 102 #include "rgb2rgb_template.c" 106 #undef COMPILE_TEMPLATE_MMXEXT 107 #define COMPILE_TEMPLATE_MMXEXT 1 108 #define RENAME(a) a ## _mmxext 109 #include "rgb2rgb_template.c" 113 #undef COMPILE_TEMPLATE_SSE2 114 #define COMPILE_TEMPLATE_SSE2 1 115 #define RENAME(a) a ## _sse2 116 #include "rgb2rgb_template.c" 120 #undef COMPILE_TEMPLATE_AVX 121 #define COMPILE_TEMPLATE_AVX 1 122 #define RENAME(a) a ## _avx 123 #include "rgb2rgb_template.c" 127 #undef COMPILE_TEMPLATE_MMXEXT 128 #undef COMPILE_TEMPLATE_SSE2 129 #undef COMPILE_TEMPLATE_AVX 130 #undef COMPILE_TEMPLATE_AMD3DNOW 131 #define COMPILE_TEMPLATE_MMXEXT 0 132 #define COMPILE_TEMPLATE_SSE2 0 133 #define COMPILE_TEMPLATE_AVX 0 134 #define COMPILE_TEMPLATE_AMD3DNOW 1 135 #define RENAME(a) a ## _3dnow 136 #include "rgb2rgb_template.c" 161 rgb2rgb_init_3dnow();
163 rgb2rgb_init_mmxext();
void(* shuffle_bytes_3012)(const uint8_t *src, uint8_t *dst, int src_size)
#define INLINE_SSE2(flags)
static atomic_int cpu_flags
av_cold void rgb2rgb_init_x86(void)
#define INLINE_AVX(flags)
Macro definitions for various function/variable attributes.
void(* shuffle_bytes_2103)(const uint8_t *src, uint8_t *dst, int src_size)
void ff_shuffle_bytes_2103_ssse3(const uint8_t *src, uint8_t *dst, int src_size)
void(* shuffle_bytes_3210)(const uint8_t *src, uint8_t *dst, int src_size)
#define DECLARE_ALIGNED(n, t, v)
Declare a variable that is aligned in memory.
#define INLINE_MMX(flags)
void ff_shuffle_bytes_1230_ssse3(const uint8_t *src, uint8_t *dst, int src_size)
void(* shuffle_bytes_1230)(const uint8_t *src, uint8_t *dst, int src_size)
#define DECLARE_ASM_CONST(n, t, v)
Declare a static constant aligned variable appropriate for use in inline assembly code...
#define INLINE_AMD3DNOW(flags)
#define EXTERNAL_SSSE3(flags)
void ff_shuffle_bytes_3210_ssse3(const uint8_t *src, uint8_t *dst, int src_size)
int av_get_cpu_flags(void)
Return the flags which specify extensions supported by the CPU.
void ff_shuffle_bytes_0321_ssse3(const uint8_t *src, uint8_t *dst, int src_size)
void(* shuffle_bytes_0321)(const uint8_t *src, uint8_t *dst, int src_size)
void ff_shuffle_bytes_3012_ssse3(const uint8_t *src, uint8_t *dst, int src_size)
#define INLINE_MMXEXT(flags)