Share

iaxclient

Tracker: Bugs

5 The iaxclient 2.0 rc2 compilation fails - ID: 1799603
Last Update: Comment added ( nobody )

A compilation fails in the downloadable tarball. Here is an end of result.
I will attach a full build log and a config log

i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I.. -I./portmixer/px_common
-pthread -O2 -march=pentium3 -pipe -Wall -Wextra -Wno-unused-parameter
-Wpointer-arith -DLIBVER=\"2.0rc2\" -O2 -march=pentium3 -pipe -MT
audio_encode.lo -MD -MP -MF .deps/audio_encode.Tpo -c audio_encode.c -fPIC
-DPIC -o .libs/audio_encode.o
audio_encode.c: In function 'input_postprocess':
audio_encode.c:159: error: dereferencing pointer to incomplete type
audio_encode.c:167: error: dereferencing pointer to incomplete type
audio_encode.c: In function 'audio_send_encoded_audio':
audio_encode.c:274: warning: implicit declaration of function
'iax_send_cng'
audio_encode.c:328: warning: pointer targets in passing argument 3 of
'iax_send_voice' differ in signedness
audio_encode.c:328: error: too many arguments to function 'iax_send_voice'
make[2]: *** [audio_encode.lo] Error 1
make[2]: Leaving directory
`/var/tmp/portage/net-libs/iaxclient-2.0_rc2/work/iaxclient-2.0rc2/lib'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory
`/var/tmp/portage/net-libs/iaxclient-2.0_rc2/work/iaxclient-2.0rc2'
make: *** [all] Error 2


Garami Gábor ( hron84 ) - 2007-09-21 12:04

5

Open

None

Nobody/Anonymous

None

None

Public


Comments ( 5 )




Date: 2008-11-17 09:02
Sender: nobody

This patch did the trick for me. Moreover you must do ./configure with
SPEEX_LIBS='-lspeex -lspeexdsp'. And there are some more issues in the
example programs, but I figure these need not compile in order to have the
lib.

--- lib/audio_encode.c~ 2007-11-28 22:03:29.000000000 +0100
+++ lib/audio_encode.c 2008-11-17 09:46:38.000000000 +0100
@@ -149,13 +149,17 @@
iaxci_silence_threshold > 0.0f )
silent = !speex_preprocess(st, (spx_int16_t *)audio,
NULL);

+ int32_t iprob;
+ speex_preprocess_ctl(st, SPEEX_PREPROCESS_GET_PROB, &iprob);
+
+
/* Analog AGC: Bring speex AGC gain out to mixer, with lots of
hysteresis */
/* use a higher continuation threshold for AAGC than for VAD
itself */
if ( !silent &&
iaxci_silence_threshold != 0.0f &&
(iaxci_filters & IAXC_FILTER_AGC) &&
(iaxci_filters & IAXC_FILTER_AAGC) &&
- st->speech_prob > 0.20f )
+ iprob > 20 )
{
static int i = 0;

@@ -163,7 +167,9 @@

if ( (i & 0x3f) == 0 )
{
- const float loudness = st->loudness2;
+ int32_t iloudness;
+ speex_preprocess_ctl(st,
SPEEX_PREPROCESS_GET_AGC_LOUDNESS, &iloudness);
+ const float loudness = iloudness;

if ( loudness > 8000.0f || loudness < 4000.0f )
{



Date: 2007-11-16 21:56
Sender: kcleung


Compilation also fails in 2.0.1 in exactly the same way when it is
compiled using speex 1.2 beta2 (direct from tarball) in an Ubuntu 7.10 box

The cause of this failure is an API change in the speex library, which *no
longer allows* direct access to data fields in the SpeexPreprocessState
struct.

Therefore attempts in direct accessing:

st->speech_prob (line 159)
st->loudness2 (line 167)

would fail.

In addition, these two data fields do not exist in the internal struct in
SpeexPreprocessState struct in 1.2 beta2

Please clean up the code so that it can compile under speex 1.2 as
advertised.


Date: 2007-11-16 20:33
Sender: nobody

Logged In: NO

2.0.0 and 2.0.1 do the same thing when compiling.

What platform is being used to develop this library?


Date: 2007-09-21 12:06
Sender: hron84


File Added: config.log


Date: 2007-09-21 12:05
Sender: hron84


File Added: build.log


Log in to comment.




Attached Files ( 2 )

Filename Description Download
build.log Build log Download
config.log Config log Download

Changes ( 2 )

Field Old Value Date By
File Added 246600: config.log 2007-09-21 12:06 hron84
File Added 246599: build.log 2007-09-21 12:05 hron84