From: Steve K. <st...@st...> - 2004-03-01 23:13:28
|
Dima wrote: >On Monday 01 March 2004 17:01, Steven Sokol wrote: > > >>>I'm new to this list. Can somebody update me with info: is any work >>>done for supporting codec other them GSM. I'm interesting on adding iLBC >>> >>> >>codec. >> >>We've talked about adding support for iLBC, SpeeX and possibly LPC-10. We >>also need to put in support for the wasteful but ubiquitous G.711 a/u. >>Before we do that, we need to work out: >> >>1. A modular framework for adding codecs to iaxClient >>2. How to negotiate codecs over IAX2 >>3. Which codecs we want and in what order >> >>Can everybody vote for their favorite codecs? Here's my list in order of >>preference: >> >>1. g711 a/u - Makes us compatible with nearly everything >>2. iLBC - Integrates us with Firefly network, plus others. >>3. SpeeX - Low bandwidth, free, unencumbered >>4. ADPCM/G.723 - NOT G.723.1 (patented) but the old, free version >>5. G.726/32 - The new codec added by Mark to Asterisk >>6. LPC-10 - Because it was there... >> >> >> >for now I'm interested in freeware codecs only: iLBC then g711 then speex. > >Checking TODO and sources I see mentioning of 20ms frame size used with GSM. >Can anybody comment this issue for iLBC codec or may be point to some >materials. > > I'd just look at asterisk's implementation for ideas [although not code, because asterisk is GPL]. The 20ms frame size vs 30ms preferred frame size for iLBC will be an issue that needs to be dealt with when you make codecs modularized. Personally, I'd say that one should start with G711a/u, because the implementation of that will be about 50 lines of C code for coding and decoding (maybe less), and the bulk of the work will be in just modularization. To be sure you get the modularization right, make G711 work with 20ms or 30ms frame sizes. Then once that's working (and you haven't broken GSM, because you'll need to modularize that as well), adding any of the other codecs will be just a matter of the proper cross-platform Makefile-fu plus a small amount of glue code, and you'll have two examples of how to do the glue code. An experienced programmer should be able to do this (G711, GSM, iLBC) in somewhere like 5 - 20 hours or so. |