[Asterisk-Dev] [PATCH] Speex ultra wide band
steveu at coppice.org
Thu Jun 9 08:50:53 MST 2005
I think what you are doing is very valuable. Asterisk needs to be broken
from this tie to 8000 sample/second operation. It is good to see someone
working on it.
Alfred E. Heggestad wrote:
>attached is a preliminary patch enabling UWB (Ultra wide band 32kHz)
>part of the Speex codec. warning! it is not complete and the sampling
>rate is currently hardcoded to 32 kHz. the patch works fine with
>the app_mp3.c backend streaming mp3/http to speex/32000.
>before doing more work on this I have some questions:
>o Is anyone doing any similar work?
I don't think so. I am implementing T.38, which also requires a number
of changes to the RTP code, but I haven't heard of anyone implementing
>o What is the best way to negotiate sampling rate with SDP/SIP
> in asterisk? I have added a rate parameter to the arrays
> mimeTypes and static_RTP_PT in rtp.c but I am not sure
> if that is a good solution. Are there any other non-8000 Hz
> codecs I could look at ?
There are a number of non-8000 sample/second codecs, but obviously none
are supported by Asterisk. Wideband iLBC, G.722.1, wideband AMR and
others offer 16000 sample/second audio. This is the popular rate for
wideband. However, few offer the nested approach of Speex where an 8K
stream can be extracted from an 16K or 32K one. I think what you have
done is a good starting point. However, some additional cleverness would
be needed to take advantage of the speex nesting feature.
>o Would it be better to add AST_FORMAT_SPEEX_WB = 1<<11 and
> AST_FORMAT_SPEEX_UWB = 1<<12 ? my only worry is that Speex
> can also support other sample rates.
This approach uses up all the codec options rathr quickly. I don't think
that is the right approach.
>o How to copy the "sample rate" info from chan_sip.c to codec_speex.c ?
> the info must be re-entrant.
The Asterisk codecs are rather inflexible about supporting options. I
think that needs fixing, but I haven't looked at how.
More information about the asterisk-dev