Skip to content
Snippets Groups Projects

Plot horizon distance from ranking statistics

Merged ChiWai Chan requested to merge plot_psd_horizon into master
1 unresolved thread
1 file
+ 31
30
Compare changes
  • Side-by-side
  • Inline
+ 31
30
@@ -72,14 +72,20 @@ MessageType = Gst.MessageType
class Stream(object):
"""Class for building a GStreamer-based pipeline.
"""
thread_init = False
_thread_init = False
_has_elements = False
def __init__(self, name=None, mainloop=None, pipeline=None, handler=None, source=None, head=None):
# initialize threads if not set
if not self.thread_init:
if not self._thread_init:
GObject.threads_init()
Gst.init(None)
self.thread_init = True
self._thread_init = True
# register elements to stream if needed
if not self._has_elements:
for elem_name, elem in self._get_registered_elements().items():
self.register_element(elem_name)(elem)
# set up gstreamer pipeline
self.name = name if name else str(uuid.uuid1())
@@ -210,6 +216,28 @@ class Stream(object):
del buf
return Gst.FlowReturn.OK
@classmethod
def _get_registered_elements(cls):
"""Get all registered GStreamer elements.
"""
# set up plugin manager
manager = pluggy.PluginManager("gstlal")
manager.add_hookspecs(plugins)
# load elements
manager.register(pipeparts)
from gstlal.pipeparts import condition
manager.register(condition)
# add all registered plugins to registry
registered = {}
for plugin_name in manager.hook.elements():
for name, element in plugin_name.items():
registered[name] = element
return registered
class StreamHandler(simplehandler.Handler):
def __init__(self, *args, **kwargs):
@@ -238,30 +266,3 @@ class StreamHandler(simplehandler.Handler):
if message_name in self.callbacks[message.type]:
self.callbacks[message.type][message_name](message)
return False
def _get_registered_elements():
"""Get all registered GStreamer elements.
"""
# set up plugin manager
manager = pluggy.PluginManager("gstlal")
manager.add_hookspecs(plugins)
# load elements
manager.register(pipeparts)
from gstlal.pipeparts import condition
manager.register(condition)
# add all registered plugins to registry
registered = {}
for plugin_name in manager.hook.elements():
for name, element in plugin_name.items():
registered[name] = element
return registered
# register elements to Stream class
for elem_name, elem in _get_registered_elements().items():
Stream.register_element(elem_name)(elem)
Loading