2011/3/4 Olivier Crête <olivier.cr...@collabora.co.uk>
> On Fri, 2011-03-04 at 15:43 -0300, Tiago Katcipis wrote:
> > And what is the purpose of FsRtpStream since all the job is done on
> > FsRtpSubStream ?
>
> A FsRtpStream is there because this is what is used for candidates and
> transmitters and stuff. And it is what is in the API, a Stream is a
> Participant in a Session.
>
>
>
> > 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
>
> Looks good
>
> >
> >
> > 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).
>
> The discovery thing is pretty simple. For some codecs (like THEORA), to
> produce all the parameters that you want to send the other side, you
> need to process some data, to get at least the caps from the incoming
> side. So what the discovery stuff does is that, for these codecs, it
> creates a small pipeline like "codecbin->fakesink" and waits for the
> caps to bet set after the codecbin and uses those to complete the
> codecs. When they have all been discovered, the "codecs-ready" property
> becomes true.
>
Thanks Olivier, that will help me a lot on the diagrams.
>
>
> > 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.
>
> First, encodebin did not exist when this was written.
My mistake, encodebin is pretty new stuff on gstreamer.
> Decodebin is not
> really suitable, because for RTP, you need to discover all the possible
> codecs before starting the call (so before getting any data), so that
> the codecs can be negotiated with the other side. While decodebin just
> decodes as it goes along.
>
Dont know if i get the problem correctly, but if you need to now the
available codecs on the client you could do something similar to what
decodebin already does with gst_element_factory_list_get_elements, listing
only GST_ELEMENT_FACTORY_TYPE_DECODABLE, do negotiation, and then let
decodebin do his job when data arrives. Well it is just an idea...again...i
dont know if would cover all the cases that farsight needs to handle ( and
it handles just fine :-) ).
>
> A Blueprint is just a simple structure that defines a codec (as RTP sees
> it), so it includes the codec's info (a FsCodec), the rtp and media caps
> (that is the caps after and before the payloader), and the list of
> factories to make an encoding or decoding blueprint for this codec. So
> in almost all cases, these lists will only contain a encoder/payloader
> pair and a decoder/depayloader pair. That said, there is one strange
> case, H263-1998/H263-2000, where (in ffmpeg) there are two different
> encoders (ffenc_h263 and ffenc_h263p) to be used depending on the exact
> parameters. The way we solved this is by putting both of these in
> autoconvert and letting it decide according to the caps.
>
> The code is fs-rtp-discover-codecs is kind of gash, but it works (and
> hasn't changed in many years).
>
> I hope that helps.
>
Helped me a lot Olivier, thanks.
Now i think i can finish my diagrams :-). I'll post them here when I'm done.
>
> --
> Olivier Crête
> olivier.cr...@collabora.co.uk
>
>
> ------------------------------------------------------------------------------
> 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