def configure()

in awstreamer/gst_pipeline/stream_graph.py [0:0]


    def configure(self, k, v):
        '''
        Configure plugin k with values from dictionary v
        '''
        if k in list(self.keys()) and isinstance(v, dict):
            config_params = v.keys()
            plugin = self[k]

            # Set linkable property
            if "linkable" in v:
                logger.info("Setting property 'linkable' for plugin '%s' to a value: %s" % (k, v["linkable"]))
                self.get(k).linkable = v["linkable"]

            # Set enabled property
            if "enabled" in v:
                logger.info("Setting property 'enabled' for plugin '%s' to a value: %s" % (k, v["enabled"]))
                self.get(k).enabled = v["enabled"]

            # Connect signals
            if "signals" in v:
                logger.info("signals:")
                for signal, args in v["signals"].items():
                    logger.info("Connecting signal '%s' for plugin '%s' with args: %s" % (signal, k, args))
                    self[k].connect(signal, *args)

            # Add probes
            if "probes" in v:
                logger.info("probes:")
                for pad_name, callback in v["probes"].items():
                    logger.info("Connecting buffer probe for plugin '%s' to the pad: %s" % (k, pad_name))
                    pad = plugin.get_static_pad(pad_name)
                    if not pad:
                        logger.error("Unable to get %s pad of %s\n" % (pad_name, k))
                    else:
                        pad.add_probe(Gst.PadProbeType.BUFFER, self.callbacks["buffer_probe_callback"], callback)

            # Set plug-in properties
            if plugin is not None:
                props = plugin.list_properties()
                for p in props:
                    if p.name == "name":
                        continue
                    if p.name in config_params:
                        logger.info("Setting property '%s' for plugin '%s' to a value: %s" % (p.name, k, v[p.name]))
                        if p.name == "caps" and isinstance(v[p.name], str):
                            caps = Gst.caps_from_string(v[p.name])
                            plugin.set_property(p.name, caps)
                        else:
                            plugin.set_property(p.name, v[p.name])