Recognizes if input is ogg or not.
[xiph.git] / ghost / monty / sinusoid / smallft.h
blob976971e550e27b53ab936eaa6b9aa11e92b2712b
1 /********************************************************************
2 * *
3 * THIS FILE IS PART OF THE OggGhost SOFTWARE CODEC SOURCE CODE. *
4 * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
5 * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
6 * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
7 * *
8 * THE OggGhost SOURCE CODE IS (C) COPYRIGHT 1994-2007 *
9 * the Xiph.Org FOundation http://www.xiph.org/ *
10 * *
11 ********************************************************************
13 function: unnormalized powers-of-two forward fft transform
14 last mod: $Id: smallft.c 7573 2004-08-16 01:26:52Z conrad $
16 ********************************************************************/
18 /* FFT implementation from OggSquish, minus cosine transforms,
19 * minus all but radix 2/4 case. In Vorbis we only need this
20 * cut-down version.
22 * To do more than just power-of-two sized vectors, see the full
23 * version I wrote for NetLib.
25 * Note that the packing is a little strange; rather than the FFT r/i
26 * packing following R_0, R_n, R_1, I_1, R_2, I_2 ... R_n-1, I_n-1,
27 * it follows R_0, R_1, I_1, R_2, I_2 ... R_n-1, I_n-1, I_n like the
28 * FORTRAN version
31 #ifndef _V_SMFT_H_
32 #define _V_SMFT_H_
34 typedef struct {
35 int n;
36 float *trigcache;
37 int *splitcache;
38 } drft_lookup;
40 extern void drft_forward(drft_lookup *l,float *data);
41 extern int drft_init(drft_lookup *l,int n);
42 extern void drft_clear(drft_lookup *l);
44 #endif