yadif.c 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /*
  2. * Copyright (C) 2006 Michael Niedermayer <michaelni@gmx.at>
  3. *
  4. * This file is part of FFmpeg.
  5. *
  6. * FFmpeg is free software; you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License as published by
  8. * the Free Software Foundation; either version 2 of the License, or
  9. * (at your option) any later version.
  10. *
  11. * FFmpeg is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. * GNU General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU General Public License along
  17. * with FFmpeg; if not, write to the Free Software Foundation, Inc.,
  18. * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  19. */
  20. #include "libavutil/cpu.h"
  21. #include "libavutil/x86_cpu.h"
  22. #include "libavcodec/x86/dsputil_mmx.h"
  23. #include "libavfilter/yadif.h"
  24. DECLARE_ASM_CONST(16, const xmm_reg, pb_1) = {0x0101010101010101ULL, 0x0101010101010101ULL};
  25. DECLARE_ASM_CONST(16, const xmm_reg, pw_1) = {0x0001000100010001ULL, 0x0001000100010001ULL};
  26. #if HAVE_SSSE3
  27. #define COMPILE_TEMPLATE_SSE 1
  28. #define COMPILE_TEMPLATE_SSSE3 1
  29. #undef RENAME
  30. #define RENAME(a) a ## _ssse3
  31. #include "yadif_template.c"
  32. #undef COMPILE_TEMPLATE_SSSE3
  33. #endif
  34. #if HAVE_SSE
  35. #undef RENAME
  36. #define RENAME(a) a ## _sse2
  37. #include "yadif_template.c"
  38. #undef COMPILE_TEMPLATE_SSE
  39. #endif
  40. #if HAVE_MMX
  41. #undef RENAME
  42. #define RENAME(a) a ## _mmx
  43. #include "yadif_template.c"
  44. #endif