[gst-devel] status of rtp packetizers

Kai Vehmanen kvehmanen at eca.cx
Thu Nov 3 04:20:52 CET 2005

Hello all,

and more RTP mails. It seems that there are quite a lot of gst/RTP apps 
(and elements, especially for session handling) in active development now. 
There's at least Flumotion, Farsight, Tapioca, Sofsip (console mode SIP 
VoIP client using gst/rtpbin/jrtp, this what I'm personally working with), 
the Xeris RTP/RTSP server, ... any others?

But I guess we all agree that nobody should be making their own versions 
of packetizers for codecs (and hopefully we can agree upon session 
handling, muxing, etc later on). So to that end, here's some material for 
comments. I've been talking with people from various group (especially 
Philippe, Andre and Zeeshan) about the status of the (de)payloaders, and 
here's a list of guidelines and/or open items. Of course, Wim has designed 
the current base classes, so hopefully this post is inline with the 
original design. Please comment if you are working on this area, or there 
is something clearly wrong:

generic todo

- updating the base classes
- porting the current in-tree packetizers to the guidelines (especially
   to use the base-classes)
- renaming of the packetizers in gst-plugins-good-cvs/gst/rtp/ (I've
   understood that this has been ok'ed on #gstreamer some time ok)
     - when's a good time to do this from 1.0 pov...?


- should implement the GstBaseRTPPayload base class
     - use gst_basertppayload_push() et al
     - OPEN: harmonize the way the subclasses are implemented (setting
       clock rate, caps, etc)
- naming
     - CODECpayload (=> "gsmpayload", "gstgsmpayload.c")
     - static caps for src pads should be defined according
       to gst-plugins-good-cvs/gst/rtp/README
     - note: payloader should set the PT in the caps
       if fixed (e.g. PT=8 for PCMA)


- implement the GstBaseRTPDepayload base class
     - setting the clock_rate, PT, ... (see above)
     - OPEN: harmonize the way the subclasses are implemented (setting
       clock rate, caps, etc)
     - static caps for sink pads should be defined according to
     - the sink pad caps should contain at least 'media',
       'clock-rate' and 'encoding-name'
     - note: depayloaders should accept all PT's (even if the
       codec in question has a fixed PT allocated by its payload RFC)
- naming
     - CODECdepayload (=> "gsmdepayload", gstgsmdepayload.c)
- base-class todo
     - improve the jitter buffer (separate queue-delay, and
       max-size params that cover overflows both in queue_release
       and in add_to_queue)
     - similar services as gst_basertppayload_set_outcaps() for
       payloaders for setting caps

  under work: Sofia-SIP at http://sofia-sip.sf.net

More information about the gstreamer-devel mailing list