On Fri, Mar 4, 2011 at 6:11 PM, Youness Alaoui <
youness.ala...@collabora.co.uk> wrote:

> 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)
>

Thanks Youness, now its a lot clearer.


>
> >
> >
> >     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.
>

On a recently project that i worked we used "gsrrtpdemux -> decodebin2" to
decode any type of rtp, the demuxer will detect the type of the rtp packet,
decodebin2 with the rtp packet defined properly can find the depayloader and
the decoder to the media inside the rtp packet. It worked fine for us but i
dont know if it would be a good solution for Farsight (maybe some fallback
that i cant see right now).

The automaticaly encode part is trickier.


> >
> >
> >     --
> >     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
>



-- 
http://www.getgnulinux.org/windows
------------------------------------------------------------------------------
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