After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 678207 - lv2: port to GStreamer 1.0 and SLV2 to Lilv
lv2: port to GStreamer 1.0 and SLV2 to Lilv
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal enhancement
: 1.9.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2012-06-16 08:26 UTC by Alessio Treglia
Modified: 2016-05-15 21:55 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
lv2: Port filters to GStreamer 1.0 and use lilv instead of slv2 (70.39 KB, patch)
2016-02-29 10:45 UTC, Thibault Saunier
none Details | Review
lv2: Port filters to GStreamer 1.0 and use lilv instead of slv2 (65.83 KB, patch)
2016-02-29 10:48 UTC, Thibault Saunier
none Details | Review
lv2: Port filters to GStreamer 1.0 and use lilv instead of slv2 (65.54 KB, patch)
2016-03-05 12:31 UTC, Thibault Saunier
none Details | Review
lv2: Port filters to GStreamer 1.0 and use lilv instead of slv2 (65.65 KB, patch)
2016-03-27 10:48 UTC, Thibault Saunier
committed Details | Review

Description Alessio Treglia 2012-06-16 08:26:44 UTC
Hi,

SLV was abandoned upstream in favor of Lilv:

    http://drobilla.net/2011/04/29/slv2-is-dead-long-live-slv2/

Please port the code to the new the library or, at very least, drop SLV2 support.
Thanks for considering.
Comment 1 Stefan Sauer (gstreamer, gtkdoc dev) 2013-03-18 16:06:25 UTC
Alessio, are you going to work on it? Maybe it could be proposed as a google summer of code task.
Comment 2 Alessio Treglia 2013-03-18 16:58:55 UTC
I'm unsure about the amount of time I could spare on this, so please go ahead.
Comment 3 Thibault Saunier 2016-02-29 10:45:17 UTC
Created attachment 322645 [details] [review]
lv2: Port filters to GStreamer 1.0 and use lilv instead of slv2

Properly separate files as we will not have only one single base class
for all elements as we used to with 0.10, but the same way it is done
with ladspa, we subclass GstAudioFilter, GstBaseSource etc...
Comment 4 Thibault Saunier 2016-02-29 10:48:40 UTC
Created attachment 322646 [details] [review]
lv2: Port filters to GStreamer 1.0 and use lilv instead of slv2

Properly separate files as we will not have only one single base class
for all elements as we used to with 0.10, but the same way it is done
with ladspa, we subclass GstAudioFilter, GstBaseSource etc...
Comment 5 Thibault Saunier 2016-03-05 12:31:28 UTC
Created attachment 323148 [details] [review]
lv2: Port filters to GStreamer 1.0 and use lilv instead of slv2

Properly separate files as we will not have only one single base class
for all elements as we used to with 0.10, but the same way it is done
with ladspa, we subclass GstAudioFilter, GstBaseSource etc...
Comment 6 Stefan Sauer (gstreamer, gtkdoc dev) 2016-03-25 18:26:59 UTC
Awesome, configure needs a rebase, but tries the first few plugins in buzztrax and they worked.
Comment 7 Stefan Sauer (gstreamer, gtkdoc dev) 2016-03-27 10:18:36 UTC
Review of attachment 323148 [details] [review]:

Looks good already. I would be nice to submit and iterate. Are you goign to also do the generators and do you want me to implement them?

::: ext/lv2/gstlv2filter.c
@@ +192,3 @@
+}
+
+#if 0

why is this disabled? Could you add a FIXME: comment? Or is it related to the disabled code in gst_lv2_filter_setup()?

@@ +410,3 @@
+gst_lv2_filter_deinterleave_data (guint n_channels, gfloat * outdata,
+    guint samples, gfloat * indata)
+{

Can't we use the deinterleaved packing in the caps, or add a TODO for it?

@@ +452,3 @@
+  lv2_group = &lv2_class->in_group;
+
+  in = g_new0 (gfloat, nframes);

maybe special case channels=1 where we don't need extra in/out buffers and deinterleave/interleave calls.

@@ +657,3 @@
+    g_free (ret);
+    ret = nret;
+  }

we should consider starting some bridge-utils library in base that has this code.

@@ +824,3 @@
+
+  /* FIXME: not needed anymore when we can add pad templates, etc in class_init
+   * as class_data contains the LADSPA_Descriptor too */

state comment?
Comment 8 Thibault Saunier 2016-03-27 10:29:20 UTC
Review of attachment 323148 [details] [review]:

::: ext/lv2/gstlv2filter.c
@@ +410,3 @@
+gst_lv2_filter_deinterleave_data (guint n_channels, gfloat * outdata,
+    guint samples, gfloat * indata)
+{

Indeed, adding a TODO

@@ +452,3 @@
+  lv2_group = &lv2_class->in_group;
+
+  in = g_new0 (gfloat, nframes);

Yeah, for mono it is a bit useless, we should do it in LADSPA too I think we have the same unoptimized behaviour.

@@ +657,3 @@
+    g_free (ret);
+    ret = nret;
+  }

Possible, not sure it is a big deal though.

@@ +824,3 @@
+
+  /* FIXME: not needed anymore when we can add pad templates, etc in class_init
+   * as class_data contains the LADSPA_Descriptor too */

I just let that comment as it was, I am not sure I understand the idea.
Comment 9 Thibault Saunier 2016-03-27 10:48:13 UTC
Created attachment 324833 [details] [review]
lv2: Port filters to GStreamer 1.0 and use lilv instead of slv2

Properly separate files as we will not have only one single base class
for all elements as we used to with 0.10, but the same way it is done
with ladspa, we subclass GstAudioFilter, GstBaseSource etc...
Comment 10 Thibault Saunier 2016-03-27 17:34:48 UTC
Attachment 324833 [details] pushed as c32e74f - lv2: Port filters to GStreamer 1.0 and use lilv instead of slv2
Comment 11 Thibault Saunier 2016-03-27 17:40:52 UTC
Reopenning so we can keep track of the source/generator element in here.
Comment 12 Stefan Sauer (gstreamer, gtkdoc dev) 2016-05-15 20:20:10 UTC
Sources are in. Over the next days, I'll add:
* registry caching
* more extensions
* more port types (especially for sources we need CV and Events)

I won't do sinks for now.
Comment 13 Stefan Sauer (gstreamer, gtkdoc dev) 2016-05-15 21:55:02 UTC
Registry cache done.

commit 1c83ce7a96fcfafbe53c8701343970d5f700c1fb
Author: Stefan Sauer <ensonic@users.sf.net>
Date:   Sun May 15 14:45:15 2016 -0700

    lv2: add registry caching
    
    Use the plugin_cache extra data to avoid introspecting over and over again.