Bcg729 is an opensource implementation of both encoder and decoder of the ITU G729 Annex A/B speech codec.
The library written in C 99 is fully portable and can be executed on many platforms including both ARM and x86 processors. libbcg729 supports concurrent channels encoding/decoding for multi call application such as conferencing. This project was initially developed as part of Mediastreamer2, the Linphone's media processing engine. This is why it also contains the glue to be integrated in Linphone/Mediastreamer2.
The source code is licensed under GPLv2. ITU G729 Annex A/B were offically released October/November 1996 (https://www.itu.int/rec/T-REC-G.729), hence all patents covering these specifications shall have expired in November 2016. Patent pool administrator confirmed most licensed patents under the G.729 Consortium have expired (http://www.sipro.com/G729.html).
If you want build bcg729 as Mediastreamer's plugin, you need to have Mediastreamer[1] installed on your system. Otherwise, no dependency is requested.
Building by Autotools way is deprecated. Use CMake to configure the source code.
cmake . -DCMAKE_INSTALL_PREFIX=<prefix> -DCMAKE_PREFIX_PATH=<search_prefixes>
make
make install
CMAKE_INSTALL_PREFIX=<string>
: install prefixCMAKE_PREFIX_PATH=<string>
: column-separated list of prefixes where to look for dependenciesENABLE_SHARED=NO
: do not build the shared libraryENABLE_STATIC=NO
: do not build the static libraryENABLE_TESTS=NO
: do not build non-regression testsENABLE_MSPLUGIN=NO
: do not build the Mediastreamer plugin version
Our CMake scripts may automatically add some paths into research paths of generated binaries.
To ensure that the installed binaries are striped of any rpath, use -DCMAKE_SKIP_INSTALL_RPATH=ON
while you invoke cmake.
-
Tests are defined for each functional bloc (more or less matching a source file) and for global encoding/decoding
-
Use
make check
to compile and run all tests available in the test directory. -
Input tests pattern have been generated by ITU code using ITU tests patterns. The test patterns are not part of this repository but can be downloaded here. However, the first run of
make check
will get them for you. -
To run partial test, use perl executable
testCampaign
in the test directory../testCampaign <functional bloc name>
You must first download the tests patterns usingmake check
or manually
[1] Mediastreamer2: git://git.linphone.org/mediastreamer2.git or http://www.linphone.org/releases/sources/mediastreamer