Commit db6b389c authored by Michael Niedermayer's avatar Michael Niedermayer

Merge commit 'a5195839'

* commit 'a5195839':
  swscale: x86: Hide arch-specific initialization details

Conflicts:
	libswscale/x86/Makefile
	libswscale/x86/swscale.c
Merged-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parents 477641e9 a5195839
......@@ -129,7 +129,7 @@ void (*yuyvtoyuv422)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
av_cold void sws_rgb2rgb_init(void)
{
rgb2rgb_init_c();
if (HAVE_MMX)
if (ARCH_X86)
rgb2rgb_init_x86();
}
......
......@@ -759,8 +759,8 @@ SwsFunc ff_getSwsFunc(SwsContext *c)
{
sws_init_swScale_c(c);
if (HAVE_MMX)
ff_sws_init_swScale_mmx(c);
if (ARCH_X86)
ff_sws_init_swscale_x86(c);
if (HAVE_ALTIVEC)
ff_sws_init_swScale_altivec(c);
......
......@@ -616,7 +616,7 @@ void ff_yuv2rgb_init_tables_altivec(SwsContext *c, const int inv_table[4],
void updateMMXDitherTables(SwsContext *c, int dstY, int lumBufIndex, int chrBufIndex,
int lastInLumBuf, int lastInChrBuf);
SwsFunc ff_yuv2rgb_init_mmx(SwsContext *c);
SwsFunc ff_yuv2rgb_init_x86(SwsContext *c);
SwsFunc ff_yuv2rgb_init_vis(SwsContext *c);
SwsFunc ff_yuv2rgb_init_altivec(SwsContext *c);
SwsFunc ff_yuv2rgb_get_func_ptr_bfin(SwsContext *c);
......@@ -851,7 +851,7 @@ void ff_sws_init_output_funcs(SwsContext *c,
yuv2packedX_fn *yuv2packedX,
yuv2anyX_fn *yuv2anyX);
void ff_sws_init_swScale_altivec(SwsContext *c);
void ff_sws_init_swScale_mmx(SwsContext *c);
void ff_sws_init_swscale_x86(SwsContext *c);
static inline void fillPlane16(uint8_t *plane, int stride, int width, int height, int y,
int alpha, int bits, const int big_endian)
......
$(SUBDIR)x86/swscale_mmx.o: CFLAGS += $(NOREDZONE_FLAGS)
OBJS-$(CONFIG_XMM_CLOBBER_TEST) += x86/w64xmmtest.o
MMX-OBJS += x86/rgb2rgb.o \
OBJS += x86/rgb2rgb.o \
x86/swscale.o \
x86/yuv2rgb.o \
OBJS-$(CONFIG_XMM_CLOBBER_TEST) += x86/w64xmmtest.o
YASM-OBJS += x86/input.o \
x86/output.o \
x86/scale.o \
......@@ -377,22 +377,22 @@ INPUT_FUNCS(sse2);
INPUT_FUNCS(ssse3);
INPUT_FUNCS(avx);
av_cold void ff_sws_init_swScale_mmx(SwsContext *c)
av_cold void ff_sws_init_swscale_x86(SwsContext *c)
{
int cpu_flags = av_get_cpu_flags();
#if HAVE_INLINE_ASM
#if HAVE_MMX_INLINE
if (cpu_flags & AV_CPU_FLAG_MMX)
sws_init_swScale_MMX(c);
sws_init_swscale_MMX(c);
#endif
#if HAVE_MMXEXT_INLINE
if (cpu_flags & AV_CPU_FLAG_MMXEXT)
sws_init_swScale_MMXEXT(c);
sws_init_swscale_MMXEXT(c);
if (cpu_flags & AV_CPU_FLAG_SSE3){
if(c->use_mmx_vfilter && !(c->flags & SWS_ACCURATE_RND))
c->yuv2planeX = yuv2yuvX_sse3;
}
#endif
#endif /* HAVE_INLINE_ASM */
#define ASSIGN_SCALE_FUNC2(hscalefn, filtersize, opt1, opt2) do { \
if (c->srcBpc == 8) { \
......
......@@ -1640,7 +1640,7 @@ static void RENAME(hcscale_fast)(SwsContext *c, int16_t *dst1, int16_t *dst2,
}
#endif /* COMPILE_TEMPLATE_MMXEXT */
static av_cold void RENAME(sws_init_swScale)(SwsContext *c)
static av_cold void RENAME(sws_init_swscale)(SwsContext *c)
{
enum AVPixelFormat dstFormat = c->dstFormat;
......
......@@ -68,9 +68,9 @@ DECLARE_ASM_CONST(8, uint64_t, pb_07) = 0x0707070707070707ULL;
#endif /* HAVE_INLINE_ASM */
av_cold SwsFunc ff_yuv2rgb_init_mmx(SwsContext *c)
av_cold SwsFunc ff_yuv2rgb_init_x86(SwsContext *c)
{
#if HAVE_INLINE_ASM
#if HAVE_MMX_INLINE
int cpu_flags = av_get_cpu_flags();
#if HAVE_MMXEXT_INLINE
......@@ -106,7 +106,7 @@ av_cold SwsFunc ff_yuv2rgb_init_mmx(SwsContext *c)
case AV_PIX_FMT_RGB555: return yuv420_rgb15_MMX;
}
}
#endif /* HAVE_INLINE_ASM */
#endif /* HAVE_MMX_INLINE */
return NULL;
}
......@@ -601,8 +601,8 @@ SwsFunc ff_yuv2rgb_get_func_ptr(SwsContext *c)
{
SwsFunc t = NULL;
if (HAVE_MMX)
t = ff_yuv2rgb_init_mmx(c);
if (ARCH_X86)
t = ff_yuv2rgb_init_x86(c);
else if (HAVE_VIS)
t = ff_yuv2rgb_init_vis(c);
else if (HAVE_ALTIVEC)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment