gstreamer/gst/rtp
Zeeshan Ali 240bea7417 Getting the GSM (de)payloader working and compatible with our plans for RTP.
Original commit message from CVS:
Getting the GSM (de)payloader working and compatible with our plans for RTP.
2005-10-25 15:07:02 +00:00
..
gstasteriskh263.c gst/rtp/: Added two new payloaders, an RFC 2190 payloader for h263 and a payload convertor for an asterisk server. 2005-10-24 16:39:38 +00:00
gstasteriskh263.h gst/rtp/: Added two new payloaders, an RFC 2190 payloader for h263 and a payload convertor for an asterisk server. 2005-10-24 16:39:38 +00:00
gstrtp.c fix mistaken claim on GPL, its LGPL 2005-10-25 13:03:04 +00:00
gstrtpamrdec.c gst/rtp/gstrtpamrdec.c: Handle multiple AMr packets per payload. Handle CRC and parse ILL/ILP. 2005-09-21 17:50:29 +00:00
gstrtpamrdec.h ext/amrnb/: Update caps with audio/AMR. 2005-08-19 12:44:35 +00:00
gstrtpamrdepay.c gst/rtp/gstrtpamrdec.c: Handle multiple AMr packets per payload. Handle CRC and parse ILL/ILP. 2005-09-21 17:50:29 +00:00
gstrtpamrdepay.h ext/amrnb/: Update caps with audio/AMR. 2005-08-19 12:44:35 +00:00
gstrtpamrenc.c gst/rtp/: Various class and caps fixes from Andre Magalhaes (andrunko) 2005-09-30 16:36:49 +00:00
gstrtpamrenc.h Updates to payloader/depayloaders, make payloaders use the base classes. 2005-09-15 13:57:56 +00:00
gstrtpamrpay.c gst/rtp/: Various class and caps fixes from Andre Magalhaes (andrunko) 2005-09-30 16:36:49 +00:00
gstrtpamrpay.h Updates to payloader/depayloaders, make payloaders use the base classes. 2005-09-15 13:57:56 +00:00
gstrtpdec.c gst/rtp/: Use is_filled to both check MTU and max-ptime of base class. 2005-09-22 14:13:36 +00:00
gstrtpdec.h gst/: UDP fixes, added uri handler. 2005-05-11 07:31:22 +00:00
gstrtpdepay.c gst/rtp/: Use is_filled to both check MTU and max-ptime of base class. 2005-09-22 14:13:36 +00:00
gstrtpdepay.h gst/: UDP fixes, added uri handler. 2005-05-11 07:31:22 +00:00
gstrtpgsmdepay.c Getting the GSM (de)payloader working and compatible with our plans for RTP. 2005-10-25 15:07:02 +00:00
gstrtpgsmdepay.h Getting the GSM (de)payloader working and compatible with our plans for RTP. 2005-10-25 15:07:02 +00:00
gstrtpgsmenc.c Getting the GSM (de)payloader working and compatible with our plans for RTP. 2005-10-25 15:07:02 +00:00
gstrtpgsmenc.h Getting the GSM (de)payloader working and compatible with our plans for RTP. 2005-10-25 15:07:02 +00:00
gstrtpgsmparse.c Getting the GSM (de)payloader working and compatible with our plans for RTP. 2005-10-25 15:07:02 +00:00
gstrtpgsmparse.h Getting the GSM (de)payloader working and compatible with our plans for RTP. 2005-10-25 15:07:02 +00:00
gstrtpgsmpay.c Getting the GSM (de)payloader working and compatible with our plans for RTP. 2005-10-25 15:07:02 +00:00
gstrtpgsmpay.h Getting the GSM (de)payloader working and compatible with our plans for RTP. 2005-10-25 15:07:02 +00:00
gstrtph263enc.c gst/rtp/: Added two new payloaders, an RFC 2190 payloader for h263 and a payload convertor for an asterisk server. 2005-10-24 16:39:38 +00:00
gstrtph263enc.h gst/rtp/: Added two new payloaders, an RFC 2190 payloader for h263 and a payload convertor for an asterisk server. 2005-10-24 16:39:38 +00:00
gstrtph263pay.c gst/rtp/: Added two new payloaders, an RFC 2190 payloader for h263 and a payload convertor for an asterisk server. 2005-10-24 16:39:38 +00:00
gstrtph263pay.h gst/rtp/: Added two new payloaders, an RFC 2190 payloader for h263 and a payload convertor for an asterisk server. 2005-10-24 16:39:38 +00:00
gstrtph263pdec.c don't use underscores 2005-09-20 10:51:51 +00:00
gstrtph263pdec.h gst/rtp/: Remove old code that is now in gst-libs/gst/rtp/. 2005-08-18 10:33:15 +00:00
gstrtph263pdepay.c don't use underscores 2005-09-20 10:51:51 +00:00
gstrtph263pdepay.h gst/rtp/: Remove old code that is now in gst-libs/gst/rtp/. 2005-08-18 10:33:15 +00:00
gstrtph263penc.c gst/rtp/: Various class and caps fixes from Andre Magalhaes (andrunko) 2005-09-30 16:36:49 +00:00
gstrtph263penc.h Updates to payloader/depayloaders, make payloaders use the base classes. 2005-09-15 13:57:56 +00:00
gstrtph263ppay.c gst/rtp/: Various class and caps fixes from Andre Magalhaes (andrunko) 2005-09-30 16:36:49 +00:00
gstrtph263ppay.h Updates to payloader/depayloaders, make payloaders use the base classes. 2005-09-15 13:57:56 +00:00
gstrtpL16depay.c All plugins updated for element state changes. 2005-09-02 15:44:50 +00:00
gstrtpL16depay.h *.h: Revert indenting 2004-03-15 16:32:54 +00:00
gstrtpL16enc.c All plugins updated for element state changes. 2005-09-02 15:44:50 +00:00
gstrtpL16enc.h gst/rtp/: Remove old code that is now in gst-libs/gst/rtp/. 2005-08-18 10:33:15 +00:00
gstrtpL16parse.c All plugins updated for element state changes. 2005-09-02 15:44:50 +00:00
gstrtpL16parse.h *.h: Revert indenting 2004-03-15 16:32:54 +00:00
gstrtpL16pay.c All plugins updated for element state changes. 2005-09-02 15:44:50 +00:00
gstrtpL16pay.h gst/rtp/: Remove old code that is now in gst-libs/gst/rtp/. 2005-08-18 10:33:15 +00:00
gstrtpmp4vdec.c gst/rtp/: Remove g_print. 2005-09-22 10:39:11 +00:00
gstrtpmp4vdec.h gst/rtp/: Added mpeg4 video payload encoder/decoder. 2005-09-06 15:50:58 +00:00
gstrtpmp4vdepay.c gst/rtp/: Remove g_print. 2005-09-22 10:39:11 +00:00
gstrtpmp4vdepay.h gst/rtp/: Added mpeg4 video payload encoder/decoder. 2005-09-06 15:50:58 +00:00
gstrtpmp4venc.c gst/rtp/: Various class and caps fixes from Andre Magalhaes (andrunko) 2005-09-30 16:36:49 +00:00
gstrtpmp4venc.h gst/rtp/: Use is_filled to both check MTU and max-ptime of base class. 2005-09-22 14:13:36 +00:00
gstrtpmp4vpay.c gst/rtp/: Various class and caps fixes from Andre Magalhaes (andrunko) 2005-09-30 16:36:49 +00:00
gstrtpmp4vpay.h gst/rtp/: Use is_filled to both check MTU and max-ptime of base class. 2005-09-22 14:13:36 +00:00
gstrtpmpadec.c don't use underscores 2005-09-20 10:51:51 +00:00
gstrtpmpadec.h gst/rtp/: Remove old code that is now in gst-libs/gst/rtp/. 2005-08-18 10:33:15 +00:00
gstrtpmpadepay.c don't use underscores 2005-09-20 10:51:51 +00:00
gstrtpmpadepay.h gst/rtp/: Remove old code that is now in gst-libs/gst/rtp/. 2005-08-18 10:33:15 +00:00
gstrtpmpaenc.c gst/rtp/: Various class and caps fixes from Andre Magalhaes (andrunko) 2005-09-30 16:36:49 +00:00
gstrtpmpaenc.h gst/rtp/: Use is_filled to both check MTU and max-ptime of base class. 2005-09-22 14:13:36 +00:00
gstrtpmpapay.c gst/rtp/: Various class and caps fixes from Andre Magalhaes (andrunko) 2005-09-30 16:36:49 +00:00
gstrtpmpapay.h gst/rtp/: Use is_filled to both check MTU and max-ptime of base class. 2005-09-22 14:13:36 +00:00
Makefile.am gst/rtp/: Added two new payloaders, an RFC 2190 payloader for h263 and a payload convertor for an asterisk server. 2005-10-24 16:39:38 +00:00
README gst/rtp/README: Update README 2005-09-21 12:19:24 +00:00
rtp.vcproj more working plugins 2004-07-27 21:41:30 +00:00
TODO gst/rtp/: Use is_filled to both check MTU and max-ptime of base class. 2005-09-22 14:13:36 +00:00

The application/x-rtp mime type
-------------------------------

For valid RTP packets encapsulated in GstBuffers, we use the caps with
mime type application/x-rtp.

The following fields can or must (*) be specified in the structure:

 * media: (String) [ "audio", "video", "application", "data", "control" ]
     Defined in RFC 2327 in the SDP media announcement field.

 * payload: (int) [0, 255]
     For audio and video, these will normally be a media payload type as 
     defined in the RTP Audio/Video Profile. For dynamicaly allocated 
     payload types, this value will be >= 96 and the encoding-name must be
     set.

 * clock-rate: (int) [0 - MAXINT]
    the RTP clock rate

   ssrc: (uint) [0 - MAXINT]
    The ssrc value currently in use.

   clock-base: (uint) [0 - MAXINT]
    The RTP time representing time 0

   seqnum-base:
    The RTP sequence number representing the first rtp packet

   encoding-name: (String) ANY
     typically second part of the mime type. ex. MP4V-ES. only required if
     payload type >= 96

   encoding-params: (String) ANY
     extra encoding parameters (as in the SDP a=rtpmap: field). only required
     if different from the default of the encoding-name.
     
   Optional parameters as key/value pairs, media type specific. The value type
   should be of type G_TYPE_STRING.

 Example:

  "application/x-rtp",
      "media", G_TYPE_STRING, "audio",		-]
      "payload", G_TYPE_INT, 96,                 ] - required
      "clock-rate", G_TYPE_INT, 8000,           -]
      "encoding-name", G_TYPE_STRING, "AMR",    -] - required since payload >= 96
      "encoding-params", G_TYPE_STRING, "1",	-] - optional param for AMR
      "octet-align", G_TYPE_STRING, "1",	-]
      "crc", G_TYPE_STRING, "0",                 ]
      "robust-sorting", G_TYPE_STRING, "0",      ]  AMR specific params.
      "interleaving", G_TYPE_STRING, "0",       -]
  
 Mapping of caps to and from SDP fields:

   m=<media> <udp port> RTP/AVP <payload>       -] media and payload from caps
   a=rtpmap:<payload> <encoding-name>/<clock-rate>[/<encoding-params>]
              -> when <payload> >= 96
   a=fmtp:<payload> <param>=<value>;...

 For above caps:

   m=audio <udp port> RTP/AVP 96
   a=rtpmap:96 AMR/8000/1
   a=fmtp:96 octet-align=1;crc=0;robust-sorting=0;interleaving=0

 in RTSP, the SSRC is also sent.


TODO
----

- implement packing up to the MTU.
- discont events in the case of packet loss
- figure out the clocking.
- implement various RFCs dealing with different payload types. 
  (as modules?)
- Throw-out the the caps-nego & other session control things to the 
  Application Developer( App ), by turning rtcp work into, signals 
  in gstrtpsend & props/args in gstrtprecv.
  The App would then be free to use any sort of session control 
  protocal like RTSP.( done )


Relevant RFCs
-------------

3550 RTP: A Transport Protocol for Real-Time Applications. ( 1889 Obsolete )

2198 RTP Payload for Redundant Audio Data.
3119 A More Loss-Tolerant RTP Payload Format for MP3 Audio.

2793 RTP Payload for Text Conversation.

2032 RTP Payload Format for H.261 Video Streams.
2190 RTP Payload Format for H.263 Video Streams.
2250 RTP Payload Format for MPEG1/MPEG2 Video.
2343 RTP Payload Format for Bundled MPEG.
2429 RTP Payload Format for the 1998 Version of ITU-T Rec. H.263 Video
2431 RTP Payload Format for BT.656 Video Encoding.
2435 RTP Payload Format for JPEG-compressed Video.
3016 RTP Payload Format for MPEG-4 Audio/Visual Streams.
3047 RTP Payload Format for ITU-T Recommendation G.722.1.
3189 RTP Payload Format for DV (IEC 61834) Video.
3190 RTP Payload Format for 12-bit DAT Audio and 20- and 24-bit Linear Sampled Audio.
3389 Real-time Transport Protocol (RTP) Payload for Comfort Noise (CN)
2733 An RTP Payload Format for Generic Forward Error Correction.
2833 RTP Payload for DTMF Digits, Telephony Tones and Telephony
     Signals.
2862 RTP Payload Format for Real-Time Pointers.
3351 RTP Profile for Audio and Video Conferences with Minimal Control. ( 1890 Obsolete )
3555 MIME Type Registration of RTP Payload Formats.

2508 Compressing IP/UDP/RTP Headers for Low-Speed Serial Links.
1305 Network Time Protocol (Version 3) Specification, Implementation and Analysis.
3339 Date and Time on the Internet: Timestamps.
2246 The TLS Protocol Version 1.0
3546 Transport Layer Security (TLS) Extensions. ( Updates 2246 )

do we care?
-----------

2029 RTP Payload Format of Sun's CellB Video Encoding.

usefull
-------

http://www.iana.org/assignments/rtp-parameters