in awstreamer/gst_pipeline/stream_graph.py [0:0]
def compile(self, pipeline):
'''
Compiles the graph to the pipeline: adds elements from the graph and links them
'''
# Add elements
for k,v in self.items():
if not v.enabled:
logger.info("Disabled: %s" % k)
continue
logger.info("Adding: %s" % k)
pipeline.add(v.elem)
# Link elements
prev = None
graph_str = ""
for k,v in self.items():
if not v.enabled:
continue
if prev is not None:
if prev.linkable is None:
logger.info("Not linking plugin '%s'. Do so manually." % prev.name)
graph_str += " \n\t%s-> " % u'\u2514'
elif prev.linkable:
prev.elem.link(v.elem)
graph_str += " --> "
if isinstance(prev.linkable, str):
prev.elem.link(self[prev.linkable])
graph_str += " \n\t%s-> " % u'\u2514'
else:
logger.info("Plugin '%s' will be linked to '%s' on new pad added." % (prev.name, k))
prev.elem.connect("pad-added", self.callbacks["on_pad_added"], v.elem)
graph_str += " ~~> "
prev = v
graph_str += "%s [%s]" % (k, v.factory_name)
logger.info(graph_str)