diff options
-rw-r--r-- | src/audio/audio_rx.cpp | 7 | ||||
-rw-r--r-- | src/audio/audio_tx.cpp | 5 | ||||
-rw-r--r-- | src/gui/userprofileform.cpp | 8 | ||||
-rw-r--r-- | src/sdp/sdp.cpp | 3 | ||||
-rw-r--r-- | src/session.cpp | 2 | ||||
-rw-r--r-- | src/sys_settings.cpp | 9 | ||||
-rw-r--r-- | src/user.cpp | 10 | ||||
-rw-r--r-- | src/userintf.cpp | 1 |
8 files changed, 45 insertions, 0 deletions
diff --git a/src/audio/audio_rx.cpp b/src/audio/audio_rx.cpp index db6d4f3..9435ac4 100644 --- a/src/audio/audio_rx.cpp +++ b/src/audio/audio_rx.cpp @@ -341,6 +341,13 @@ t_audio_rx::t_audio_rx(t_audio_session *_audio_session, t_g726_audio_encoder::BIT_RATE_40, user_config); MEMMAN_NEW(audio_encoder); break; +#ifdef HAVE_BCG729 + case CODEC_G729A: + audio_encoder = new t_g729a_audio_encoder(_payload_id, _ptime, + user_config); + MEMMAN_NEW(audio_encoder); + break; +#endif default: assert(false); } diff --git a/src/audio/audio_tx.cpp b/src/audio/audio_tx.cpp index 4901ede..effea29 100644 --- a/src/audio/audio_tx.cpp +++ b/src/audio/audio_tx.cpp @@ -110,6 +110,11 @@ t_audio_tx::t_audio_tx(t_audio_session *_audio_session, map_audio_decoder[CODEC_G726_40] = new t_g726_audio_decoder( t_g726_audio_decoder::BIT_RATE_40, _ptime, user_config); MEMMAN_NEW(map_audio_decoder[CODEC_G726_40]); +#ifdef HAVE_BCG729 + map_audio_decoder[CODEC_G729A] = new t_g729a_audio_decoder( + _ptime, user_config); + MEMMAN_NEW(map_audio_decoder[CODEC_G729A]); +#endif ptime = map_audio_decoder[codec]->get_default_ptime(); diff --git a/src/gui/userprofileform.cpp b/src/gui/userprofileform.cpp index 6a9e39b..d7f39a0 100644 --- a/src/gui/userprofileform.cpp +++ b/src/gui/userprofileform.cpp @@ -81,6 +81,7 @@ #define labelCodecG726_24 "G.726 24 kbps" #define labelCodecG726_32 "G.726 32 kbps" #define labelCodecG726_40 "G.726 40 kbps" +#define labelCodecG729A "G.729A" // Indices of iLBC modes #define idxIlbcMode20 0 @@ -252,6 +253,8 @@ t_audio_codec UserProfileForm::label2codec(const QString &label) { return CODEC_G726_32; } else if (label == labelCodecG726_40) { return CODEC_G726_40; + } else if (label == labelCodecG729A) { + return CODEC_G729A; } return CODEC_NULL; } @@ -281,6 +284,8 @@ QString UserProfileForm::codec2label(t_audio_codec &codec) { return labelCodecG726_32; case CODEC_G726_40: return labelCodecG726_40; + case CODEC_G729A: + return labelCodecG729A; default: return ""; } @@ -418,6 +423,9 @@ void UserProfileForm::populate() allCodecs.append(labelCodecG726_24); allCodecs.append(labelCodecG726_32); allCodecs.append(labelCodecG726_40); +#ifdef HAVE_BCG729 + allCodecs.append(labelCodecG729A); +#endif activeCodecListBox->clear(); list<t_audio_codec> audio_codecs = current_profile->get_codecs(); for (list<t_audio_codec>::iterator i = audio_codecs.begin(); i != audio_codecs.end(); i++) diff --git a/src/sdp/sdp.cpp b/src/sdp/sdp.cpp index ba683c5..dfb01cf 100644 --- a/src/sdp/sdp.cpp +++ b/src/sdp/sdp.cpp @@ -138,6 +138,9 @@ string get_rtpmap(unsigned format, t_audio_codec codec) { case CODEC_G726_40: rtpmap += SDP_RTPMAP_G726_40; break; + case CODEC_G729A: + rtpmap += SDP_RTPMAP_G729A; + break; case CODEC_TELEPHONE_EVENT: rtpmap += SDP_RTPMAP_TELEPHONE_EV; break; diff --git a/src/session.cpp b/src/session.cpp index 83771f6..a35c643 100644 --- a/src/session.cpp +++ b/src/session.cpp @@ -114,6 +114,7 @@ t_session::t_session(t_dialog *_dialog, string _receive_host, recv_ac2payload[CODEC_G711_ULAW] = SDP_FORMAT_G711_ULAW; recv_ac2payload[CODEC_G711_ALAW] = SDP_FORMAT_G711_ALAW; recv_ac2payload[CODEC_GSM] = SDP_FORMAT_GSM; + recv_ac2payload[CODEC_G729A] = SDP_FORMAT_G729; recv_ac2payload[CODEC_SPEEX_NB] = user_config->get_speex_nb_payload_type(); recv_ac2payload[CODEC_SPEEX_WB] = user_config->get_speex_wb_payload_type(); recv_ac2payload[CODEC_SPEEX_UWB] = user_config->get_speex_uwb_payload_type(); @@ -129,6 +130,7 @@ t_session::t_session(t_dialog *_dialog, string _receive_host, recv_payload2ac[SDP_FORMAT_G711_ULAW] = CODEC_G711_ULAW; recv_payload2ac[SDP_FORMAT_G711_ALAW] = CODEC_G711_ALAW; recv_payload2ac[SDP_FORMAT_GSM] = CODEC_GSM; + recv_payload2ac[SDP_FORMAT_G729] = CODEC_G729A; recv_payload2ac[user_config->get_speex_nb_payload_type()] = CODEC_SPEEX_NB; recv_payload2ac[user_config->get_speex_wb_payload_type()] = CODEC_SPEEX_WB; recv_payload2ac[user_config->get_speex_uwb_payload_type()] = CODEC_SPEEX_UWB; diff --git a/src/sys_settings.cpp b/src/sys_settings.cpp index abca6e0..175ac4f 100644 --- a/src/sys_settings.cpp +++ b/src/sys_settings.cpp @@ -1056,6 +1056,11 @@ string t_sys_settings::about(bool html) const { if (html) s += "<BR>"; s += "\n"; #endif +#ifdef HAVE_BCG729 + s += TRANSLATE("* G729A codec (http://www.linphone.org/technical-corner/bcg729/overview"); + if (html) s += "<BR>"; + s += "\n"; +#endif s += TRANSLATE("* Parts of the STUN project at http://sourceforge.net/projects/stun"); if (html) s += "<BR>"; @@ -1147,6 +1152,10 @@ string t_sys_settings::get_options_built(void) const { if (!options_built.empty()) options_built += ", "; options_built += "iLBC"; #endif +#ifdef HAVE_BCG729 + if (!options_built.empty()) options_built += ", "; + options_built += "G729"; +#endif #ifdef HAVE_ZRTP if (!options_built.empty()) options_built += ", "; options_built += "ZRTP"; diff --git a/src/user.cpp b/src/user.cpp index b3de725..38978eb 100644 --- a/src/user.cpp +++ b/src/user.cpp @@ -369,6 +369,9 @@ t_user::t_user() { #ifdef HAVE_ILBC codecs.push_back(CODEC_ILBC); #endif +#ifdef HAVE_BCG729 + codecs.push_back(CODEC_G729A); +#endif codecs.push_back(CODEC_G711_ALAW); codecs.push_back(CODEC_G711_ULAW); codecs.push_back(CODEC_GSM); @@ -2256,6 +2259,10 @@ bool t_user::read_config(const string &filename, string &error_msg) { codecs.push_back(CODEC_G726_32); } else if (codec == "g726-40") { codecs.push_back(CODEC_G726_40); +#ifdef HAVE_BCG729 + } else if (codec == "g729a") { + codecs.push_back(CODEC_G729A); +#endif } else { msg = "Syntax error in file "; msg += f; @@ -2673,6 +2680,9 @@ bool t_user::write_config(const string &filename, string &error_msg) { case CODEC_G726_40: config << "g726-40"; break; + case CODEC_G729A: + config << "g729a"; + break; default: assert(false); } diff --git a/src/userintf.cpp b/src/userintf.cpp index b0ce65e..71ca14a 100644 --- a/src/userintf.cpp +++ b/src/userintf.cpp @@ -2172,6 +2172,7 @@ string t_userintf::format_codec(t_audio_codec codec) const { case CODEC_G726_24: return "g726-24"; case CODEC_G726_32: return "g726-32"; case CODEC_G726_40: return "g726-40"; + case CODEC_G729A: return "g729a"; default: return "???"; } } |