Libav 0.7.1
libavfilter/x86/yadif.c
Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2006 Michael Niedermayer <michaelni@gmx.at>
00003  *
00004  * This file is part of Libav.
00005  *
00006  * Libav is free software; you can redistribute it and/or modify
00007  * it under the terms of the GNU General Public License as published by
00008  * the Free Software Foundation; either version 2 of the License, or
00009  * (at your option) any later version.
00010  *
00011  * Libav is distributed in the hope that it will be useful,
00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014  * GNU General Public License for more details.
00015  *
00016  * You should have received a copy of the GNU General Public License along
00017  * with Libav; if not, write to the Free Software Foundation, Inc.,
00018  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
00019  */
00020 
00021 #include "libavutil/cpu.h"
00022 #include "libavutil/x86_cpu.h"
00023 #include "libavcodec/x86/dsputil_mmx.h"
00024 #include "libavfilter/yadif.h"
00025 
00026 DECLARE_ASM_CONST(16, const xmm_reg, pb_1) = {0x0101010101010101ULL, 0x0101010101010101ULL};
00027 DECLARE_ASM_CONST(16, const xmm_reg, pw_1) = {0x0001000100010001ULL, 0x0001000100010001ULL};
00028 
00029 #if HAVE_SSSE3
00030 #define COMPILE_TEMPLATE_SSE 1
00031 #define COMPILE_TEMPLATE_SSSE3 1
00032 #undef RENAME
00033 #define RENAME(a) a ## _ssse3
00034 #include "yadif_template.c"
00035 #undef COMPILE_TEMPLATE_SSSE3
00036 #endif
00037 
00038 #if HAVE_SSE
00039 #undef RENAME
00040 #define RENAME(a) a ## _sse2
00041 #include "yadif_template.c"
00042 #undef COMPILE_TEMPLATE_SSE
00043 #endif
00044 
00045 #if HAVE_MMX
00046 #undef RENAME
00047 #define RENAME(a) a ## _mmx
00048 #include "yadif_template.c"
00049 #endif