diff options
author | Jamie Bullock <jamie@jamiebullock.com> | 2013-06-19 14:59:58 -0700 |
---|---|---|
committer | Jamie Bullock <jamie@jamiebullock.com> | 2013-06-19 16:23:50 -0700 |
commit | 394ce89bd3ef478dc3fba4de15a5cee222dc516f (patch) | |
tree | 739680c60737a0a366ae4b86807402b863da5ded /examples/simpletest | |
parent | c452cc7741a173bb214f62d41317770e66c4b2f5 (diff) | |
download | LibXtract-394ce89bd3ef478dc3fba4de15a5cee222dc516f.tar.gz LibXtract-394ce89bd3ef478dc3fba4de15a5cee222dc516f.tar.bz2 LibXtract-394ce89bd3ef478dc3fba4de15a5cee222dc516f.zip |
Fix memory leak by calling xtract_free_window()
Diffstat (limited to 'examples/simpletest')
-rw-r--r-- | examples/simpletest/simpletest.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/examples/simpletest/simpletest.c b/examples/simpletest/simpletest.c index c182a90..fae0090 100644 --- a/examples/simpletest/simpletest.c +++ b/examples/simpletest/simpletest.c @@ -92,12 +92,12 @@ int main(void) double mean = 0.0; double f0 = 0.0; double centroid = 0.0; - double *spectrum = calloc(BLOCKSIZE, sizeof(double)); - double *windowed = calloc(BLOCKSIZE, sizeof(double)); - double *peaks = calloc(BLOCKSIZE, sizeof(double)); - double *harmonics = calloc(BLOCKSIZE, sizeof(double)); + double spectrum[BLOCKSIZE] = {0}; + double windowed[BLOCKSIZE] = {0}; + double peaks[BLOCKSIZE] = {0}; + double harmonics[BLOCKSIZE] = {0}; double *window = NULL; - double *mfccs = calloc(MFCC_FREQ_BANDS, sizeof(double)); + double mfccs[MFCC_FREQ_BANDS] = {0}; double argd[4] = {0}; double samplerate = 44100.0; int n; @@ -117,14 +117,16 @@ int main(void) /* create the window function */ window = xtract_init_window(BLOCKSIZE, XTRACT_HANN); xtract_windowed(wavetable, BLOCKSIZE, window, windowed); + xtract_free_window(window); /* get the spectrum */ argd[0] = SAMPLERATE / (double)BLOCKSIZE; argd[1] = XTRACT_MAGNITUDE_SPECTRUM; - argd[2] = 0.f; /* DC component - we expect this to zero for square wave */ + argd[2] = 1.f; /* DC component - we expect this to zero for square wave */ argd[3] = 0.f; /* No Normalisation */ xtract_init_fft(BLOCKSIZE, XTRACT_SPECTRUM); + printf("windowed: %p, spectrum: %p\n", (void *)windowed, (void *)spectrum); xtract[XTRACT_SPECTRUM](windowed, BLOCKSIZE, &argd[0], spectrum); xtract[XTRACT_SPECTRAL_CENTROID](spectrum, BLOCKSIZE, NULL, ¢roid); @@ -182,12 +184,6 @@ int main(void) } free(mel_filters.filters); - free(spectrum); - free(windowed); - free(peaks); - free(harmonics); - free(mfccs); - return 0; } |