urisourcebin: Refactor ChildSrcPadInfo and OutputSlot usage
authorEdward Hervey <edward@centricular.com>
Tue, 1 Nov 2022 08:49:39 +0000 (09:49 +0100)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Wed, 16 Nov 2022 14:01:46 +0000 (14:01 +0000)
commit5b41ea2fe81cc6667a3e6097e47ed6a15801277a
tree787a70d7f9877bf51210080959733b21288660c4
parentf42ca96ad91b4f867b80b3ff59d3219459d1fbed
urisourcebin: Refactor ChildSrcPadInfo and OutputSlot usage

Make an explicit topology/tree of structures:
* ChildSrcPadInfo is created for each source element source pad
* ChildSrcPadInfo contains the chain of optional elements specific to that
  pad (ex: typefind)
* A ChildSrcPadInfo links to one or more OutputSlot, which contain what is
  specific to the output (i.e. optional buffering and ghostpad)
* No longer use GObject {set|get}_data() functions to store those structures and
  instead make them explicit
* Pass those structures around explicitely in each function/callback

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>
subprojects/gst-plugins-base/gst/playback/gsturisourcebin.c