Skip to content

webrtc: Add LiveKit source element

Jordan Yelloz requested to merge jyelloz/gst-plugins-rs:livekit-webrtcsrc into main

This change adds a new webrtcsrc subclass element, livekitwebrtcsrc which can play streams from a single participant of a LiveKit server room using the signaller::producer-peer-id child property, similar to other webrtc source elements. The peer ID can be either the unique participant identity supplied by the user in their authentication token or the randomly generated identifier supplied by the server.

If signaller::producer-peer-id is not specified then the element will work in auto-subscribe mode and it will consume media from all peers in the room. In that case, the property signaller::excluded-producer-peer-ids=<id-a,id-b,etc> can be specified which will ignore streams from any peers specified in the list.

To make it work, the LiveKit signalling client was updated to support working in either producer mode or consumer mode. All of the functionality to support auto-subscription and exclusion of peers is implemented in the signalling client as well. These properties aren't yet hooked up to the source element but will be added in future merge requests.

Edited by Jordan Yelloz

Merge request reports