From 7bd1513fbc9acd0bc34fb5c73d587f3a30dc0646 Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Mon, 6 Mar 2006 13:32:57 +0000 Subject: [PATCH] Changed Speex defaults: complexity=-1, vad=off. Tested with EyeBeam git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@291 74dad513-b988-da41-8d7b-12977e46ad98 --- pjmedia/src/pjmedia-codec/speex_codec.c | 54 +++++++++++++------------ 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/pjmedia/src/pjmedia-codec/speex_codec.c b/pjmedia/src/pjmedia-codec/speex_codec.c index cd4cf8d77..590f4061b 100644 --- a/pjmedia/src/pjmedia-codec/speex_codec.c +++ b/pjmedia/src/pjmedia-codec/speex_codec.c @@ -28,8 +28,8 @@ #include #include -#define DEFAULT_QUALITY 8 -#define DEFAULT_COMPLEXITY 8 +#define DEFAULT_QUALITY 4 +#define DEFAULT_COMPLEXITY -1 /* Prototypes for Speex factory */ @@ -102,15 +102,15 @@ enum /* Speex default parameter */ struct speex_param { - int enabled; /* Is this mode enabled? */ - const SpeexMode *mode; /* Speex mode. */ - int pt; /* Payload type. */ - unsigned clock_rate;/* Default sampling rate to be used. */ - int quality; /* Default encoder quality to be used. */ - int complexity; /* Default encoder complexity. */ - int samples_per_frame; /* Samples per frame. */ - int framesize; /* Frame size for current mode. */ - int bitrate; /* Bit rate for current mode. */ + int enabled; /* Is this mode enabled? */ + const SpeexMode *mode; /* Speex mode. */ + int pt; /* Payload type. */ + unsigned clock_rate; /* Default sampling rate to be used.*/ + int quality; /* Default encoder quality. */ + int complexity; /* Default encoder complexity. */ + int samples_per_frame; /* Samples per frame. */ + int framesize; /* Frame size for current mode. */ + int bitrate; /* Bit rate for current mode. */ }; /* Speex factory */ @@ -128,8 +128,6 @@ static struct spx_factory /* Speex codec private data. */ struct spx_private { - //pjmedia_codec_info info; /**< Codec info. */ - int param_id; /**< Index to speex param. */ void *enc; /**< Encoder state. */ @@ -153,17 +151,19 @@ static pj_status_t get_speex_info( struct speex_param *p ) return PJMEDIA_CODEC_EFAILED; /* Set the quality */ - speex_encoder_ctl(state, SPEEX_SET_QUALITY, &p->quality); + if (p->quality != -1) + speex_encoder_ctl(state, SPEEX_SET_QUALITY, &p->quality); /* Sampling rate. */ speex_encoder_ctl(state, SPEEX_SET_SAMPLING_RATE, &p->clock_rate); - /* VAD */ - tmp = 1; + /* VAD off to have max bitrate */ + tmp = 0; speex_encoder_ctl(state, SPEEX_SET_VAD, &tmp); /* Complexity. */ - speex_encoder_ctl(state, SPEEX_SET_COMPLEXITY, &p->complexity); + if (p->complexity != -1) + speex_encoder_ctl(state, SPEEX_SET_COMPLEXITY, &p->complexity); /* Now get the frame size */ speex_encoder_ctl(state, SPEEX_GET_FRAME_SIZE, &p->samples_per_frame); @@ -392,7 +392,9 @@ static pj_status_t spx_default_attr (pjmedia_codec_factory *factory, attr->hpf_enabled = 1; attr->lpf_enabled =1 ; attr->penh_enabled =1 ; - attr->vad_enabled = 1; + + /* Default, set VAD off as it caused voice chip off */ + attr->vad_enabled = 0; return PJ_SUCCESS; } @@ -557,8 +559,10 @@ static pj_status_t spx_codec_open( pjmedia_codec *codec, speex_bits_init(&spx->enc_bits); /* Set the quality*/ - speex_encoder_ctl(spx->enc, SPEEX_SET_QUALITY, - &spx_factory.speex_param[id].quality); + if (spx_factory.speex_param[id].quality != -1) { + speex_encoder_ctl(spx->enc, SPEEX_SET_QUALITY, + &spx_factory.speex_param[id].quality); + } /* Sampling rate. */ tmp = attr->sample_rate; @@ -570,12 +574,10 @@ static pj_status_t spx_codec_open( pjmedia_codec *codec, speex_encoder_ctl(spx->enc, SPEEX_SET_VAD, &tmp); /* Complexity */ - speex_encoder_ctl(spx->enc, SPEEX_SET_BITRATE, - &spx_factory.speex_param[id].complexity); - - /* Bitrate */ - speex_encoder_ctl(spx->enc, SPEEX_SET_BITRATE, - &spx_factory.speex_param[id].bitrate); + if (spx_factory.speex_param[id].complexity != -1) { + speex_encoder_ctl(spx->enc, SPEEX_SET_COMPLEXITY, + &spx_factory.speex_param[id].complexity); + } /* * Create and initialize decoder.