[Asterisk-Users] Speex support
Jan Rychter
jan at rychter.com
Fri Jul 18 11:56:55 MST 2003
>>>>> "John" == John Todd <jtodd at loligo.com> writes:
>> What is the state of speex support in asterisk? I saw the codec
>> seems to be there.
John> Install the Speex library support, and re-compile Asterisk.
John> There's probably a pre-compiled version of Speex for your system;
John> look around in whatever package manager you use for your Linux
John> distro.
I do have the libraries installed.
>> Can speex be used on IAX2 links? Is there much work still to be
>> done?
John> Yes, it can be used. No work required to get functionality.
Really? Have you tried it? I have. It doesn't work -- and a quick look
at chan_iax2.c shows that there is a good reason for this --
get_samples() doesn't know how to calculate the number of samples for an
incoming speex format frame. This results in chopped sound and hundreds
of warnings:
WARNING[163851]: File chan_iax2.c, Line 605 (get_samples): Don't know how to calculate samples on 512 packets
WARNING[163851]: File chan_iax2.c, Line 605 (get_samples): Don't know how to calculate samples on 512 packets
WARNING[163851]: File chan_iax2.c, Line 605 (get_samples): Don't know how to calculate samples on 512 packets
[...]
[time passes]
Ok, adding the following tiny modification to chan_iax2.c solves the
problem:
Index: chan_iax2.c
===================================================================
RCS file: /usr/cvsroot/asterisk/channels/chan_iax2.c,v
retrieving revision 1.33
diff -u -r1.33 chan_iax2.c
--- chan_iax2.c 16 Jul 2003 18:45:12 -0000 1.33
+++ chan_iax2.c 18 Jul 2003 19:16:49 -0000
@@ -601,6 +601,9 @@
case AST_FORMAT_ADPCM:
samples = f->datalen *2;
break;
+ case AST_FORMAT_SPEEX:
+ samples = 160 * f->datalen;
+ break;
default:
ast_log(LOG_WARNING, "Don't know how to calculate samples on %d packets\n", f->subclass);
}
I don't know if that's correct, but I can now use speex on IAX2
links. It sounds considerably better than GSM.
There is still one remaining problem which I do *not* know how to fix:
when * plays messages from the hard disk stored in GSM format, I get
choppy sound. It seems * can't properly deal with conversion from GSM to
Speex.
--J.
PS: bad advice is worse than no advice...
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 188 bytes
Desc: not available
Url : http://lists.digium.com/pipermail/asterisk-users/attachments/20030718/a4aa9be5/attachment.pgp
More information about the asterisk-users
mailing list