Commit cf65c861 authored by Aaron Viets's avatar Aaron Viets

gstlal_compute_strain: Option to use timer in lal_insertgap to prevent...

gstlal_compute_strain:  Option to use timer in lal_insertgap to prevent pipeline from falling behind real time when running in low latency.
parent 8175ff10
Pipeline #73837 failed with stages
in 1 minute and 6 seconds
......@@ -269,6 +269,7 @@ compute_calib_factors_complex_caps = "audio/x-raw, format=Z128LE, rate=%d, chann
# Short cut names for a few other items that appear numerous times
input_frame_duration = int(InputConfigs["inputframeduration"])
wait_time = float(InputConfigs["waittime"]) if ("waittime" in InputConfigs and InputConfigs["datasource"] == "lvshm") else 0.0
filter_latency_factor = float(PipelineConfigs["filterlatency"])
demodulation_filter_time = int(TDCFConfigs["demodulationfiltertime"])
coherence_unc_threshold = float(TDCFConfigs["coherenceuncthreshold"])
......@@ -1140,7 +1141,7 @@ if DebuggingConfigs["pipelinegraphfilename"] != "None":
# Get everything hooked up and fill in discontinuities
for key, chan in zip(headkeys, channel_list):
head_dict[key] = calibration_parts.hook_up(pipeline, demux, chan[1], instrument, float(PipelineConfigs["bufferlength"]))
head_dict[key] = calibration_parts.hook_up(pipeline, demux, chan[1], instrument, float(PipelineConfigs["bufferlength"]), wait_time = wait_time)
# The DARM_ERR channel follows different paths if we're doing full vs. partial calibration
if CalibrationConfigs["calibrationmode"] == "Full":
......
......@@ -222,11 +222,11 @@ def write_graph(demux, pipeline, name):
# Common element combo functions
#
def hook_up(pipeline, demux, channel_name, instrument, buffer_length, element_name_suffix = ""):
def hook_up(pipeline, demux, channel_name, instrument, buffer_length, element_name_suffix = "", wait_time = 0):
if channel_name.endswith("UNCERTAINTY"):
head = mkinsertgap(pipeline, None, bad_data_intervals = [-1e35, -1e-35, 1e-35, 1e35], insert_gap = False, remove_gap = True, fill_discont = True, block_duration = int(1000000000 * buffer_length), replace_value = 1, name = "insertgap_%s%s" % (channel_name, element_name_suffix))
head = mkinsertgap(pipeline, None, bad_data_intervals = [-1e35, -1e-35, 1e-35, 1e35], insert_gap = False, remove_gap = True, fill_discont = True, block_duration = int(1000000000 * buffer_length), replace_value = 1, name = "insertgap_%s%s" % (channel_name, element_name_suffix), wait_time = int(1000000000 * wait_time))
else:
head = mkinsertgap(pipeline, None, bad_data_intervals = [-1e35, -1e-35, 1e-35, 1e35], insert_gap = False, remove_gap = True, fill_discont = True, block_duration = int(1000000000 * buffer_length), replace_value = 0, name = "insertgap_%s%s" % (channel_name, element_name_suffix))
head = mkinsertgap(pipeline, None, bad_data_intervals = [-1e35, -1e-35, 1e-35, 1e35], insert_gap = False, remove_gap = True, fill_discont = True, block_duration = int(1000000000 * buffer_length), replace_value = 0, name = "insertgap_%s%s" % (channel_name, element_name_suffix), wait_time = int(1000000000 * wait_time))
pipeparts.src_deferred_link(demux, "%s:%s" % (instrument, channel_name), head.get_static_pad("sink"))
return head
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment