From 987e283e9f3aa052669c3902f1a910a0501b75bc Mon Sep 17 00:00:00 2001 From: Lubos Dolezel Date: Thu, 11 Jun 2015 15:32:22 +0200 Subject: Some initial changes for G.729A support (issue #15) --- src/audio/audio_codecs.h | 3 ++- src/sdp/sdp.cpp | 10 ++++++++++ src/sdp/sdp.h | 3 +++ 3 files changed, 15 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/audio/audio_codecs.h b/src/audio/audio_codecs.h index 54967b1..30011bb 100644 --- a/src/audio/audio_codecs.h +++ b/src/audio/audio_codecs.h @@ -37,7 +37,8 @@ enum t_audio_codec { CODEC_G726_24, CODEC_G726_32, CODEC_G726_40, - CODEC_TELEPHONE_EVENT + CODEC_TELEPHONE_EVENT, + CODEC_G729A }; // Default ptime values (ms) for audio codecs diff --git a/src/sdp/sdp.cpp b/src/sdp/sdp.cpp index 3c9a93d..ba683c5 100644 --- a/src/sdp/sdp.cpp +++ b/src/sdp/sdp.cpp @@ -342,6 +342,16 @@ void t_sdp_media::add_format(unsigned short f, t_audio_codec codec) { string fmtp = int2str(f); fmtp += ' '; fmtp += "0-15"; + + attributes.push_back(t_sdp_attr("fmtp", fmtp)); + } + else if (codec == CODEC_G729A) + { + string fmtp = int2str(f); + + fmtp += ' '; + fmtp += "annexb=no"; // annexb=no means G729A + attributes.push_back(t_sdp_attr("fmtp", fmtp)); } } diff --git a/src/sdp/sdp.h b/src/sdp/sdp.h index 92edebe..4a3833d 100644 --- a/src/sdp/sdp.h +++ b/src/sdp/sdp.h @@ -34,6 +34,7 @@ #define SDP_FORMAT_G711_ULAW 0 #define SDP_FORMAT_GSM 3 #define SDP_FORMAT_G711_ALAW 8 +#define SDP_FORMAT_G729 18 // rtpmap values #define SDP_RTPMAP_G711_ULAW "PCMU/8000" @@ -47,6 +48,7 @@ #define SDP_RTPMAP_G726_24 "G726-24/8000" #define SDP_RTPMAP_G726_32 "G726-32/8000" #define SDP_RTPMAP_G726_40 "G726-40/8000" +#define SDP_RTPMAP_G729A "G729/8000" #define SDP_RTPMAP_TELEPHONE_EV "telephone-event/8000" // Audio codec names @@ -59,6 +61,7 @@ #define SDP_AC_NAME_G726_24 "G726-24" #define SDP_AC_NAME_G726_32 "G726-32" #define SDP_AC_NAME_G726_40 "G726-40" +#define SDP_AC_NAME_G729 "G729" #define SDP_AC_NAME_TELEPHONE_EV "telephone-event" // Check on fmtp parameter values -- cgit v1.2.3