This one appears to have more problems than just needing to link
against libspeexdsp.  It's also directly accessing members of private
structures (which have since gone away).  The code in question is in
input_postprocess() of audio_encode.c:

        /* 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 )
        {
                static int i = 0;

                i++;

                if ( (i & 0x3f) == 0 )
                {
                        const float loudness = st->loudness2;

                        if ( loudness > 8000.0f || loudness < 4000.0f )
                        {
                                const float level = iaxc_input_level_get();

                                if ( loudness > 16000.0f && level > 0.5f )
                                {
                                        /* lower quickly if we're really too 
hot */
                                        iaxc_input_level_set(level - 0.2f);
                                }
                                else if ( loudness > 8000.0f && level >= 0.15f )
                                {
                                        /* lower less quickly if we're a bit 
too hot */
                                        iaxc_input_level_set(level - 0.1f);
                                }
                                else if ( loudness < 4000.0f && level <= 0.9f )
                                {
                                        /* raise slowly if we're cold */
                                        iaxc_input_level_set(level + 0.1f);
                                }
                        }
                }
        }

I'm not really sure why this code should not go away entirely and
instead just use the speex AGC api itself to to this.  This doesn't
look like a very stable mechanism.

Fixing this should be discussed with the upstream author, who presumably
had their reasons at the time.

Cheers,
Ron


On Sun, Apr 06, 2008 at 05:19:14PM +0200, Kurt Roeckx wrote:
> Package: iaxclient
> Version: 2.0.2-1
> Severity: serious
> 
> Hi,
> 
> Your package is failing to build with the following error:
> ../../lib/audio_encode.c:25:36: error: speex/speex_preprocess.h: No such
> file or+directory
> ../../lib/audio_encode.c:36: error: expected '=', ',', ';', 'asm' or 
> '__attribute__' before '*' token
> ../../lib/audio_encode.c: In function 'set_speex_filters':
> [...]
> 
> 
> 
> Kurt
> 
> 
> 
> 
> _______________________________________________
> Pkg-voip-maintainers mailing list
> [EMAIL PROTECTED]
> http://lists.alioth.debian.org/mailman/listinfo/pkg-voip-maintainers
> 



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to