[Bug 650750] Allow one to use GEGL to manipulate video

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon May 23 03:39:55 PDT 2011


https://bugzilla.gnome.org/show_bug.cgi?id=650750
  GStreamer | gst-plugins-bad | git

Sebastian Dröge <slomo> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #188305|none                        |needs-work
             status|                            |

--- Comment #3 from Sebastian Dröge <slomo at circular-chaos.org> 2011-05-23 10:39:48 UTC ---
Review of attachment 188305:
 --> (https://bugzilla.gnome.org/review?bug=650750&attachment=188305)

::: ext/Makefile.am
@@ +161,3 @@
     $(TAGLIB_DIR) \
+    $(WAVPACK_DIR) \
+    $(GEGL_DIR)

Wrong indention

@@ +184,3 @@
     taglib \
+    wavpack \
+    gegl

Same here

::: ext/gegl/Makefile.am
@@ +3,3 @@
+
+libgstgegl_la_SOURCES = gstgegl.c gstgeglfilter.c
+libgstgegl_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS)$(GST_BASE_CFLAGS)
$(GST_CFLAGS) $(GEGL_CFLAGS)

There's a space missing between the gst-plugins-base and base CFLAGS

@@ +4,3 @@
+libgstgegl_la_SOURCES = gstgegl.c gstgeglfilter.c
+libgstgegl_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS)$(GST_BASE_CFLAGS)
$(GST_CFLAGS) $(GEGL_CFLAGS)
+libgstgegl_la_LIBADD = $(GST_LIBS) $(GST_PLUGINS_BASE_LIBS)
-lgstvideo-$(GST_MAJORMINOR) $(GST_LIBS) $(GEGL_LIBS)

Remove the GST_LIBS from the beginning and only keep the second

::: ext/gegl/gstgeglfilter.c
@@ +52,3 @@
+Set pads dynamically based on the formats that Babl supports
+Support a more GStreamer native type, like YUV420 in Gegl/Babl
+*/

Which other formats are supported by Gegl/Babl? But yes, support for them would
be great too but that can happen later :)

@@ +111,3 @@
+  Babl *format = babl_format ("RGBA u8");
+
+  // Push buffer to GEGL

Don't use C++/C99 comments

@@ +113,3 @@
+  // Push buffer to GEGL
+  gegl_buffer_set (self->buffer, &roi, format,
+      GST_BUFFER_DATA (buf), GEGL_AUTO_ROWSTRIDE);

You should use the GStreamer rowstride here, look at libgstvideo (especially
video.h) for how to get the rowstride and other information from caps

@@ +116,3 @@
+
+  // Get result back from GEGL
+  if (self->input_node) {

Shouldn't there always be an input node?

@@ +134,3 @@
+      if (self->input_node)
+        g_object_unref (self->input_node);
+      self->input_node = g_value_dup_object (value);

Shouldn't this be protected with the object lock too? And then take the object
lock in transform_ip and set_caps when changing something in one of the gegl
nodes.

@@ +193,3 @@
+
+  trans_class->set_caps = gst_gegl_filter_set_caps;
+  trans_class->transform_ip = gst_gegl_filter_transform_ip;

Use = GST_DEBUG_FUNCPTR (gst_gegl_filter_transform_ip) here and for setcaps

@@ +206,3 @@
+  pspec = g_param_spec_object ("input-node",
+      "Input node",
+      "Gegl node to take input from.", GEGL_TYPE_NODE, G_PARAM_READWRITE);

Use G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS here

@@ +217,3 @@
+  pspec = g_param_spec_object ("output-node",
+      "Output node", "Gegl node for the output.", GEGL_TYPE_NODE,
+      G_PARAM_READABLE);

And | G_PARAM_STATIC_STRINGS here too

@@ +225,3 @@
+gst_gegl_filter_init (GstGeglFilter * self, GstGeglFilterClass * klass)
+{
+  self->output_node = gegl_node ("gegl:buffer-source", NULL);

You should unref this in GObject::dispose

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list