mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
Merge commit 'a519583991c38d38503ab08357716513facc5725'
* commit 'a519583991c38d38503ab08357716513facc5725': swscale: x86: Hide arch-specific initialization details Conflicts: libswscale/x86/Makefile libswscale/x86/swscale.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
db6b389c7f
@ -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)
|
||||
|
@ -1,11 +1,11 @@
|
||||
$(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)
|
||||
|
Loading…
Reference in New Issue
Block a user