GithubHelp home page GithubHelp logo

belledonnecommunications / bcg729 Goto Github PK

View Code? Open in Web Editor NEW
113.0 19.0 80.0 484 KB

Linphone.org mirror for bcg729 (git://git.linphone.org/bcg729.git)

Home Page: http://linphone.org

License: GNU General Public License v3.0

Makefile 1.15% CMake 2.88% Shell 0.42% C 93.59% M4 0.25% Perl 1.71%

bcg729's Introduction

pipeline status

Bcg729

About bcg729

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.

For more information, please visit bcg729's homepage on linphone.org.

Licensing

Copyright © Belledonne Communications

bcg729 is dual licensed, and is available either :

  • under a GNU/GPLv3 license, for free (open source). Please make sure that you understand and agree with the terms of this license before using it (see LICENSE.txt file for details).

  • under a proprietary license, for a fee, to be used in closed source applications. Contact Belledonne Communications for any question about costs and services.

Patents

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).

Compilation

Dependencies

No dependency is requested.

Build procedure

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

Supported build options

  • CMAKE_INSTALL_PREFIX=<string> : install prefix
  • CMAKE_PREFIX_PATH=<string> : column-separated list of prefixes where to look for dependencies
  • ENABLE_UNIT_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

  • Tests are defined for each functional bloc (more or less matching a source file) and for global encoding/decoding

  • Use -DENABLE_TESTS=YES to compile with tests To run all tests available in the test directory, run testCampaignAll from 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 using make check or manually


bcg729's People

Contributors

bagage avatar datbewar avatar fgrisez avatar gberaudo avatar guyharris avatar jaccocompier avatar jeannotlapin avatar kalmik avatar lastique avatar ledjlale avatar lekensteyn avatar sanavak avatar smorlat avatar wescoeur avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bcg729's Issues

Binary format available?

Hi,

I couldn't find the binary format instead of the CSV based (also simply converting the CSV into binary isn't the same). This[1] converter produces another (much) more compressed version regarding g729.

Is it possible to compress/decompress into the binary format somehow?

kind regards
Johannes

[1] https://g711.org/

Unable to build in debian jessie

I'm facing an issue where I'm unable to build over a Debian Jessie. I'm maintaining a legacy system and I'm taking trying to update from 1.0.4 to 1.1.0 in order to take advantage of the lasts bugfixes.

the current traceback is

root@a56e5cad1bbb:/bcg729# cmake .
-- The C compiler identification is GNU 4.9.2
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Package file name is bcg729-1.1.0
-- Configuring done
-- Generating done
-- Build files have been written to: /bcg729
root@a56e5cad1bbb:/bcg729# make
Scanning dependencies of target bcg729
[  1%] Building C object src/CMakeFiles/bcg729.dir/adaptativeCodebookSearch.c.o
[  3%] Building C object src/CMakeFiles/bcg729.dir/codebooks.c.o
[  5%] Building C object src/CMakeFiles/bcg729.dir/computeAdaptativeCodebookGain.c.o
[  7%] Building C object src/CMakeFiles/bcg729.dir/computeLP.c.o
[  9%] Building C object src/CMakeFiles/bcg729.dir/computeWeightedSpeech.c.o
[ 11%] Building C object src/CMakeFiles/bcg729.dir/decodeAdaptativeCodeVector.c.o
[ 12%] Building C object src/CMakeFiles/bcg729.dir/decodeFixedCodeVector.c.o
[ 14%] Building C object src/CMakeFiles/bcg729.dir/decodeGains.c.o
[ 16%] Building C object src/CMakeFiles/bcg729.dir/decodeLSP.c.o
[ 18%] Building C object src/CMakeFiles/bcg729.dir/decoder.c.o
[ 20%] Building C object src/CMakeFiles/bcg729.dir/encoder.c.o
[ 22%] Building C object src/CMakeFiles/bcg729.dir/findOpenLoopPitchDelay.c.o
[ 24%] Building C object src/CMakeFiles/bcg729.dir/fixedCodebookSearch.c.o
/bcg729/src/fixedCodebookSearch.c: In function 'fixedCodebookSearch':
/bcg729/src/fixedCodebookSearch.c:63:2: error: missing braces around initializer [-Werror=missing-braces]
  word32_t Phi[L_SUBFRAME][L_SUBFRAME] = {0};
  ^
/bcg729/src/fixedCodebookSearch.c:63:2: error: (near initialization for 'Phi[0]') [-Werror=missing-braces]
cc1: all warnings being treated as errors
src/CMakeFiles/bcg729.dir/build.make:350: recipe for target 'src/CMakeFiles/bcg729.dir/fixedCodebookSearch.c.o' failed
make[2]: *** [src/CMakeFiles/bcg729.dir/fixedCodebookSearch.c.o] Error 1
CMakeFiles/Makefile2:105: recipe for target 'src/CMakeFiles/bcg729.dir/all' failed
make[1]: *** [src/CMakeFiles/bcg729.dir/all] Error 2
Makefile:149: recipe for target 'all' failed
make: *** [all] Error 2

I'm building this in a Docker environment to make it most clean as possible. here are some environmental information

root@a56e5cad1bbb:/bcg729# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 8.11 (jessie)
Release:        8.11
Codename:       jessie

root@a56e5cad1bbb:/bcg729# dpkg -l |grep -E "(cmake|gcc|build-essential)"
ii  build-essential            11.7                             amd64        Informational list of build-essential packages
ii  cmake                      3.6.2-2~bpo8+1                   amd64        cross-platform, open-source make system
ii  cmake-data                 3.6.2-2~bpo8+1                   all          CMake data files (modules, templates and documentation)
ii  gcc                        4:4.9.2-2                        amd64        GNU C compiler
ii  gcc-4.8-base:amd64         4.8.4-1                          amd64        GCC, the GNU Compiler Collection (base package)
ii  gcc-4.9                    4.9.2-10+deb8u2                  amd64        GNU C compiler
ii  gcc-4.9-base:amd64         4.9.2-10+deb8u2                  amd64        GCC, the GNU Compiler Collection (base package)
ii  libgcc-4.9-dev:amd64       4.9.2-10+deb8u2                  amd64        GCC support library (development files)
ii  libgcc1:amd64              1:4.9.2-10+deb8u2                amd64        GCC support library

It is apparently a bug on the available GCC version for this Debian version (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53119)

I'm opening a PR with the patch that worked for me, but I don't know if it is the proper way to avoid that failure.

Supported extensions to G729

Hello,

it seems G729 as well as G729 Annex B (VAD parameter) is at least supported by the bcg729 library. However, am I right, that Annex A and Annex J (G.729.1) are not supported?

kind regards
Johannes

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.