[Nice] component_id and stream_id

Youness Alaoui youness.alaoui at collabora.co.uk
Tue Feb 26 11:40:54 PST 2013


The stream/component concept comes from RTP. You need to consider streams as "a
bundle of sockets" and components as "sockets". When you create a stream, you
specify how many components it should have, you cannot change that afterwards.
when you exchange candidates, you must exchange them for all the components.
Each component has its own set of candidates, the only difference is that the
way the state machine works internally with components is that it will first try
to get one component connected, and gather statistics on your network topology
for that one in order to connect the other components in a much faster and
efficient way.
If you want to add a new 'socket' at a later time, then you must create a new
stream with its own components, you cannot add a new component to an existing
In the terms of the RTP protocol, the streams represent Audio and Video streams
(in a VoIP call, you can add/remove the streaming of video dynamically for
example), while components would represent RTP and RTCP (2 sockets/components
per stream, one for the actual RTP data, and one for RTCP). Both come and go
together, so they are grouped together in a single stream.

I hope this clarifies things, let me know if you have any other question.


On 02/26/2013 12:54 PM, Chris LaFlash wrote:
> From my understanding streams/components create a sort of new socket for each
> one. I am looking for some clarification on streams vs components. I sort of get
> the feeling streams are more of a one per NAT-NAT item; while component(s) let
> you make multiple simultaneous connections through an existing stream tunnel
> without have to go back through the candidate/negotiation process. Is this
> correct? I added 10 components using nice_agent_add_stream during my setup, what
> other calls do I need to make to use multiple components over an existing
> stream? My calls to nice_agent_sent with a component_id of other then 1 fail.
> This is a great library, thanks for everyone’s hard work on it.
> Chris
> **********************************************************************
> This e-mail is the property of Lantronix. It is intended only for the person or
> entity to which it is addressed and may contain information that is privileged,
> confidential, or otherwise protected from disclosure. Distribution or copying of
> this e-mail, or the information contained herein, to anyone other than the
> intended recipient is prohibited.
> _______________________________________________
> nice mailing list
> nice at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/nice

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 263 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freedesktop.org/archives/nice/attachments/20130226/b2e2867f/attachment.pgp>

More information about the nice mailing list