summaryrefslogtreecommitdiff
path: root/src/post/visualizations/fft.h
diff options
context:
space:
mode:
authorThibaut Mattern <tmattern@users.sourceforge.net>2003-09-14 12:30:36 +0000
committerThibaut Mattern <tmattern@users.sourceforge.net>2003-09-14 12:30:36 +0000
commit6c7c3f336c619065fba9fce7e876ec86bce0b838 (patch)
treeb9b741131db827c398107782cc1ebc4e04f7cdfe /src/post/visualizations/fft.h
parentdf62f1a3465a223ad8e229b35db874b8311ed946 (diff)
downloadxine-lib-6c7c3f336c619065fba9fce7e876ec86bce0b838.tar.gz
xine-lib-6c7c3f336c619065fba9fce7e876ec86bce0b838.tar.bz2
New viz plugin.
CVS patchset: 5371 CVS date: 2003/09/14 12:30:36
Diffstat (limited to 'src/post/visualizations/fft.h')
-rw-r--r--src/post/visualizations/fft.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/post/visualizations/fft.h b/src/post/visualizations/fft.h
new file mode 100644
index 000000000..707879641
--- /dev/null
+++ b/src/post/visualizations/fft.h
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2000-2002 the xine project
+ *
+ * This file is part of xine, a free video player.
+ *
+ * xine 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.
+ *
+ * xine 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
+ *
+ */
+#ifndef FFT_H
+#define FFT_H
+
+struct complex_s
+{
+ double re;
+ double im;
+};
+typedef struct complex_s complex_t;
+
+
+struct fft_s {
+ int bits;
+ double *SineTable;
+ double *CosineTable;
+ double *WinTable;
+};
+typedef struct fft_s fft_t;
+
+fft_t *fft_new (int bits);
+void fft_dispose(fft_t *fft);
+
+void fft_compute (fft_t *fft, complex_t wave[]);
+void fft_window (fft_t *fft, complex_t wave[]);
+
+double fft_amp (int n, complex_t wave[], int bits);
+double fft_phase (int n, complex_t wave[], int bits);
+void fft_scale (complex_t wave[], int bits);
+
+#endif /* FFT_H */