|
|
|
@ -54,7 +54,7 @@ DECLARE_ASM_CONST(8, uint64_t, pb_07) = 0x0707070707070707ULL; |
|
|
|
|
#undef RENAME |
|
|
|
|
#undef COMPILE_TEMPLATE_MMXEXT |
|
|
|
|
#define COMPILE_TEMPLATE_MMXEXT 0 |
|
|
|
|
#define RENAME(a) a ## _MMX |
|
|
|
|
#define RENAME(a) a ## _mmx |
|
|
|
|
#include "yuv2rgb_template.c" |
|
|
|
|
#endif /* HAVE_MMX_INLINE */ |
|
|
|
|
|
|
|
|
@ -63,7 +63,7 @@ DECLARE_ASM_CONST(8, uint64_t, pb_07) = 0x0707070707070707ULL; |
|
|
|
|
#undef RENAME |
|
|
|
|
#undef COMPILE_TEMPLATE_MMXEXT |
|
|
|
|
#define COMPILE_TEMPLATE_MMXEXT 1 |
|
|
|
|
#define RENAME(a) a ## _MMXEXT |
|
|
|
|
#define RENAME(a) a ## _mmxext |
|
|
|
|
#include "yuv2rgb_template.c" |
|
|
|
|
#endif /* HAVE_MMXEXT_INLINE */ |
|
|
|
|
|
|
|
|
@ -82,9 +82,9 @@ av_cold SwsFunc ff_yuv2rgb_init_x86(SwsContext *c) |
|
|
|
|
if (cpu_flags & AV_CPU_FLAG_MMXEXT) { |
|
|
|
|
switch (c->dstFormat) { |
|
|
|
|
case AV_PIX_FMT_RGB24: |
|
|
|
|
return yuv420_rgb24_MMXEXT; |
|
|
|
|
return yuv420_rgb24_mmxext; |
|
|
|
|
case AV_PIX_FMT_BGR24: |
|
|
|
|
return yuv420_bgr24_MMXEXT; |
|
|
|
|
return yuv420_bgr24_mmxext; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
@ -94,21 +94,27 @@ av_cold SwsFunc ff_yuv2rgb_init_x86(SwsContext *c) |
|
|
|
|
case AV_PIX_FMT_RGB32: |
|
|
|
|
if (c->srcFormat == AV_PIX_FMT_YUVA420P) { |
|
|
|
|
#if HAVE_7REGS && CONFIG_SWSCALE_ALPHA |
|
|
|
|
return yuva420_rgb32_MMX; |
|
|
|
|
return yuva420_rgb32_mmx; |
|
|
|
|
#endif |
|
|
|
|
break; |
|
|
|
|
} else return yuv420_rgb32_MMX; |
|
|
|
|
} else |
|
|
|
|
return yuv420_rgb32_mmx; |
|
|
|
|
case AV_PIX_FMT_BGR32: |
|
|
|
|
if (c->srcFormat == AV_PIX_FMT_YUVA420P) { |
|
|
|
|
#if HAVE_7REGS && CONFIG_SWSCALE_ALPHA |
|
|
|
|
return yuva420_bgr32_MMX; |
|
|
|
|
return yuva420_bgr32_mmx; |
|
|
|
|
#endif |
|
|
|
|
break; |
|
|
|
|
} else return yuv420_bgr32_MMX; |
|
|
|
|
case AV_PIX_FMT_RGB24: return yuv420_rgb24_MMX; |
|
|
|
|
case AV_PIX_FMT_BGR24: return yuv420_bgr24_MMX; |
|
|
|
|
case AV_PIX_FMT_RGB565: return yuv420_rgb16_MMX; |
|
|
|
|
case AV_PIX_FMT_RGB555: return yuv420_rgb15_MMX; |
|
|
|
|
} else |
|
|
|
|
return yuv420_bgr32_mmx; |
|
|
|
|
case AV_PIX_FMT_RGB24: |
|
|
|
|
return yuv420_rgb24_mmx; |
|
|
|
|
case AV_PIX_FMT_BGR24: |
|
|
|
|
return yuv420_bgr24_mmx; |
|
|
|
|
case AV_PIX_FMT_RGB565: |
|
|
|
|
return yuv420_rgb16_mmx; |
|
|
|
|
case AV_PIX_FMT_RGB555: |
|
|
|
|
return yuv420_rgb15_mmx; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
#endif /* HAVE_MMX_INLINE */ |
|
|
|
|