From ed2d2662d31e7b32968b8fd1f5e7d1d4704d8c14 Mon Sep 17 00:00:00 2001
From: Daichi Tsuna <daichi.tsuna@ligo.org>
Date: Mon, 11 Mar 2019 00:17:19 -0700
Subject: [PATCH] lal_string_triggergen: move safety check

Set_caps seems to be executed *after* start, so in the previous commit audio_info will not be updated before the safety check and stumbles there. After this fix things seem to be going, and a sane value for chisq is obtained.
---
 gstlal-burst/gst/lal/gstlal_string_triggergen.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/gstlal-burst/gst/lal/gstlal_string_triggergen.c b/gstlal-burst/gst/lal/gstlal_string_triggergen.c
index 5640403a25..226949518b 100644
--- a/gstlal-burst/gst/lal/gstlal_string_triggergen.c
+++ b/gstlal-burst/gst/lal/gstlal_string_triggergen.c
@@ -367,8 +367,14 @@ static gboolean set_caps(GstBaseTransform *trans, GstCaps *incaps, GstCaps *outc
 	GSTLALStringTriggergen *element = GSTLAL_STRING_TRIGGERGEN(trans);
 	gboolean success = gst_audio_info_from_caps(&element->audio_info, incaps);
 
-	if(success)
+	if(success) {
+		if(GST_AUDIO_INFO_CHANNELS(&element->audio_info) != element->num_templates) {
+			GST_ELEMENT_ERROR(trans, CORE, NEGOTIATION, (NULL), ("number of channels %d is not equal to number of templates %d", GST_AUDIO_INFO_CHANNELS(&element->audio_info), element->num_templates));
+			success = FALSE;
+		}
 		g_object_set(element->adapter, "unit-size", GST_AUDIO_INFO_BPF(&element->audio_info), NULL);
+	}
+
 
 	/*
 	 * done
@@ -391,9 +397,6 @@ static gboolean start(GstBaseTransform *trans)
 	if(!element->bank) {
 		GST_ELEMENT_ERROR(trans, CORE, NEGOTIATION, (NULL), ("no template bank"));
 		success = FALSE;
-	} else if(GST_AUDIO_INFO_CHANNELS(&element->audio_info) != element->num_templates) {
-		GST_ELEMENT_ERROR(trans, CORE, NEGOTIATION, (NULL), ("number of channels is not equal to number of templates"));
-		success = FALSE;
 	} else {
 		for(i=0; i < element->num_templates; i++) {
 			/*
-- 
GitLab