diff --git a/gstlal-burst/gst/lal/gstlal_string_triggergen.c b/gstlal-burst/gst/lal/gstlal_string_triggergen.c index 99d795af798322cfca45705e70f51b82ed249da9..20ff613e99a7025db97eea7cc15365afdd44d6f6 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