cannam@86
|
1 /********************************************************************
|
cannam@86
|
2 * *
|
cannam@86
|
3 * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
|
cannam@86
|
4 * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
|
cannam@86
|
5 * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
|
cannam@86
|
6 * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
|
cannam@86
|
7 * *
|
cannam@86
|
8 * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 *
|
cannam@86
|
9 * by the Xiph.Org Foundation http://www.xiph.org/ *
|
cannam@86
|
10 * *
|
cannam@86
|
11 ********************************************************************
|
cannam@86
|
12
|
cannam@86
|
13 function: utility functions for vorbis codec test suite.
|
cannam@86
|
14 last mod: $Id: util.c 13293 2007-07-24 00:09:47Z erikd $
|
cannam@86
|
15
|
cannam@86
|
16 ********************************************************************/
|
cannam@86
|
17
|
cannam@86
|
18 #include <stdio.h>
|
cannam@86
|
19 #include <stdlib.h>
|
cannam@86
|
20 #include <math.h>
|
cannam@86
|
21 #include <string.h>
|
cannam@86
|
22 #include <errno.h>
|
cannam@86
|
23
|
cannam@86
|
24 #include <vorbis/codec.h>
|
cannam@86
|
25 #include <vorbis/vorbisenc.h>
|
cannam@86
|
26
|
cannam@86
|
27 #include "util.h"
|
cannam@86
|
28
|
cannam@86
|
29 void
|
cannam@86
|
30 gen_windowed_sine (float *data, int len, float maximum)
|
cannam@86
|
31 { int k ;
|
cannam@86
|
32
|
cannam@86
|
33 memset (data, 0, len * sizeof (float)) ;
|
cannam@86
|
34
|
cannam@86
|
35 len /= 2 ;
|
cannam@86
|
36
|
cannam@86
|
37 for (k = 0 ; k < len ; k++)
|
cannam@86
|
38 { data [k] = sin (2.0 * k * M_PI * 1.0 / 32.0 + 0.4) ;
|
cannam@86
|
39
|
cannam@86
|
40 /* Apply Hanning Window. */
|
cannam@86
|
41 data [k] *= maximum * (0.5 - 0.5 * cos (2.0 * M_PI * k / ((len) - 1))) ;
|
cannam@86
|
42 }
|
cannam@86
|
43
|
cannam@86
|
44 return ;
|
cannam@86
|
45 }
|
cannam@86
|
46
|
cannam@86
|
47 void
|
cannam@86
|
48 set_data_in (float * data, unsigned len, float value)
|
cannam@86
|
49 { unsigned k ;
|
cannam@86
|
50
|
cannam@86
|
51 for (k = 0 ; k < len ; k++)
|
cannam@86
|
52 data [k] = value ;
|
cannam@86
|
53 }
|