diff options
author | Nanang Izzuddin <nanang@teluu.com> | 2008-06-10 14:09:37 +0000 |
---|---|---|
committer | Nanang Izzuddin <nanang@teluu.com> | 2008-06-10 14:09:37 +0000 |
commit | beaa7b7491e6deccd6c49abc375702e23aa4324a (patch) | |
tree | 9ebf2d154e6c5d7bfc61222a60731d59deb2e89e /third_party/speex/libspeex/testresample.c | |
parent | 60ce2ec8b88876b89c408ef7b78a4641d1162148 (diff) |
Upgraded Speex version to the latest and reorganized it in local copy (since Speex is now using Git)
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2002 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'third_party/speex/libspeex/testresample.c')
-rw-r--r-- | third_party/speex/libspeex/testresample.c | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/third_party/speex/libspeex/testresample.c b/third_party/speex/libspeex/testresample.c new file mode 100644 index 00000000..71392cc0 --- /dev/null +++ b/third_party/speex/libspeex/testresample.c @@ -0,0 +1,86 @@ +/* Copyright (C) 2007 Jean-Marc Valin + + File: testresample.c + Testing the resampling code + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <stdio.h> +#include "speex/speex_resampler.h" +#include <math.h> +#include <stdlib.h> + +#define NN 256 + +int main() +{ + spx_uint32_t i; + short *in; + short *out; + float *fin, *fout; + int count = 0; + SpeexResamplerState *st = speex_resampler_init(1, 8000, 12000, 10, NULL); + speex_resampler_set_rate(st, 96000, 44100); + speex_resampler_skip_zeros(st); + + in = malloc(NN*sizeof(short)); + out = malloc(2*NN*sizeof(short)); + fin = malloc(NN*sizeof(float)); + fout = malloc(2*NN*sizeof(float)); + while (1) + { + spx_uint32_t in_len; + spx_uint32_t out_len; + fread(in, sizeof(short), NN, stdin); + if (feof(stdin)) + break; + for (i=0;i<NN;i++) + fin[i]=in[i]; + in_len = NN; + out_len = 2*NN; + /*if (count==2) + speex_resampler_set_quality(st, 10);*/ + speex_resampler_process_float(st, 0, fin, &in_len, fout, &out_len); + for (i=0;i<out_len;i++) + out[i]=floor(.5+fout[i]); + /*speex_warning_int("writing", out_len);*/ + fwrite(out, sizeof(short), out_len, stdout); + count++; + } + speex_resampler_destroy(st); + free(in); + free(out); + free(fin); + free(fout); + return 0; +} + |