But I don’t know how to configure signaller. It seems that I need to pass a valid signaller when I make the webrtcsrc component, otherwise I’ve got an error.
You can remove the line webrtcsrc.set_property("signaller", signaller). The getter retrieves a reference to the signaller, so you don’t need to set it back.
However, you will need to connect a ‘pad-added’ handler for webrtcsrc to add the sink element and link it to the newly added (“sometimes”) pad.
Ok. I was doing that at first but I was not sure it did something. Because later on, this is not working (the error is logged). It fails whatever I connect to webrtcsrc.
if not Gst.Element.link(webrtcsrc, webrtcechoprobe):
self._logger.error("Failed to link webrtcsrc -> webrtcechoprobe")
The pads for webrtcsrc are “sometimes” pads because their availability depends on the incoming stream content. For instance, webrtcsrc will create an “audio” pad if an audio stream is present, etc. But this is not statically known, so you need to connect a handler to the “pad-added” signal which will be called back when a pad is added and where you can add and link the elements that will handle this particular stream.