From 4c21aa9d1c4bcdbc57bf8ddf6be3820584f825b7 Mon Sep 17 00:00:00 2001
From: Daichi Tsuna <daichi.tsuna@ligo.org>
Date: Sun, 16 Jun 2019 23:07:09 -0700
Subject: [PATCH] string_triggergen.c: gap treatment

currently making it the same procedure as when the buffer is non-gap but not enough samples (< autocorrelation_length), like itac
---
 .../gst/lal/gstlal_string_triggergen.c        | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/gstlal-burst/gst/lal/gstlal_string_triggergen.c b/gstlal-burst/gst/lal/gstlal_string_triggergen.c
index 99d795af79..20ff613e99 100644
--- a/gstlal-burst/gst/lal/gstlal_string_triggergen.c
+++ b/gstlal-burst/gst/lal/gstlal_string_triggergen.c
@@ -505,10 +505,23 @@ static GstFlowReturn transform(GstBaseTransform *trans, GstBuffer *inbuf, GstBuf
 		g_assert_cmpuint(GST_BUFFER_PTS(inbuf), ==, gst_audioadapter_expected_timestamp(element->adapter));
 	element->next_in_offset = GST_BUFFER_OFFSET_END(inbuf);
 
-	gst_buffer_ref(inbuf);
-	gst_audioadapter_push(element->adapter, inbuf);
+	/*
+	 * gap logic
+	 */
 
-	result = trigger_generator(element, outbuf);
+	if (!GST_BUFFER_FLAG_IS_SET(inbuf, GST_BUFFER_FLAG_GAP)) {
+		/* not gaps */
+		gst_buffer_ref(inbuf);
+		gst_audioadapter_push(element->adapter, inbuf);
+		result = trigger_generator(element, outbuf);
+	} else {
+		/* gaps */
+		GST_BUFFER_PTS(outbuf) = element->t0;
+		GST_BUFFER_DURATION(outbuf) = 0;
+		/* we get no triggers, so outbuf offset is unchanged */
+		GST_BUFFER_OFFSET_END(outbuf) = GST_BUFFER_OFFSET(outbuf);
+		result = GST_FLOW_OK;
+	}
 
 	/*
 	 * done
-- 
GitLab