diff options
author | Sanchayan Maity <sanchayan@asymptotic.io> | 2022-10-24 09:48:31 +0300 |
---|---|---|
committer | Sanchayan Maity <sanchayan@asymptotic.io> | 2022-12-05 08:34:45 +0300 |
commit | 6be57968886f0e3392c34a17cb5522b7eb517250 (patch) | |
tree | e09a1439435712e13e9185bfcf823ec74b5b5bf5 /docs | |
parent | 3172bcd0952a15a4dac0ab8276663d698a383451 (diff) |
Add a WebRTC WHEP source element
This implements WHEP specification based on
https://datatracker.ietf.org/doc/html/draft-murillo-whep-00
and has been tested with Cloudflare.
Server offers are likely to be removed from the WHEP specification
in upcoming revisions, to avoid compatibility issues. None of the
commercial services implementing WHEP support server initiated offers.
So we only support client side initiated offers.
Follows session setup and tear down as covered in Figure 1, Section 3
of the specification.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/949>
Diffstat (limited to 'docs')
-rw-r--r-- | docs/plugins/gst_plugins_cache.json | 157 |
1 files changed, 155 insertions, 2 deletions
diff --git a/docs/plugins/gst_plugins_cache.json b/docs/plugins/gst_plugins_cache.json index 89aefba9..c628fc7c 100644 --- a/docs/plugins/gst_plugins_cache.json +++ b/docs/plugins/gst_plugins_cache.json @@ -7748,8 +7748,145 @@ "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" }, "webrtchttp": { - "description": "GStreamer WebRTC Plugin for WebRTC HTTP protocols (WHIP)", + "description": "GStreamer WebRTC Plugin for WebRTC HTTP protocols (WHIP/WHEP)", "elements": { + "whepsrc": { + "author": "Sanchayan Maity <sanchayan@asymptotic.io>", + "description": "A bin to stream media using the WebRTC HTTP Egress Protocol (WHEP)", + "hierarchy": [ + "GstWhepSrc", + "GstBin", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "interfaces": [ + "GstChildProxy" + ], + "klass": "Source/Network/WebRTC", + "long-name": "WHEP Source Bin", + "pad-templates": { + "src_%%u": { + "caps": "application/x-rtp:\n", + "direction": "src", + "presence": "sometimes" + } + }, + "properties": { + "audio-caps": { + "blurb": "Governs what audio codecs will be proposed", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "audio/x-opus", + "mutable": "null", + "readable": true, + "type": "GstCaps", + "writable": true + }, + "auth-token": { + "blurb": "Authentication token to use, will be sent in the HTTP Header as 'Bearer <auth-token>'", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "null", + "readable": true, + "type": "gchararray", + "writable": true + }, + "ice-transport-policy": { + "blurb": "The policy to apply for ICE transport", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "all (0)", + "mutable": "null", + "readable": true, + "type": "GstRsWebRTCICETransportPolicy", + "writable": true + }, + "stun-server": { + "blurb": "The STUN server of the form stun://hostname:port", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "null", + "readable": true, + "type": "gchararray", + "writable": true + }, + "timeout": { + "blurb": "Value in seconds to timeout WHEP endpoint requests (0 = No timeout).", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "15", + "max": "3600", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + }, + "turn-server": { + "blurb": "The TURN server of the form turn(s)://username:password@host:port.", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "null", + "readable": true, + "type": "gchararray", + "writable": true + }, + "use-link-headers": { + "blurb": "Use link headers to configure ICE servers from the WHEP server response.", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "false", + "mutable": "null", + "readable": true, + "type": "gboolean", + "writable": true + }, + "video-caps": { + "blurb": "Governs what video codecs will be proposed", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "video/x-vp8; video/x-h264; video/x-vp9; video/x-h265", + "mutable": "null", + "readable": true, + "type": "GstCaps", + "writable": true + }, + "whep-endpoint": { + "blurb": "The WHEP server endpoint to POST SDP offer to. Example: http://localhost:7090/whep/endpoint/abc123", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "null", + "readable": true, + "type": "gchararray", + "writable": true + } + }, + "rank": "marginal" + }, "whipsink": { "author": "Taruntej Kanakamalla <taruntej@asymptotic.io>", "description": "A bin to stream media using the WebRTC HTTP Ingestion Protocol (WHIP)", @@ -7816,7 +7953,23 @@ }, "filename": "gstwebrtchttp", "license": "MPL", - "other-types": {}, + "other-types": { + "GstRsWebRTCICETransportPolicy": { + "kind": "enum", + "values": [ + { + "desc": "All: get both STUN and TURN candidate pairs", + "name": "all", + "value": "0" + }, + { + "desc": "Relay: get only TURN candidate pairs", + "name": "relay", + "value": "1" + }, + ] + }, + }, "package": "gst-plugin-webrtchttp", "source": "gst-plugin-webrtchttp", "tracers": {}, |