On 03/04/2011 01:43 PM, Tiago Katcipis wrote:
> Thanks for the help Olivier.
>
> 2011/3/4 Olivier Crête <olivier.cr...@collabora.co.uk
> <mailto:olivier.cr...@collabora.co.uk>>
>
>     On Fri, 2011-03-04 at 10:09 -0300, Tiago Katcipis wrote:
>      > - Hints on how to document the rest of the Rtp conference in detail
>      > (the most important source code to give me understanding on how it
>      > actually works).
>      > - What exactly is a FsRtpSubStream? only looking at the source code
>      > didn't helped me too much, it seems that all the work is done on the
>      > rtp substream, what is the rtp stream for ?
>
>     The red boxes on your diagram labelled "FsRtpStream" are actually
>     substreams. A sub stream is one codec received from one ssrc in one
>     session, it should contains valve->capsfilter->codecbin->valve->ghostpad
>     as documented at the top of the file. The substream object contains
>     everything for the receive side (the send side is in the session
>     object).
>
>
> And what is the purpose of FsRtpStream since all the job is done on 
> FsRtpSubStream ?

FsRtpStream is basically the stream, a new FsRtpSubStream will be created by 
the 
stream everytime a new ssrc/codec is received.
Assuming you are doing an audio call with someone and you use PCMA, then you 
have one FsRtpStream initially that you created for the peer, when you receive 
the PCMA audio data, you'll get a new FsRtpSubStream created to handle this 
codec for this peer (ssrc). If the peer sends you DTMF for example, then a new 
FsRtpSubStream will be created to handle the 'telephone-event' codec.
Externally, the user only needs to know about the stream (a session-participant)

>
>
>     The first valve is used if you want to stop receiving, the output valve
>     is opened once it knows which FsStream the substream belongs to.
>
>     A codec bin is a "encoder->paylaoder->capsfilter" or
>     "capsfitlers->depayloader->decoder" depending on the direction.
>
>
> I finished the FsRtpSubStream diagram and updated the FsRtpConference one:
>
> http://www.inf.ufsc.br/~katcipis/farstream/farstream.png
> http://www.inf.ufsc.br/~katcipis/farstream/farstream-rtpsubstream.png
>
>
>     The rest of your diagram seems fine. You're missing the discovery thing
>     too (on the send side).
>
>
> I was planning on documenting this on the send pipeline (FsRtpSession 
> diagram):
>
> http://www.inf.ufsc.br/~katcipis/farstream/farstream-rtpsession.png
>
> Can you explain better how the "discovery thing" works? (I'm taking a look at
> the fs-rtp-session code, but somethings are hard to get).
>
>
>     I guess these files should have a bit more documentation on what they're
>     supposed to do.
>
>
> The codecbin, blueprint, etc part is pretty hard to understand (if someone 
> wants
> to understand the final pipeline that will be built), is there a reason why
> decodebin and encodebin are not used to build the send/receive pipelines? it
> seems you use an autoconvert element and a list of factories, never read about
> autoconvert before.

yeah, all that blueprint stuff is hard to understand... I'll let Olivier 
explain it.
autoconvert is an element that was created for/was part of farsight (called 
fsselector iirc). All it does is to basically try to find the right 'converter' 
from one format to another...
if you do "audio/mp3 ! autoconvert ! audio/raw-int" it will find the right 
decoder... I believe it it used by farsight in order to automatically find the 
depayload and the decoder, as well as the encoder/payloader for the send/recv 
codec bins.

>
>
>     --
>     Olivier Crête
>     olivier.cr...@collabora.co..uk <mailto:olivier.cr...@collabora.co.uk>
>     Collabora Ltd
>
>     
> ------------------------------------------------------------------------------
>     What You Don't Know About Data Connectivity CAN Hurt You
>     This paper provides an overview of data connectivity, details
>     its effect on application quality, and explores various alternative
>     solutions. http://p.sf.net/sfu/progress-d2d
>     _______________________________________________
>     Farsight-devel mailing list
>     Farsight-devel@lists.sourceforge.net
>     <mailto:Farsight-devel@lists.sourceforge.net>
>     https://lists.sourceforge.net/lists/listinfo/farsight-devel
>
>
>
> ------------------------------------------------------------------------------
> What You Don't Know About Data Connectivity CAN Hurt You
> This paper provides an overview of data connectivity, details
> its effect on application quality, and explores various alternative
> solutions. http://p.sf.net/sfu/progress-d2d
>
>
>
> _______________________________________________
> Farsight-devel mailing list
> Farsight-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/farsight-devel


------------------------------------------------------------------------------
What You Don't Know About Data Connectivity CAN Hurt You
This paper provides an overview of data connectivity, details
its effect on application quality, and explores various alternative
solutions. http://p.sf.net/sfu/progress-d2d
_______________________________________________
Farsight-devel mailing list
Farsight-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/farsight-devel

Reply via email to