IterData idata;
gboolean done;
+ /* this get called recursively due to gst_iterator_foreach calling
+ * gst_pad_set_caps() */
+ if (adder->in_setcaps)
+ return TRUE;
+
GST_LOG_OBJECT (adder, "setting caps pad %p,%s to %" GST_PTR_FORMAT, pad,
GST_PAD_NAME (pad), caps);
idata.caps = caps;
idata.pad = pad;
+ adder->in_setcaps = TRUE;
done = FALSE;
while (!done) {
ires = gst_iterator_foreach (it, (GstIteratorForeachFunction) setcapsfunc,
break;
}
}
+ adder->in_setcaps = FALSE;
+
+ GST_LOG_OBJECT (adder, "handle caps changes on pad %p,%s to %" GST_PTR_FORMAT,
+ pad, GST_PAD_NAME (pad), caps);
if (!gst_audio_info_from_caps (&info, caps))
goto invalid_format;