README.md 3.01 KB
Newer Older
Erwan Croze's avatar
Erwan Croze committed
1 2
[![pipeline status](https://gitlab.linphone.org/BC/public/bcg729/badges/master/pipeline.svg)](https://gitlab.linphone.org/BC/public/bcg729/commits/master)

François Grisez's avatar
François Grisez committed
3 4 5 6 7
Bcg729
======

About bcg729
------------
8 9 10 11 12

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. 
13 14

For more information, [please visit bcg729's homepage on **linphone.org**](https://linphone.org/technical-corner/bcg729).
jehan's avatar
jehan committed
15
 
François Grisez's avatar
François Grisez committed
16 17
Licensing
---------
18

19 20 21 22 23 24 25 26 27 28 29
Copyright 2012-2019 Belledonne Communications SARL.

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

* Under a GNU GPLv3 license, for free (open source)
* Under a proprietary license, for use in closed source applications.

Patents
-------

ITU G729 Annex A/B were offically released October/November 1996 (https://www.itu.int/rec/T-REC-G.729),
30
hence all patents covering these specifications shall have expired in November 2016.
François Grisez's avatar
François Grisez committed
31
Patent pool administrator confirmed most licensed patents under the G.729 Consortium have expired (<http://www.sipro.com/G729.html>).
32

François Grisez's avatar
François Grisez committed
33 34
Compilation
-----------
johan's avatar
johan committed
35

François Grisez's avatar
François Grisez committed
36
### Dependencies
johan's avatar
johan committed
37

38
No dependency is requested.
François Grisez's avatar
François Grisez committed
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67


### Build procedure

Building by Autotools way is deprecated. Use [CMake][cmake-website] to configure the source code.

	cmake . -DCMAKE_INSTALL_PREFIX=<prefix> -DCMAKE_PREFIX_PATH=<search_prefixes>
	
	make
	make install


### Supported build options

* `CMAKE_INSTALL_PREFIX=<string>` : install prefix
* `CMAKE_PREFIX_PATH=<string>`    : column-separated list of prefixes where to look for dependencies
* `ENABLE_SHARED=NO`              : do not build the shared library
* `ENABLE_STATIC=NO`              : do not build the static library
* `ENABLE_TESTS=NO`               : do not build non-regression tests


### Note for packagers

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 suite
-----------
68

johan's avatar
johan committed
69
- Tests are defined for each functional bloc (more or less matching a source file)
François Grisez's avatar
François Grisez committed
70
  and for global encoding/decoding
johan's avatar
johan committed
71

jehan's avatar
jehan committed
72
- Use `-DENABLE_TESTS=YES` to compile with tests To run all tests available in the test directory, run testCampaignAll from test directory
johan's avatar
johan committed
73 74

- Input tests pattern have been generated by ITU code using ITU tests patterns.
François Grisez's avatar
François Grisez committed
75 76 77 78 79 80 81 82 83 84
  The test patterns are not part of this repository but can be downloaded [here][bcg729-patern]. 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 using `make check` or manually


---------------------------------------

johan's avatar
johan committed
85

Simon Morlat's avatar
Simon Morlat committed
86
[bcg729-patern]: http://www.belledonne-communications.com/bc-downloads/bcg729-patterns.zip
François Grisez's avatar
François Grisez committed
87
[cmake-website]: https://cmake.org/