summaryrefslogtreecommitdiff
path: root/apps/codecs/libwma/dsputil.h
diff options
context:
space:
mode:
Diffstat (limited to 'apps/codecs/libwma/dsputil.h')
-rw-r--r--apps/codecs/libwma/dsputil.h84
1 files changed, 0 insertions, 84 deletions
diff --git a/apps/codecs/libwma/dsputil.h b/apps/codecs/libwma/dsputil.h
deleted file mode 100644
index 794af1e285..0000000000
--- a/apps/codecs/libwma/dsputil.h
+++ /dev/null
@@ -1,84 +0,0 @@
1/*
2 * DSP utils
3 * Copyright (c) 2000, 2001, 2002 Fabrice Bellard.
4 * Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
10 *
11 * This library 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 GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
20
21/**
22 * @file dsputil.h
23 * DSP utils.
24 * note, many functions in here may use MMX which trashes the FPU state, it is
25 * absolutely necessary to call emms_c() between dsp & float/double code
26 */
27
28#ifndef DSPUTIL_H
29#define DSPUTIL_H
30
31#include "common.h"
32
33void dsputil_static_init(void);
34
35/* FFT computation */
36
37/* NOTE: soon integer code will be added, so you must use the
38 FFTSample type */
39typedef float FFTSample;
40
41typedef struct FFTComplex {
42 FFTSample re, im;
43} FFTComplex;
44
45typedef struct FFTContext {
46 int nbits;
47 int inverse;
48 uint16_t *revtab;
49 FFTComplex *exptab;
50 FFTComplex *exptab1; /* only used by SSE code */
51 void (*fft_calc)(struct FFTContext *s, FFTComplex *z);
52} FFTContext;
53
54int fft_inits(FFTContext *s, int nbits, int inverse);
55void fft_permute(FFTContext *s, FFTComplex *z);
56void fft_calc_c(FFTContext *s, FFTComplex *z);
57void fft_calc_sse(FFTContext *s, FFTComplex *z);
58void fft_calc_altivec(FFTContext *s, FFTComplex *z);
59
60static inline void fft_calc(FFTContext *s, FFTComplex *z)
61{
62 s->fft_calc(s, z);
63}
64void fft_end(FFTContext *s);
65
66/* MDCT computation */
67
68typedef struct MDCTContext {
69 int n; /* size of MDCT (i.e. number of input data * 2) */
70 int nbits; /* n = 2^nbits */
71 /* pre/post rotation tables */
72 FFTSample *tcos;
73 FFTSample *tsin;
74 FFTContext fft;
75} MDCTContext;
76
77int ff_mdct_init(MDCTContext *s, int nbits, int inverse);
78void ff_imdct_calc(MDCTContext *s, FFTSample *output,
79 const FFTSample *input, FFTSample *tmp);
80void ff_mdct_calc(MDCTContext *s, FFTSample *out,
81 const FFTSample *input, FFTSample *tmp);
82void ff_mdct_end(MDCTContext *s);
83
84#endif