1 /*
2  *  dct.h
3  *
4  *     Copyright (C) Charles 'Buck' Krasic - April 2000
5  *     Copyright (C) Erik Walthinsen - April 2000
6  *
7  *  This file is part of libdv, a free DV (IEC 61834/SMPTE 314M)
8  *  codec.
9  *
10  *  libdv is free software; you can redistribute it and/or modify it
11  *  under the terms of the GNU Lesser Public License as published by
12  *  the Free Software Foundation; either version 2.1, or (at your
13  *  option) any later version.
14  *
15  *  libdv is distributed in the hope that it will be useful, but
16  *  WITHOUT ANY WARRANTY; without even the implied warranty of
17  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18  *  Lesser Public License for more details.
19  *
20  *  You should have received a copy of the GNU Lesser Public License
21  *  along with libdv; see the file COPYING.  If not, write to
22  *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
23  *
24  *  The libdv homepage is http://libdv.sourceforge.net/.
25  */
26 
27 /** @file
28  *  @ingroup dct
29  *  @brief   Interface for @link dct Discrete Cosine Transform @endlink
30  */
31 
32 /** @addtogroup dct Discrete Cosine Transform
33  *  @{
34  */
35 
36 #ifndef DV_DCT_H
37 #define DV_DCT_H
38 
39 #include "dv_types.h"
40 
41 #define DCT_YUV_PRECISION 1        /* means fixpoint with YUV_PRECISION bits
42 				      after the point (if you change this,
43 				      change rgbtoyuv.S and dct_block_mmx.S
44 				      accordingly) */
45 
46 #ifdef __cplusplus
47 extern "C" {
48 #endif
49 
50 void _dv_dct_init(void);
51 /* Input is transposed ! */
52 void _dv_dct_88(dv_coeff_t *block);
53 /* Input is transposed ! */
54 void _dv_dct_248(dv_coeff_t *block);
55 void _dv_idct_88(dv_coeff_t *block);
56 #if BRUTE_FORCE_248
57 void _dv_idct_248(double *block);
58 #endif
59 
60 #ifdef __cplusplus
61 }
62 #endif
63 
64 #endif // DV_DCT_H
65