[asterisk-dev] [Code Review] Include iLBC source code for distribution with Asterisk

Matt Jordan reviewboard at asterisk.org
Tue Jan 17 11:00:11 CST 2012


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/1675/
-----------------------------------------------------------

Review request for Asterisk Developers and Kevin Fleming.


Summary
-------

This patch includes the iLBC source code for distribution with Asterisk.  Clarification regarding the iLBC source code was provided by Google here: https://datatracker.ietf.org/ipr/1649/

Note that the source code was extracted from Appendix A of IETF RFC 3951, and updated with two modifications to resolve gcc warnings.  These were in iCBSearch.c, line 129/130 and line 324,325:

Changed from:
for (j=0; j<lTarget; j++) {
   *ppe+=(*pp)*(*pp++);
}

To:
for (j=0; j<lTarget; j++, pp++) {
   *ppe+=(*pp)*(*pp);
}

Note that this is technically a duplicate of review 1319 (https://reviewboard.asterisk.org/r/1319/), save in the following ways:
1. I did not remove the script that obtains and extracts the iLBC source code, but rather just updated its remarks.  There may be a reason why someone would want to obtain the iLBC codec using the same mechanism that we did, and this documents that.  That mechanism does still depend on the RFC being available at http://ilbcfreeware.org, but as of the time of writing this patch, that was still the case.  Note that the iLBC source code used is not the same as what is distributed with WebRTC, as that has been modified to work with WebRTC's API.
2. Additionally added the license specification from https://datatracker.ietf.org/ipr/1649
3. Updates for iCBSearch.c, previously mentioned


This addresses bug ASTERISK-18943.
    https://issues.asterisk.org/jira/browse/ASTERISK-18943


Diffs
-----

  /branches/1.8/codecs/codec_ilbc.c 351235 
  /branches/1.8/codecs/ilbc/FrameClassify.h PRE-CREATION 
  /branches/1.8/codecs/ilbc/FrameClassify.c PRE-CREATION 
  /branches/1.8/codecs/ilbc/LICENSE PRE-CREATION 
  /branches/1.8/codecs/ilbc/LPCdecode.h PRE-CREATION 
  /branches/1.8/codecs/ilbc/LPCdecode.c PRE-CREATION 
  /branches/1.8/codecs/ilbc/LPCencode.h PRE-CREATION 
  /branches/1.8/codecs/ilbc/LPCencode.c PRE-CREATION 
  /branches/1.8/codecs/ilbc/Makefile 351235 
  /branches/1.8/codecs/ilbc/StateConstructW.h PRE-CREATION 
  /branches/1.8/codecs/ilbc/StateConstructW.c PRE-CREATION 
  /branches/1.8/codecs/ilbc/StateSearchW.h PRE-CREATION 
  /branches/1.8/codecs/ilbc/StateSearchW.c PRE-CREATION 
  /branches/1.8/codecs/ilbc/anaFilter.h PRE-CREATION 
  /branches/1.8/codecs/ilbc/anaFilter.c PRE-CREATION 
  /branches/1.8/codecs/ilbc/constants.h PRE-CREATION 
  /branches/1.8/codecs/ilbc/constants.c PRE-CREATION 
  /branches/1.8/codecs/ilbc/createCB.h PRE-CREATION 
  /branches/1.8/codecs/ilbc/createCB.c PRE-CREATION 
  /branches/1.8/codecs/ilbc/doCPLC.h PRE-CREATION 
  /branches/1.8/codecs/ilbc/doCPLC.c PRE-CREATION 
  /branches/1.8/codecs/ilbc/enhancer.h PRE-CREATION 
  /branches/1.8/codecs/ilbc/enhancer.c PRE-CREATION 
  /branches/1.8/codecs/ilbc/extract-cfile.awk PRE-CREATION 
  /branches/1.8/codecs/ilbc/filter.h PRE-CREATION 
  /branches/1.8/codecs/ilbc/filter.c PRE-CREATION 
  /branches/1.8/codecs/ilbc/gainquant.h PRE-CREATION 
  /branches/1.8/codecs/ilbc/gainquant.c PRE-CREATION 
  /branches/1.8/codecs/ilbc/getCBvec.h PRE-CREATION 
  /branches/1.8/codecs/ilbc/getCBvec.c PRE-CREATION 
  /branches/1.8/codecs/ilbc/helpfun.h PRE-CREATION 
  /branches/1.8/codecs/ilbc/helpfun.c PRE-CREATION 
  /branches/1.8/codecs/ilbc/hpInput.h PRE-CREATION 
  /branches/1.8/codecs/ilbc/hpInput.c PRE-CREATION 
  /branches/1.8/codecs/ilbc/hpOutput.h PRE-CREATION 
  /branches/1.8/codecs/ilbc/hpOutput.c PRE-CREATION 
  /branches/1.8/codecs/ilbc/iCBConstruct.h PRE-CREATION 
  /branches/1.8/codecs/ilbc/iCBConstruct.c PRE-CREATION 
  /branches/1.8/codecs/ilbc/iCBSearch.h PRE-CREATION 
  /branches/1.8/codecs/ilbc/iCBSearch.c PRE-CREATION 
  /branches/1.8/codecs/ilbc/iLBC_decode.h PRE-CREATION 
  /branches/1.8/codecs/ilbc/iLBC_decode.c PRE-CREATION 
  /branches/1.8/codecs/ilbc/iLBC_define.h PRE-CREATION 
  /branches/1.8/codecs/ilbc/iLBC_encode.h PRE-CREATION 
  /branches/1.8/codecs/ilbc/iLBC_encode.c PRE-CREATION 
  /branches/1.8/codecs/ilbc/iLBC_test.c PRE-CREATION 
  /branches/1.8/codecs/ilbc/lsf.h PRE-CREATION 
  /branches/1.8/codecs/ilbc/lsf.c PRE-CREATION 
  /branches/1.8/codecs/ilbc/packing.h PRE-CREATION 
  /branches/1.8/codecs/ilbc/packing.c PRE-CREATION 
  /branches/1.8/codecs/ilbc/rfc3951.txt PRE-CREATION 
  /branches/1.8/codecs/ilbc/syntFilter.h PRE-CREATION 
  /branches/1.8/codecs/ilbc/syntFilter.c PRE-CREATION 
  /branches/1.8/contrib/scripts/get_ilbc_source.sh 351235 

Diff: https://reviewboard.asterisk.org/r/1675/diff


Testing
-------

Asterisk compiles, loads, and uses the iLBC codec.  More testing is needed however, particularly with Asterisk 10.


Thanks,

Matt

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20120117/be474e11/attachment.htm>


More information about the asterisk-dev mailing list