From 0dbdd41c0fb4ff48ff4380c477a77c3198db3436 Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Tue, 17 Apr 2018 22:23:07 +0100 Subject: [PATCH 1/1] 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. --- gremlin/gremlin.in | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) 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 -- 2.11.0