[Asterisk-Dev] video in iax2 spec

Steve Kann stevek at stevek.com
Thu Apr 28 20:11:40 MST 2005


On Apr 28, 2005, at 8:47 PM, Ben Lear wrote:
>
> I just wish to know *how* it is to work. And if there currently is no 
> *how*
> then work towards establishing one, before running off on a mini code 
> fest.

My "mini code fest" as you so eloquently put it, is basically in the 
"proof of concept" phase;  Presently, it uses this library called 
"PortVideoSDL" for capture (which isn't really stable, and I've needed 
to hack to get YUV from cameras to even have a chance at decent 
performance.  My idea is to get a skeleton of code together which I can 
use for experimentation and to define a proper API for what I need from 
a capture module, amongst other things.  At this point, the actual 
details of packetization aren't that important, as they're unlikely to 
be performance issues, and for most codecs, I think I can make a 
prototype by just stuffing the raw output from the encoders into 
frames, and playing it back;  At least, that seems to be working for me 
so far.   (Except for theora, of course).

Once I get to the point where I have a platform where I can get a video 
call amongst two or three boxes, I'll start refining the APIs, and look 
into the packetization.

>> So, yes, I am interested in making the payload formats the
>> same as RTP, such that you can have iaxclient go through
>> asterisk, and interoperate with RTP clients, but it's not
>> something _I_ need to have done; it's a service to the
>> community. I don't plan on doing any of the work in rtp.c,
>> chan_sip, or any of that stuff.
>
> Nor do I. However, I would like to establish how it will eventually 
> work and
> someone can write it down and we can go off on our merry ways and meet 
> up at
> some later stage; and everything being equal be able to crank up a 
> video
> conversation. now that would be cool :P


Perhaps, but if nobody is planning on actually doing the work, it's a 
big waste of time talking about it for months and years.   We can talk 
now, till we're blue in the face, and write it down (aren't we doing 
that now), and all we'll accomplish is to have some more stuff for 
people to read when they want to have the same conversation later?


>> I haven't settled on a codec that I'd like to use yet
>> (although I've written basic drivers for ffmpeg[with it's
>> subformats] and theora), but, theora, being unencumbered, is
>> a huge plus.
>
> To declare Theora "Unencumbered" is a higly debatable subject, though 
> really
> it matters not in this context.

Sure it is.   Very few things don't infringe on patents these days.  If 
you read (jutta's?) page, GSM audio is probably encumbered -- but it 
appears that it's not being enforced.   But, so is "swinging sideways 
on a swing", the peanut butter sandwich, and the combover.  (well, it 
looks like smuckers lost the claim on _all_ peanut butter 
sandwiches..).  The question is whether or not it is being enforced.  
Clearly, people using MPEG4 and H264 are getting sued over it, but 
nobody is being sued over Theora.  (It also appears that people aren't 
being sued over H.263 either, which is strange, because most of the 
MPEG4 patents probably cover it as well).

Here's a post from On2 with a honest evaluation of it's status:
http://lists.xiph.org/pipermail/theora-dev/2003-February/000435.html


>
>> The quality from theora is similar to
>> H.263/MPEG4, although the present library needs a lot of
>> optimization, as it's seems an order of magnitude slower than ffmpeg
>> at the moment.
>>
>> If anyone wants to contribute to the cause, we can certainly broaden
>> the goals.
>
> Get the spec sorted first, then I'm sure more people will be more 
> inclined
> to help out with the coding.

I doubt it, honestly -- I don't see a big line of people out there 
saying "hey, I'm just itching to work on videoconferencing support in 
asterisk and iaxclient -- if only there was a spec on packet framing!"  
I think developers will be more attracted by a prototype.

This isn't all to say that we ought not do specifications first, before 
there's real implementations all over the place, or at least do 
specifications alongside them.   It's a lot easier to write 
specifications when you have a reference implementation being developed 
alongside the text.

-SteveK





More information about the asterisk-dev mailing list