[gst-devel] RTP Client sussystem design.
Thomas Vander Stichele
thomas at apestaart.org
Thu Sep 4 21:43:05 CEST 2003
Hi,
> > udpsrc udpsrc-control ! rtp-parser ! rtp-vorbis !
> > vorbis-decode ! osssink.
Finally, cool pipelines that do stuff ! :) I'm guessing you missed the !
between udpsrc and the next one. Personally I would drop all hyphens
though. I agree with Angel on the next comment ...
> I guess that udpsrc-control should be replaced by rtp-control , because
> this elemet is related to rtp control ( rtcp packets , BYE for instance )
> and it shouldn't be binded to specific transport protocol , it should be
> insolate to protocol instead.
... provided that there are actually useful situations where rtp-control
can be used with other transports (I thought it was UDP only ?)
> > rtp-parse puts the correct type in caps, and that
> > helps spider to link the next element and so on.
> >
> > That is all for data flow. Now control.
>
> Cool , i'm agree with data flow. Great work Ramón ! :)
+1, this would work out fine. Someone will have to fix spider though :)
> > The udpsrc-control receives control events from the
> > server. It delivers the packets, as is, to the
> > rtp-parser. The rtp-parser gets the packets and takes
> > appropiate action. Sometimes, the packets are passed
> > down to the pipeline (for instance, a packet
> > specifying the decoding dictionary of the vorbis
> > decoder).
I need to read up more, but what sort of actions can
udpsrc-control/rtpsrc-control take on the data then ? I mean, can it
drop buffers, delay timestamps, ... ? What is it's function in general ?
> > In addition, an RTP client must send control packets
> > to the server. For example, for starting and closing
> > connection. This is obviously essential in the unicast
> > case, and is required by RFCs 1889 and 3550 even in
> > the multicast case. In addition, statistics of packet
> > loss must be delivered to the server to comply with
> > that RFCs. The rtp-parser sends rtp control packets as
> > events to the udpsrc-control, which delivers them to
> > the server.
I think it could be a matter of discussion whether or not to implement
the control element the way you describe (ie with it's own logic and udp
session handling), or in some more gstreamer-ish way (ie, with more
elements and outgoing data). I can't say at all which of the two would
be best and for a first draft your approach looks fine.
> > A posible modification is that instead of
> > udpsrc-control, use a single udp element that has a
> > src pad and a dest pad. What do you think?
I didn't understand this part. How do you mean this to work ?
> Adding some comments to this draft about rtp send part :
>
> Following the dessing on client side that you've proposed , a
> possible pipeline for rtp sending should be something like this :
>
> v4lsrc ! mpeg4encode ! rtp-mpeg4enc ! rtp-parse ! rtp-control ! udpsink
>
> Where rtp-mpeg4enc should create the payload packets for mpeg4 payload time
> and push them to rtp-parse that will build the rtp packet adding the rtp header
> and creating the needed control information to push to rtp-control ,
Just a question - wouldn't MPEG be generic enough once it is encoded and
framed so that we could easily have just one element for all MPEG data ?
Great work guys, finally something other than just media playback to
test GStreamer with :)
Thomas
Dave/Dina : future TV today ! - http://davedina.apestaart.org/
<-*- thomas (dot) apestaart (dot) org -*->
I was about to have my first sexual experience
and I wasn't even one of the players...
<-*- thomas (at) apestaart (dot) org -*->
URGent, best radio on the net - 24/7 ! - http://urgent.rug.ac.be/
More information about the gstreamer-devel
mailing list