Merged requested to merge ystreet/gst-plugins-rs:webrtcsink-signaller-gobject into main
Supersedes !1119 (closed)
webrtcsink: privatise the 'shutdown' function The functionality is now access through the relevant signal instead.
webrtc/signaller: emit the relevant signals instead of the interface vtable In order to support the use case of an external user providing their own signalling mechanism, we want the signals to be used and only if nothing is connected, fallback to the default handling. Calling the interface vtable directly will bypass the signal emission entirely. Also ensure that the signals are defined properly for this case. i.e. 1. Signals the the application/external code is expected to emit are marked as an action signal. 2. Add accumulators to avoid calling the default class handler if another signal handler is connected.
webrtc/signaller: remove SignallableImplExt This pattern is used for subclassing and calling parent class/interface functions. However that is not useful for the signaller object. 1. The signals are the API contract and should instead be used by webrtcsrc/sink to ask or provide outside for/with information. 2. The default case (no signal attached)is instead handled by default class handlers that call directly using the relevant rust trait. No parent (GObject) vfuncs necessary.
webrtcsink: expose signaller as a property in the process move the signaller field to the settings struct
Author: Thibault Saunier email@example.com
webrtcsink: Port to the 'webrtcsrc' signaller object/interface With contributions from: Matthew Waters <firstname.lastname@example.org>