aboutsummaryrefslogtreecommitdiff
path: root/src/vector.c
diff options
context:
space:
mode:
authorJamie Bullock <jamie@postlude.co.uk>2007-03-20 07:35:30 +0000
committerJamie Bullock <jamie@postlude.co.uk>2007-03-20 07:35:30 +0000
commit112745d26988cc86ebf2577dba029d03211a22e8 (patch)
tree85ddd95d9f3f1263ad1d1dc8ed770320193386e5 /src/vector.c
parent0f01e44455d7e70fd64e88c8e410cd40fbd2a2d0 (diff)
downloadLibXtract-112745d26988cc86ebf2577dba029d03211a22e8.tar.gz
LibXtract-112745d26988cc86ebf2577dba029d03211a22e8.tar.bz2
LibXtract-112745d26988cc86ebf2577dba029d03211a22e8.zip
Removed spurious mallocs and frees in xtract_mfcc and xtract_dct
Diffstat (limited to 'src/vector.c')
-rw-r--r--src/vector.c15
1 files changed, 2 insertions, 13 deletions
diff --git a/src/vector.c b/src/vector.c
index 404f414..acbf5a2 100644
--- a/src/vector.c
+++ b/src/vector.c
@@ -182,19 +182,15 @@ int xtract_autocorrelation_fft(const float *data, const int N, const void *argv,
int xtract_mfcc(const float *data, const int N, const void *argv, float *result){
xtract_mel_filter *f;
- float *input;
size_t bytes;
int n, filter;
f = (xtract_mel_filter *)argv;
- input = (float *)malloc(bytes = N * sizeof(float));
- input = memcpy(input, data, bytes);
-
for(filter = 0; filter < f->n_filters; filter++){
result[filter] = 0.f;
for(n = 0; n < N; n++){
- result[filter] += input[n] * f->filters[filter][n];
+ result[filter] += data[n] * f->filters[filter][n];
}
result[filter] = log(result[filter] < XTRACT_LOG_LIMIT ? XTRACT_LOG_LIMIT : result[filter]);
}
@@ -202,8 +198,6 @@ int xtract_mfcc(const float *data, const int N, const void *argv, float *result)
for(n = filter + 1; n < N; n++) result[n] = 0;
xtract_dct(result, f->n_filters, NULL, result);
-
- free(input);
return XTRACT_SUCCESS;
}
@@ -211,18 +205,13 @@ int xtract_mfcc(const float *data, const int N, const void *argv, float *result)
int xtract_dct(const float *data, const int N, const void *argv, float *result){
fftwf_plan plan;
- float *input;
size_t bytes;
-
- input = (float *)malloc(bytes = N * sizeof(float));
- input = memcpy(input, data, bytes);
plan =
- fftwf_plan_r2r_1d(N, input, result, FFTW_REDFT00, FFTW_ESTIMATE);
+ fftwf_plan_r2r_1d(N, data, result, FFTW_REDFT00, FFTW_ESTIMATE);
fftwf_execute(plan);
fftwf_destroy_plan(plan);
- free(input);
return XTRACT_SUCCESS;
}