webrtcsink: Port to the 'webrtcsrc' signaller object/interface take 2
Supersedes !1119 (closed)
commit 92b7c226
webrtcsink: privatise the 'shutdown' function
The functionality is now access through the relevant signal instead.
commit 6c2557c8
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.
commit cc9de595
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.
commit cbf23505
webrtcsink: expose signaller as a property
in the process move the signaller field to the settings struct
commit 7abf2af2
Author: Thibault Saunier tsaunier@igalia.com
webrtcsink: Port to the 'webrtcsrc' signaller object/interface
With contributions from:
Matthew Waters <matthew@centricular.com>