[asterisk-dev] [Code Review] Media Project Phase 2: SILK 8khz-24khz, SLINEAR 8khz-192khz, SPEEX 32khz, Custom format creation in codecs.conf

David Vossel reviewboard at asterisk.org
Tue Feb 22 15:03:26 CST 2011


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

(Updated 2011-02-22 15:03:26.455186)


Review request for Asterisk Developers.


Changes
-------

This update addresses everything commented on so far.


Summary
-------

-Functional Changes
Dynamic global format list build by codecs defined in codecs.conf
SILK 8khz, 12khz, 16khz, and 24khz with custom attributes defined in codecs.conf
Negotiation of SILK attributes in chan_sip.
SPEEX 32khz with translation
SLINEAR 8khz, 12khz, 24khz, 32khz, 44.1khz, 48khz, 96khz, 192khz with translation using codec_resample.c
Various changes to RTP code required to properly handle the dynamic format list and formats with attributes.

-Organizational changes
Global format list is moved from frame.c to format.c
Various format specific functions moved from frame.c to format.c

-MIS
There were several changes that I opted not to do during phase 1 that involved the proper use of formats with attributes.  I felt that the phase 1 patch was too complex to attempt these changes so I have included them here.  The primary change I held off doing the first time around was in the rtp_engine.c Payload and MIME type lists.  These lists were statically defined which made it impossible to set formats with attributes in them.  I have gone back and revised these lists to allow the flexibility required for the new architecture.


Diffs (updated)
-----

  /trunk/CHANGES 308571 
  /trunk/apps/app_chanspy.c 308571 
  /trunk/apps/app_jack.c 308571 
  /trunk/apps/app_mixmonitor.c 308571 
  /trunk/bridges/bridge_multiplexed.c 308571 
  /trunk/bridges/bridge_softmix.c 308571 
  /trunk/channels/chan_gtalk.c 308571 
  /trunk/channels/chan_iax2.c 308571 
  /trunk/channels/chan_jingle.c 308571 
  /trunk/channels/chan_sip.c 308571 
  /trunk/channels/chan_skinny.c 308571 
  /trunk/channels/iax2.h 308571 
  /trunk/codecs/Makefile 308571 
  /trunk/codecs/codec_resample.c 308571 
  /trunk/codecs/codec_speex.c 308571 
  /trunk/codecs/speex/arch.h PRE-CREATION 
  /trunk/codecs/speex/fixed_generic.h PRE-CREATION 
  /trunk/codecs/speex/resample.c PRE-CREATION 
  /trunk/codecs/speex/resample_sse.h PRE-CREATION 
  /trunk/codecs/speex/speex_resampler.h PRE-CREATION 
  /trunk/codecs/speex/stack_alloc.h PRE-CREATION 
  /trunk/configs/codecs.conf.sample 308571 
  /trunk/formats/format_attr_silk.c PRE-CREATION 
  /trunk/funcs/func_pitchshift.c 308571 
  /trunk/funcs/func_speex.c 308571 
  /trunk/funcs/func_volume.c 308571 
  /trunk/include/asterisk/_private.h 308571 
  /trunk/include/asterisk/audiohook.h 308571 
  /trunk/include/asterisk/format.h 308571 
  /trunk/include/asterisk/format_cap.h 308571 
  /trunk/include/asterisk/frame.h 308571 
  /trunk/include/asterisk/rtp_engine.h 308571 
  /trunk/include/asterisk/silk.h PRE-CREATION 
  /trunk/include/asterisk/slinfactory.h 308571 
  /trunk/include/asterisk/time.h 308571 
  /trunk/include/asterisk/translate.h 308571 
  /trunk/main/asterisk.c 308571 
  /trunk/main/audiohook.c 308571 
  /trunk/main/channel.c 308571 
  /trunk/main/data.c 308571 
  /trunk/main/format.c 308571 
  /trunk/main/format_cap.c 308571 
  /trunk/main/format_pref.c 308571 
  /trunk/main/frame.c 308571 
  /trunk/main/rtp_engine.c 308571 
  /trunk/main/slinfactory.c 308571 
  /trunk/main/translate.c 308571 
  /trunk/res/res_mutestream.c 308571 
  /trunk/res/res_rtp_asterisk.c 308571 

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


Testing
-------

I used the same testing I did for phase1 with phase2.  This includes load testing with various codec negotiation scenarios.  Speex 32 and its translators were verified using Asterisk back to back.  I verified SILK using a codec translator module I'm working with.  The new slinear resample code was exercised with both Speex32 and SILK 12khz/24khz translation.


Thanks,

David

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


More information about the asterisk-dev mailing list