[Freeswitch-dev] Questions on implementing mod_nelly codec

Steve Underwood steveu at coppice.org
Tue Apr 12 20:40:10 MSD 2011


The Nelly Moser codec seems to be patent encumbered, so accepting a 
module for need to be considered with caution. It doesn't seem to be 
that useful, now. It used to have value, because it was needed for 
flash. Flash now supports speex, which is a better option.


On 04/12/2011 11:10 PM, Anthony Minessale wrote:
> Almost forgot about this thread, there was no reply for some time.
> See latest GIT and just configure your codec with accurate numbers and
> it should be right.
> is 32 ptime a requirement? you will get more performance out of 40 but
> 32 should work as of this latest version.
> commit 82e3d49fd20ca91306a87d43bb88613938b2c6fd
> Author: Anthony Minessale<anthm at freeswitch.org>
> Date:   Tue Apr 12 09:47:11 2011 -0500
>      add L16 def for 32ms and allow timer matrix to drop to 1ms to support nelly
> On Tue, Mar 22, 2011 at 4:46 PM, Richard Alam<ritzalam at gmail.com>  wrote:
>> Yes, we plan on contributing the module once it's working.
>> On Tue, Mar 22, 2011 at 5:19 PM, Anthony Minessale
>> <anthony.minessale at gmail.com>  wrote:
>>> Are you planning to contribute this module?
>>> On Mon, Mar 21, 2011 at 1:58 PM, Richard Alam<ritzalam at gmail.com>  wrote:
>>>> Hi,
>>>> We've been trying to implement a mod_nelly codec but so far has been
>>>> unsuccessful. We use a Nellymoser compatible codec submitted to ffmpeg
>>>> (see June 16, 2008 entry of http://ffmpeg.org/).
>>>> Our plan is to use Flash using Nellymoser to connect to a conference
>>>> in FreeSWITCH.
>>>> The hurdle seems to be that Nellymoser decodes 64 byte nelly audio to
>>>> 512 byte L16. Nellymoser is 11-Khz 8-bit per sample with 32 ptime.
>>>> However, L16 implementations are all 20 ptime
>>>> which have uncompressed bytes in multiples of 320. This doesn't align
>>>> with what mod_nelly expects when encoding (convert 512 bytes to 64
>>>> bytes) and decoding (64 bytes to 512 bytes).
>>>> Here is the SWITCH_MODULE_LOAD_FUNCTION(mod_nelly_load)
>>>> [http://pastebin.freeswitch.org/15764] now. We've played around with
>>>> the samples per second (SPS), actual samples per second (ASPS),
>>>> bits per second (BPS), and the ptime (PTIME) but with no luck. It's
>>>> either we get bad very choppy audio, incompatible destination (when
>>>> codecs can't match), or no audio at all. We've managed to get the
>>>> "You will now be placed into the conference" audio played correctly
>>>> but the audio from the caller is bad. Just the paying of wav file from
>>>> FS is correct.
>>>> My question is how does transcoding works in FS? Am I correct to
>>>> assume decoding as Nelly->L16 and encoding as L16->Nelly?
>>>> So basically the media flow for our use case is Nelly ->  L16 -->
>>>> mod_conference ->  L16 ->  Nelly.
>>>> Do I need to make the frames align? In this case, Nelly expect 256
>>>> samples per frame while L16 has 160, 320, ... samples per frame.
>>>> Hope I've articulated clearly what we are trying to accomplish.
>>>> Suggestions and ideas on what to try out next is much appreciated.
>>>> Thanks in advance.
>>>> Richard

More information about the FreeSWITCH-dev mailing list