mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-30 21:51:09 +00:00
f9d2e49e40
Original commit message from CVS: * gst/rtp/README: Say something about case-sensitivity of caps vs mime-attributes. * gst/rtp/Makefile.am: * gst/rtp/gstrtp.c: (plugin_init): * gst/rtp/gstrtpamrpay.c: (gst_rtp_amr_pay_class_init), (gst_rtp_amr_pay_handle_buffer): * gst/rtp/gstrtpmp4gpay.c: (gst_rtp_mp4g_pay_get_type), (gst_rtp_mp4g_pay_base_init), (gst_rtp_mp4g_pay_class_init), (gst_rtp_mp4g_pay_init), (gst_rtp_mp4g_pay_finalize), (gst_rtp_mp4g_pay_new_caps), (gst_rtp_mp4g_pay_setcaps), (gst_rtp_mp4g_pay_flush), (gst_rtp_mp4g_pay_handle_buffer), (gst_rtp_mp4g_pay_set_property), (gst_rtp_mp4g_pay_get_property), (gst_rtp_mp4g_pay_plugin_init): * gst/rtp/gstrtpmp4gpay.h: Added beginnings of mpeg4-generic payloader (RFC 3640)
132 lines
4.6 KiB
Text
132 lines
4.6 KiB
Text
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, 127]
|
|
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.
|
|
|
|
The optional parameters in the SDP fields are case insensitive. In the caps we
|
|
always use the lowercase names so that the SDP -> caps mapping remains
|
|
possible.
|
|
|
|
|
|
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
|