Add basic (passthrough, playback, record) support for ITU G.722.1 and G.722.1C (also...
authorKevin P. Fleming <kpfleming@digium.com>
Fri, 13 Feb 2009 13:35:24 +0000 (13:35 +0000)
committerKevin P. Fleming <kpfleming@digium.com>
Fri, 13 Feb 2009 13:35:24 +0000 (13:35 +0000)
commit2a53f2ec98d58e6ea32d71877e4b4ca6d9aa4a7d
tree51f8bb89740396001e20f9f64d9044733305193c
parent1981fdac02eb22d615619895ab26b5a955b74e61
Add basic (passthrough, playback, record) support for ITU G.722.1 and G.722.1C (also known as Siren7 and Siren14)

This patch adds passthrough, file recording and file playback support for the codecs listed above, with negotiation over SIP/SDP supported. Due to Asterisk's current limitation of treating a codec/bitrate combination as a unique codec, only G.722.1 at 32 kbps and G.722.1C at 48 kbps are supported.

Along the way, some related work was done:

1) The rtpPayloadType structure definition, used as a return result for an API call in rtp.h, was moved from rtp.c to rtp.h so that the API call was actually usable. The only previous used of the API all was chan_h323.c, which had a duplicate of the structure definition instead of doing it the right way.

2) The hardcoded SDP sample rates for various codecs in chan_sip.c were removed, in favor of storing these sample rates in rtp.c along with the codec definitions there. A new API call was added to allow retrieval of the sample rate for a given codec.

3) Some basic 'a=fmtp' parsing for SDP was added to chan_sip, because chan_sip *must* decline any media streams offered for these codecs that are not at the bitrates that we support (otherwise Bad Things (TM) would result).

Review: http://reviewboard.digium.com/r/158/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@175508 65c4cc65-6c06-0410-ace0-fbb531ad65f3
channels/chan_h323.c
channels/chan_sip.c
formats/format_siren14.c [new file with mode: 0644]
formats/format_siren7.c [new file with mode: 0644]
include/asterisk/frame.h
include/asterisk/rtp.h
main/frame.c
main/rtp.c