diff options
author | Uoti Urpala <uau@glyph.nonexistent.invalid> | 2010-04-26 18:06:00 +0300 |
---|---|---|
committer | Uoti Urpala <uau@glyph.nonexistent.invalid> | 2010-04-26 18:06:00 +0300 |
commit | 837c48ddeef9066f16c119f3cac412d37a25766a (patch) | |
tree | 61b95ec92e22522c8ccd07cd213f66dd56c1c197 /libmpcodecs | |
parent | e913d6c5dabcf342d8c1a7070382d712fc354948 (diff) | |
parent | 7bf961b1a3bbea070f40247417965493965729e1 (diff) | |
download | mpv-837c48ddeef9066f16c119f3cac412d37a25766a.tar.bz2 mpv-837c48ddeef9066f16c119f3cac412d37a25766a.tar.xz |
Merge svn changes up to r31020
Diffstat (limited to 'libmpcodecs')
-rw-r--r-- | libmpcodecs/vf_gradfun.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/libmpcodecs/vf_gradfun.c b/libmpcodecs/vf_gradfun.c index f7495948e5..ff53d8aa75 100644 --- a/libmpcodecs/vf_gradfun.c +++ b/libmpcodecs/vf_gradfun.c @@ -91,7 +91,7 @@ static void blur_line_c(uint16_t *dc, uint16_t *buf, uint16_t *buf1, } } -#if HAVE_SSSE3 +#if HAVE_MMX2 static void filter_line_mmx2(uint8_t *dst, uint8_t *src, uint16_t *dc, int width, int thresh, const uint16_t *dithers) { @@ -138,7 +138,9 @@ static void filter_line_mmx2(uint8_t *dst, uint8_t *src, uint16_t *dc, :"memory" ); } +#endif +#if HAVE_SSSE3 static void filter_line_ssse3(uint8_t *dst, uint8_t *src, uint16_t *dc, int width, int thresh, const uint16_t *dithers) { @@ -184,7 +186,9 @@ static void filter_line_ssse3(uint8_t *dst, uint8_t *src, uint16_t *dc, :"memory" ); } +#endif // HAVE_SSSE3 +#if HAVE_6REGS && HAVE_SSE2 #define BLURV(load)\ intptr_t x = -2*width;\ __asm__ volatile(\ @@ -218,7 +222,6 @@ static void filter_line_ssse3(uint8_t *dst, uint8_t *src, uint16_t *dc, :"memory"\ ); -#if HAVE_6REGS static void blur_line_sse2(uint16_t *dc, uint16_t *buf, uint16_t *buf1, uint8_t *src, int sstride, int width) { @@ -228,8 +231,7 @@ static void blur_line_sse2(uint16_t *dc, uint16_t *buf, uint16_t *buf1, BLURV("movdqa"); } } -#endif // HAVE_6REGS -#endif // HAVE_SSSE3 +#endif // HAVE_6REGS && HAVE_SSE2 static void filter(struct vf_priv_s *ctx, uint8_t *dst, uint8_t *src, int width, int height, int dstride, int sstride, int r) @@ -383,13 +385,15 @@ static int vf_open(vf_instance_t *vf, char *args) vf->priv->blur_line = blur_line_c; vf->priv->filter_line = filter_line_c; -#if HAVE_SSSE3 -#if HAVE_6REGS +#if HAVE_6REGS && HAVE_SSE2 if (gCpuCaps.hasSSE2) vf->priv->blur_line = blur_line_sse2; #endif +#if HAVE_MMX2 if (gCpuCaps.hasMMX2) vf->priv->filter_line = filter_line_mmx2; +#endif +#if HAVE_SSSE3 if (gCpuCaps.hasSSSE3) vf->priv->filter_line = filter_line_ssse3; #endif |