diff -r 567bb019e3e3 -r 7e817e7e631c gst_plugins_base/gst-libs/gst/rtp/README --- a/gst_plugins_base/gst-libs/gst/rtp/README Tue Aug 31 15:30:33 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -The RTP libraries ---------------------- - - RTP Buffers - ----------- - The real time protocol as described in RFC 3550 requires the use of special - packets containing an additional RTP header of at least 12 bytes. GStreamer - provides some helper functions for creating and parsing these RTP headers. - The result is a normal #GstBuffer with an additional RTP header. - - RTP buffers are usually created with gst_rtp_buffer_new_allocate() or - gst_rtp_buffer_new_allocate_len(). These functions create buffers with a - preallocated space of memory. It will also ensure that enough memory - is allocated for the RTP header. The first function is used when the payload - size is known. gst_rtp_buffer_new_allocate_len() should be used when the size - of the whole RTP buffer (RTP header + payload) is known. - - When receiving RTP buffers from a network, gst_rtp_buffer_new_take_data() - should be used when the user would like to parse that RTP packet. (TODO Ask - Wim what the real purpose of this function is as it seems to simply create a - duplicate GstBuffer with the same data as the previous one). The - function will create a new RTP buffer with the given data as the whole RTP - packet. Alternatively, gst_rtp_buffer_new_copy_data() can be used if the user - wishes to make a copy of the data before using it in the new RTP buffer. An - important function is gst_rtp_buffer_validate() that is used to verify that - the buffer a well formed RTP buffer. - - It is now possible to use all the gst_rtp_buffer_get_*() or - gst_rtp_buffer_set_*() functions to read or write the different parts of the - RTP header such as the payload type, the sequence number or the RTP - timestamp. The use can also retreive a pointer to the actual RTP payload data - using the gst_rtp_buffer_get_payload() function. - - RTP Base Payloader Class (GstBaseRTPPayload) - -------------------------------------------- - - All RTP payloader elements (audio or video) should derive from this class. - - RTP Base Audio Payloader Class (GstBaseRTPAudioPayload) - ------------------------------------------------------- - - This base class can be tested through it's children classes. Here is an - example using the iLBC payloader (frame based). - - For 20ms mode : - - GST_DEBUG="basertpaudiopayload:5" gst-launch-0.10 fakesrc sizetype=2 - sizemax=114 datarate=1900 ! audio/x-iLBC, mode=20 ! rtpilbcpay - max-ptime="40000000" ! fakesink - - For 30ms mode : - - GST_DEBUG="basertpaudiopayload:5" gst-launch-0.10 fakesrc sizetype=2 - sizemax=150 datarate=1662 ! audio/x-iLBC, mode=30 ! rtpilbcpay - max-ptime="60000000" ! fakesink - - Here is an example using the uLaw payloader (sample based). - - GST_DEBUG="basertpaudiopayload:5" gst-launch-0.10 fakesrc sizetype=2 - sizemax=150 datarate=8000 ! audio/x-mulaw ! rtppcmupay max-ptime="6000000" ! - fakesink - - RTP Base Depayloader Class (GstBaseRTPDepayload) - ------------------------------------------------ - - All RTP depayloader elements (audio or video) should derive from this class.