Posted: Mon Oct 23, 2006 6:45 am Post subject: [Asterisk-video] Video codec negotiation in IAX
Hello all,
As you may already know, I am working on adding video support to
iaxclient.
It appears however that IAX's support for video codec negotiation is
lacking. I am no IAX expert, but from what I can see, there are to
ways of doing codec negotiation in IAX:
- use the FORMAT and CAPABILITY IEs. This allows you to specify one
preferred codec and a list of acceptable codecs. This is the way
iaxclient does codec negotiation at this time.
- use the CODEC PREFS IE. This allows you to specify a list of
acceptable codecs, in order of preference.
The problem with video is that you need to negotiate two codecs at
the same time (one for video and one for audio). Unfortunately, none
of the above mentioned methods are suitable for this. The way I see
it, there are several ways of addressing this:
1. use a VIDEO FORMAT IE, in addition to FORMAT and CAPABILITY. The
CAPABILITY IE will contain acceptable video codecs as well as audio.
2. use a VIDEO CODEC PREFS IE in addition to the current CODEC PREFS
IE. This will more flexible since it allows for video codec
preference order.
3. use the current FORMAT and CAPABILITY and change the semantics of
FORMAT to allow a video codec as well as an audio codec. This might
be easiest to implement.
As a long term solution, I'm inclined to go with #2 since it provides
the maximum amount of flexibility. However I would like to hear any
suggestions you might have regarding this issue...
Posted: Mon Oct 23, 2006 11:20 am Post subject: [Asterisk-video] Video codec negotiation in IAX
Hi Mihai,
I can't help much on the way that IAX handles video but I've added the
following capabilities to my SIP and H323 builds, I know it's not quite
prefs but perhaps it shows some thinking I've been doing too...
I add an
struct ast_capabilities
to the peer, user and pvt structures in the two channel drivers. I
tend to create a peercaps, confcaps and a jointcaps from the struct in
each of the pvts and a caps in each of the peer and user structs. I then
use the functions I've created to pass the capabilities around Asterisk
and typically to find the lowest common denominator. The new chan_h323
in 1.4 has a mechanism to preference codecs for voice and I just used
the same mechanism for video.
I've been thinking that I should add all the audio capabilities to
what I've done to round things off a bit. There are issues of decoupling
all the capabilities functions from the rtp functions in Ast too, to
make an API that's more object like.
This is all a bit rough and ready at the moment but I hope it helps.
I'm trying to get things into a state where it can be made public.
As you may already know, I am working on adding video support to
iaxclient.
It appears however that IAX's support for video codec negotiation is
lacking. I am no IAX expert, but from what I can see, there are to
ways of doing codec negotiation in IAX:
- use the FORMAT and CAPABILITY IEs. This allows you to specify one
preferred codec and a list of acceptable codecs. This is the way
iaxclient does codec negotiation at this time.
- use the CODEC PREFS IE. This allows you to specify a list of
acceptable codecs, in order of preference.
The problem with video is that you need to negotiate two codecs at
the same time (one for video and one for audio). Unfortunately, none
of the above mentioned methods are suitable for this. The way I see
it, there are several ways of addressing this:
1. use a VIDEO FORMAT IE, in addition to FORMAT and CAPABILITY. The
CAPABILITY IE will contain acceptable video codecs as well as audio.
2. use a VIDEO CODEC PREFS IE in addition to the current CODEC PREFS
IE. This will more flexible since it allows for video codec
preference order.
3. use the current FORMAT and CAPABILITY and change the semantics of
FORMAT to allow a video codec as well as an audio codec. This might
be easiest to implement.
As a long term solution, I'm inclined to go with #2 since it provides
the maximum amount of flexibility. However I would like to hear any
suggestions you might have regarding this issue...
Thanks in advance,
Mihai
_______________________________________________
--Bandwidth and Colocation provided by Easynews.com --
Posted: Tue Oct 24, 2006 8:34 am Post subject: [Asterisk-video] Video codec negotiation in IAX
John,
Thanks for the info (and files).
Apparently this whole thing is in a state of flux right now, with
several codec negotiation proposals floating around aiming post 1.4
integration.
I guess we'll probably have to wait and see what is decided in
November in Paris... with iaxclient, I'll prolly do it quick and
dirty for now, and adopt whatever it is decided for the long term....
Regards
Mihai
On Oct 23, 2006, at 4:27 PM, John Martin wrote:
Quote:
Hi Mihai,
I can't help much on the way that IAX handles video but I've
added the
following capabilities to my SIP and H323 builds, I know it's not
quite
prefs but perhaps it shows some thinking I've been doing too...
I add an
struct ast_capabilities
to the peer, user and pvt structures in the two channel drivers. I
tend to create a peercaps, confcaps and a jointcaps from the struct in
each of the pvts and a caps in each of the peer and user structs. I
then
use the functions I've created to pass the capabilities around
Asterisk
and typically to find the lowest common denominator. The new chan_h323
in 1.4 has a mechanism to preference codecs for voice and I just used
the same mechanism for video.
I've been thinking that I should add all the audio capabilities to
what I've done to round things off a bit. There are issues of
decoupling
all the capabilities functions from the rtp functions in Ast too, to
make an API that's more object like.
This is all a bit rough and ready at the moment but I hope it helps.
I'm trying to get things into a state where it can be made public.
> -----Original Message-----
> From: asterisk-video-bounces@lists.digium.com [mailto:asterisk-video-
> bounces@lists.digium.com] On Behalf Of Mihai Balea
> Sent: 23 October 2006 16:45
> To: Iax Developer List
> Cc: asterisk-video@lists.digium.com
> Subject: [Asterisk-video] Video codec negotiation in IAX
>
> Hello all,
>
> As you may already know, I am working on adding video support to
> iaxclient.
>
> It appears however that IAX's support for video codec negotiation is
> lacking. I am no IAX expert, but from what I can see, there are to
> ways of doing codec negotiation in IAX:
> - use the FORMAT and CAPABILITY IEs. This allows you to specify one
> preferred codec and a list of acceptable codecs. This is the way
> iaxclient does codec negotiation at this time.
> - use the CODEC PREFS IE. This allows you to specify a list of
> acceptable codecs, in order of preference.
>
> The problem with video is that you need to negotiate two codecs at
> the same time (one for video and one for audio). Unfortunately, none
> of the above mentioned methods are suitable for this. The way I see
> it, there are several ways of addressing this:
> 1. use a VIDEO FORMAT IE, in addition to FORMAT and CAPABILITY. The
> CAPABILITY IE will contain acceptable video codecs as well as audio.
> 2. use a VIDEO CODEC PREFS IE in addition to the current CODEC PREFS
> IE. This will more flexible since it allows for video codec
> preference order.
> 3. use the current FORMAT and CAPABILITY and change the semantics of
> FORMAT to allow a video codec as well as an audio codec. This might
> be easiest to implement.
>
> As a long term solution, I'm inclined to go with #2 since it provides
> the maximum amount of flexibility. However I would like to hear any
> suggestions you might have regarding this issue...
>
> Thanks in advance,
> Mihai
>
> _______________________________________________
> --Bandwidth and Colocation provided by Easynews.com --
>
> asterisk-video mailing list
> To UNSUBSCRIBE or update options visit:
> http://lists.digium.com/mailman/listinfo/asterisk-video
> <capability.h>
> <capability.c>
_______________________________________________
--Bandwidth and Colocation provided by Easynews.com --
You can post new topics in this forum You can reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum