From: Mark Wooding Date: Tue, 17 Apr 2018 21:23:07 +0000 (+0100) Subject: gremlin/gremlin.in: Add function for linking a sequence of elements. X-Git-Url: https://git.distorted.org.uk/~mdw/autoys/commitdiff_plain/0dbdd41c0fb4ff48ff4380c477a77c3198db3436?hp=483b52d0c2e2ab4a12fccf1a9af03b9e5a119738 gremlin/gremlin.in: Add function for linking a sequence of elements. Later versions of the Python GStreamer bindings lack a binding for `gst_element_link_many' -- because that would make things too easy or something -- so prepare by introducing and using a utility function. No functional change. --- diff --git a/gremlin/gremlin.in b/gremlin/gremlin.in index ce5492e..79c0ea9 100644 --- a/gremlin/gremlin.in +++ b/gremlin/gremlin.in @@ -714,6 +714,10 @@ def make_element(factory, name = None, **props): elt.set_properties(**props) return elt +def link_elements(elts): + "Link the elements ELTS together, in order." + GS.element_link_many(*elts) + class GStreamerProgressEyecandy (ProgressEyecandy): """ Provide amusement while GStreamer is busy doing something. @@ -827,7 +831,7 @@ class AudioIdentifier (object): elt.link_pads(pad.get_name(), sink, 'sink') dpaid = decoder.connect('pad-added', decoder_pad_arrived) me._pipe.add(source, decoder, sink) - GS.element_link_many(source, decoder) + link_elements([source, decoder]) ## Arrange to collect tags from the pipeline's bus as they're reported. ## If we reuse the pipeline later, we'll want different bus-message @@ -991,7 +995,7 @@ class AudioFormat (BaseFormat): elts = me.encoder_chain() bin = GS.Bin() bin.add(*elts) - GS.element_link_many(*elts) + link_elements(elts) bin.add_pad(GS.GhostPad('sink', elts[0].get_pad('sink'))) bin.add_pad(GS.GhostPad('src', elts[-1].get_pad('src'))) return bin @@ -1028,8 +1032,8 @@ class AudioFormat (BaseFormat): encoder = me.encoder() sink = make_element('filesink', 'sink', location = new) pipe.add(source, decoder, convert, encoder, sink) - GS.element_link_many(source, decoder) - GS.element_link_many(convert, encoder, sink) + link_elements([source, decoder]) + link_elements([convert, encoder, sink]) ## Some decoders (e.g., the AC3 decoder) include channel-position ## indicators in their output caps. The Vorbis encoder interferes with