Package: speex
Version: 1.2~beta2-2
Severity: important
The preprocessor API has been updated in 1.2beta2, and it seems
buggy to me. Both SPEEX_PREPROCESS_GET_PROB_START and
SPEEX_PREPROCESS_GET_PROB_CONTINUE only returns either 0 or 32767.
I'm including a small test program which results in the following
output which doesn't look correct for version 1.2~beta2-2:
speex 1.1.12-3
--------------
$ ./speex_preprocess
OK: Prob start 30
OK: Prob continue 7
speex1 1.2~beta2-2
---------------------
./speex_preprocess
ERROR: Prob start 32767
ERROR: Prob continue 32767
/Mikael
-- System Information:
Debian Release: lenny/sid
APT prefers testing
APT policy: (750, 'testing'), (671, 'stable'), (500, 'testing'), (300,
'unstable'), (1, 'experimental')
Architecture: i386 (i686)
Kernel: Linux 2.6.18-3-k7 (SMP w/1 CPU core)
Locale: LANG=sv_SE.UTF-8, LC_CTYPE=sv_SE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
#include <stdio.h>
#include <speex/speex_preprocess.h>
#define DEFAULT_PROB_START 20
#define DEFAULT_PROB_CONTINUE 7
/*
speex 1.1.12-3
--------------
$ ./speex_preprocess
OK: Prob start 30
OK: Prob continue 7
speex1 1.2~beta2-2
---------------------
./speex_preprocess
ERROR: Prob start 32767
ERROR: Prob continue 32767
*/
int main()
{
SpeexPreprocessState *st = NULL;
int i;
int len = 1024;
int rate = 8000;
st = speex_preprocess_state_init(len,rate);
i=DEFAULT_PROB_START;
speex_preprocess_ctl(st, SPEEX_PREPROCESS_SET_PROB_START, &i);
i=DEFAULT_PROB_CONTINUE;
speex_preprocess_ctl(st, SPEEX_PREPROCESS_SET_PROB_CONTINUE, &i);
i = -1;
speex_preprocess_ctl(st, SPEEX_PREPROCESS_GET_PROB_START, &i);
fprintf(stderr, "%s: Prob start %d\n",
(i==DEFAULT_PROB_START)?"OK":"ERROR", i);
i = -1;
speex_preprocess_ctl(st, SPEEX_PREPROCESS_GET_PROB_CONTINUE, &i);
fprintf(stderr, "%s: Prob continue %d\n",
(i==DEFAULT_PROB_CONTINUE)?"OK":"ERROR", i);
speex_preprocess_state_destroy(st);
return 0;
}