Skip to content

webrtcsink: add payloader-setup signal

I tried to make payloader-setup behave in the same way as encoder-setup. That is, by default the payloader is created without any changes to its properties and signaled to the application. The default configuration is only applied if none of the handlers had returned true.

My only concern here is that if any application handler did return true this could result in leaving webrtcsink in an invalid state, as the default handler takes care of adding TWCC extension, configuring payload mapping and so on, which may not be done by the application handler.

Maybe a part of this process, like extensions setup and payload mapping, needs to be done unconditionally, so that the application cannot stop webrtcsink from performing the necessary setup, while other properties (the ones that are set in configure_payloader for different factory types, for example) can be skipped if the application decides to override them and not let other handlers run by returning true from its callback.

Also, as for what I mentioned in gstreamer!5613 (comment 2157579): it's now possible, but a bit tricky: the thing is, the discovery pipeline stops when its sink element receives CAPS event, so in order to parse the original caps and then setup additional extensions based on that, the application probe needs to drop the original event, but pass the next caps, since adding the extensions would trigger reconfiguration and re-send new caps.

Anyway, I mentioned that in the docs for the signal, I'm just wondering if this could be implemented better for the sake of better user experience :)

Merge request reports