def compile()

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)