Menu

#31 The iaxclient 2.0 rc2 compilation fails

open
nobody
None
5
2007-09-21
2007-09-21
No

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

Discussion

  • Garami Gábor

    Garami Gábor - 2007-09-21

    Build log

     
  • Garami Gábor

    Garami Gábor - 2007-09-21

    Logged In: YES
    user_id=1783311
    Originator: YES

    File Added: build.log

     
  • Garami Gábor

    Garami Gábor - 2007-09-21

    Logged In: YES
    user_id=1783311
    Originator: YES

    File Added: config.log

     
  • Garami Gábor

    Garami Gábor - 2007-09-21

    Config log

     
  • Nobody/Anonymous

    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?

     
  • Qichang Liang

    Qichang Liang - 2007-11-16

    Logged In: YES
    user_id=1299295
    Originator: NO

    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.

     
  • Nobody/Anonymous

    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 )
    {

     

Log in to post a comment.