Bcg729 is a software G729A encoder and decoder library written in C, developed by Belledonne Communications, the company supporting the Linphone project. It was written from scratch and is NOT a derivative work of ITU reference source code in any kind.

It can be executed on many platforms, including both ARM and x86 with very decent performances. libbcg729 supports concurrent channel encoding/decoding for multi-call applications such as conferencing.

The source code also contains a mediastreamer2 compatible plugin, designed for use of this codec in Linphone or mediastreamer2-based software. However a direct API is available for those not using bcg729 with mediastreamer2.



bcg729 is dual licensed. It can be licensed and distributed:

  • under GNU GPLv2 license - for free (open source)
  • under proprietary and commercial license to be used in closed source applications. Contact Belledonne Communications for costs and other service information.

Patent information

Despite this implementation is open-source, the use of G729 remains governed by a patent license to be acquired from G729 patent holder representatives. 

Source code

Source code tarballs are available:

Bcg729 source code can be downloaded from git as well:

Project git


git clone git://