--- trunk/xvidcore/src/dct/idct.h 2002/11/16 23:51:58 649 +++ branches/release-1_3-branch/xvidcore/src/dct/idct.h 2011/05/18 08:51:47 1984 @@ -1,75 +1,58 @@ -/***************************************************************************** - * - * XVID MPEG-4 VIDEO CODEC - * - fast disrete cosine transformation - Header file - * - * This file is part of XviD, a free MPEG-4 video encoder/decoder - * - * XviD is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * Under section 8 of the GNU General Public License, the copyright - * holders of XVID explicitly forbid distribution in the following - * countries: - * - * - Japan - * - United States of America - * - * Linking XviD statically or dynamically with other modules is making a - * combined work based on XviD. Thus, the terms and conditions of the - * GNU General Public License cover the whole combination. - * - * As a special exception, the copyright holders of XviD give you - * permission to link XviD with independent modules that communicate with - * XviD solely through the VFW1.1 and DShow interfaces, regardless of the - * license terms of these independent modules, and to copy and distribute - * the resulting combined work under terms of your choice, provided that - * every copy of the combined work is accompanied by a complete copy of - * the source code of XviD (the version of XviD used to produce the - * combined work), being distributed under the terms of the GNU General - * Public License plus this exception. An independent module is a module - * which is not derived from or based on XviD. - * - * Note that people who make modified versions of XviD are not obligated - * to grant this special exception for their modified versions; it is - * their choice whether to do so. The GNU General Public License gives - * permission to release a modified version without this exception; this - * exception also makes it possible to release a modified version which - * carries forward this exception. - * - * $Id: idct.h,v 1.6 2002-11-16 23:51:58 edgomez Exp $ - * - *************************************************************************/ - -#ifndef _IDCT_H_ -#define _IDCT_H_ - -void idct_int32_init(); -void idct_ia64_init(); - -typedef void (idctFunc) (short *const block); -typedef idctFunc *idctFuncPtr; - -extern idctFuncPtr idct; - -idctFunc idct_int32; - -idctFunc idct_mmx; -idctFunc idct_xmm; -idctFunc idct_sse2; - -idctFunc idct_altivec; -idctFunc idct_ia64; - -#endif /* _IDCT_H_ */ +/***************************************************************************** + * + * XVID MPEG-4 VIDEO CODEC + * - Inverse DCT header - + * + * Copyright(C) 2001-2011 Michael Militzer + * + * This program is free software ; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation ; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY ; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program ; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * $Id: idct.h,v 1.13 2008-11-26 01:04:34 Isibaar Exp $ + * + ****************************************************************************/ + +#ifndef _IDCT_H_ +#define _IDCT_H_ + +#include "../portab.h" + +void idct_int32_init(); +void idct_ia64_init(); + +typedef void (idctFunc) (short *const block); +typedef idctFunc *idctFuncPtr; + +extern idctFuncPtr idct; + +idctFunc idct_int32; +idctFunc simple_idct_c; /* Michael Niedermayer */ + +#if defined(ARCH_IS_IA32) || defined(ARCH_IS_X86_64) +idctFunc idct_mmx; /* AP-992, Peter Gubanov, Michel Lespinasse */ +idctFunc idct_xmm; /* AP-992, Peter Gubanov, Michel Lespinasse */ +idctFunc idct_3dne; /* AP-992, Peter Gubanov, Michel Lespinasse, Jaan Kalda */ +idctFunc idct_sse2_skal; /* Skal's one, IEEE 1180 compliant */ +idctFunc idct_sse2_dmitry; /* Dmitry Rozhdestvensky */ +#endif + +#ifdef ARCH_IS_IA64 +idctFunc idct_ia64; +#endif + +#ifdef ARCH_IS_PPC +idctFunc idct_altivec_c; +#endif + +#endif /* _IDCT_H_ */