diff options
author | Jamie Bullock <jamie@postlude.co.uk> | 2007-12-28 19:34:51 +0000 |
---|---|---|
committer | Jamie Bullock <jamie@postlude.co.uk> | 2007-12-28 19:34:51 +0000 |
commit | 2e66bd6092fe93ca7fa953c4af9d0e16bbf69905 (patch) | |
tree | 0879cd510f23690e40ed4c01262bf301bfc38d15 /src/helper.c | |
parent | 0c2e564c15c583a5274271a0bbacb237b180d500 (diff) | |
download | LibXtract-2e66bd6092fe93ca7fa953c4af9d0e16bbf69905.tar.gz LibXtract-2e66bd6092fe93ca7fa953c4af9d0e16bbf69905.tar.bz2 LibXtract-2e66bd6092fe93ca7fa953c4af9d0e16bbf69905.zip |
- Added new helper functions: xtract_windowed() and xtract_features_from_subframes()
- Added windowing functions (window.c)
Diffstat (limited to 'src/helper.c')
-rw-r--r-- | src/helper.c | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/helper.c b/src/helper.c new file mode 100644 index 0000000..eceb290 --- /dev/null +++ b/src/helper.c @@ -0,0 +1,65 @@ +/* libxtract feature extraction library + * + * Copyright (C) 2006 Jamie Bullock + * + * This program 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. + * + * This program 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + * USA. + */ + + +/* helper.c: helper functions. */ + +#include "xtract/libxtract.h" + +int xtract_windowed(const float *data, const int N, const void *argv, float *result){ + + int n; + const float *window; + + n = N; + window = (const float *)argv; + + while(n--) + result[n] = data[n] * window[n]; + + return XTRACT_SUCCESS; + +} + +int xtract_features_from_subframes(const float *data, const int N, const int feature, const void *argv, float *result){ + + const float *frame1, + *frame2; + float *result1, + *result2; + + int n, + rv; + + n = N >> 1; + + frame1 = data; + frame2 = data + n; + result1 = result; + result2 = result + n; + + rv = xtract[feature](frame1, n, argv, result1); + + if(rv == XTRACT_SUCCESS) + rv = xtract[feature](frame2, n, argv, result2); + + return rv; + +} |