TT#31197 document bcg729 requirements

Change-Id: I05dea3dcc89ff38683333587565da29512b5fc3d
changes/63/19063/2
Richard Fuchs 8 years ago
parent 25037a92ac
commit 3fa94d7f57

@ -892,6 +892,7 @@ The following codecs are supported by *rtpengine*:
* G.711 (a-Law and µ-Law)
* G.722
* G.723.1
* G.729
* Speex
* GSM
* iLBC
@ -902,7 +903,7 @@ Codec support is dependent on support provided by the `ffmpeg` codec libraries,
version to version. Use the `--codecs` command line option to have *rtpengine* print a list of codecs
and their supported status. The list includes some codecs that are not listed above. Some of these
are not actual VoIP codecs (such as MP3), while others lack support for encoding by *ffmpeg* at the
time of writing (such as G.729, QCELP, or ATRAC). If encoding support for these codecs becomes available
time of writing (such as QCELP or ATRAC). If encoding support for these codecs becomes available
in *ffmpeg*, *rtpengine* will be able to support them.
Audio format conversion including resampling and mono/stereo up/down-mixing happens automatically
@ -915,6 +916,15 @@ engaged for the call, even if no additional codecs were requested.
Non-audio pseudo-codecs (such as T.38 or RFC 4733 `telephone-event`) are not currently supported.
G.729 support
-------------
As *ffmpeg* does not currently provide an encoder for G.729, transcoding support for it is available
via the [bcg729](https://www.linphone.org/technical-corner/bcg729/overview) library
(mirror on [GitHub](https://github.com/BelledonneCommunications/bcg729)). The build system looks for
the *bcg729* headers in a few locations and uses the library if found. If the library is located
elsewhere, see `daemon/Makefile` to control where the build system is looking for it.
The *ng* Control Protocol
=========================
@ -1342,7 +1352,8 @@ Optionally included keys are:
Contains an integer. If set, changes the `a=ptime` attribute's value in the outgoing
SDP to the provided value. It also engages the transcoding engine for supported codecs
to provide repacketization functionality, even if no additional codec has actually
been requested for transcoding.
been requested for transcoding. Note that not all codecs support all packetization
intervals.
An example of a complete `offer` request dictionary could be (SDP body abbreviated):

@ -4,6 +4,10 @@ with_iptables_option ?= yes
with_transcoding ?= yes
# look for bcg729
# system
ifneq (,$(wildcard /usr/include/bcg729/decoder.h))
have_bcg729 := yes
else
# /usr/src
ifneq (,$(wildcard /usr/src/bcg729/include/bcg729/decoder.h))
have_bcg729 := yes
@ -31,6 +35,7 @@ endif
endif
endif
endif
endif
CFLAGS= -g -Wall -pthread -fno-strict-aliasing
CFLAGS+= -std=c99
@ -61,7 +66,10 @@ else
CFLAGS+= -DWITHOUT_CODECLIB
endif
ifeq ($(have_bcg729),yes)
CFLAGS+= -DHAVE_BCG729 -I$(bcg729_inc)
CFLAGS+= -DHAVE_BCG729
ifneq ($(bcg729_inc),)
CFLAGS+= -I$(bcg729_inc)
endif
endif
CFLAGS+= -DRE_PLUGIN_DIR="\"/usr/lib/rtpengine\""
@ -97,7 +105,10 @@ LDFLAGS+= `pkg-config --libs libavresample`
LDFLAGS+= `pkg-config --libs libavfilter`
endif
ifeq ($(have_bcg729),yes)
LDFLAGS+= -L$(bcg729_lib) -lbcg729
ifneq ($(bcg729_lib),)
LDFLAGS+= -L$(bcg729_lib)
endif
LDFLAGS+= -lbcg729
endif
include ../lib/lib.Makefile

Loading…
Cancel
Save