GNOME Bugzilla – Bug 641246
No checks for availabily of GNonLin at runtime
Last modified: 2011-02-08 15:45:04 UTC
The following command wedges the pipeline after throwing a few errors. I also tried with a mkv file and a mp4 file, with same resulsts. I have to press control C to stop the program. No screenshots are generated at all. I'm not 100% sure this command line is correct, I've not found any manpage or documentation apart from the --help screen. Latest git from git.freedesktop.org as of now. $ ./tools/ges-launch-0.10 -m 5 ~/Streams/fry.ogv 0 0 save_path: (null) load_path: (null) (lt-ges-launch-0.10:27458): GLib-GObject-WARNING **: invalid (NULL) pointer instance (lt-ges-launch-0.10:27458): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed (lt-ges-launch-0.10:27458): GLib-GObject-WARNING **: invalid (NULL) pointer instance (lt-ges-launch-0.10:27458): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed (lt-ges-launch-0.10:27458): GStreamer-CRITICAL **: gst_bin_add: assertion `GST_IS_ELEMENT (element)' failed (lt-ges-launch-0.10:27458): GLib-GObject-CRITICAL **: g_object_set: assertion `G_IS_OBJECT (object)' failed (lt-ges-launch-0.10:27458): GLib-GObject-WARNING **: invalid (NULL) pointer instance (lt-ges-launch-0.10:27458): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed (lt-ges-launch-0.10:27458): GLib-GObject-WARNING **: invalid (NULL) pointer instance (lt-ges-launch-0.10:27458): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed (lt-ges-launch-0.10:27458): GStreamer-CRITICAL **: gst_bin_add: assertion `GST_IS_ELEMENT (element)' failed (lt-ges-launch-0.10:27458): GLib-GObject-CRITICAL **: g_object_set: assertion `G_IS_OBJECT (object)' failed Adding file:///home/v/Streams/fry.ogv inpoint:0:00:00.000000000 duration:0:00:00.000000000 thumbnailing every 5.000000 seconds (lt-ges-launch-0.10:27458): GLib-GObject-CRITICAL **: g_object_set: assertion `G_IS_OBJECT (object)' failed (lt-ges-launch-0.10:27458): GLib-GObject-CRITICAL **: g_object_set: assertion `G_IS_OBJECT (object)' failed ^C
Works fine here. You can figure out where it crashes initially with : > ulimit -c unlimited > G_DEBUG=fatal_warnings ./tool.....
+ Trace 225815
175 self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, 176 GES_TYPE_TRACK, GESTrackPrivate); 177 178 self->priv->composition = gst_element_factory_make ("gnlcomposition", NULL); 179 180 g_signal_connect (self->priv->composition, "pad-added", 181 (GCallback) pad_added_cb, self); 182 g_signal_connect (self->priv->composition, "pad-removed", 183 (GCallback) pad_removed_cb, self); 184
You're missing gnonlin. Maybe ges_init() should check whether the gnonlin elements are available, and if not error out. Renaming the bug title accordingly.
Right, with gnonlin installed, it now works. Sorry I did not realize before :)
Created attachment 180288 [details] [review] ges: Check that the gnonlin elements are present at initialization time This avoids hanging with no obvious cause later when they're not.
Note that I made the required version 0.0.0, you may want to update those in case you know older versions are not suitable.
Review of attachment 180288 [details] [review]: Apart from the useless "multi-element-check", looks good. ::: ges/ges.c @@ +43,3 @@ + "gnloperation" + }; + for (i = 0; i < G_N_ELEMENTS (plugins); i++) { No need to check for all elements. Just checking for gnlcomposition will suffice. ::: ges/ges.h @@ +64,3 @@ G_BEGIN_DECLS +gboolean ges_init (void); Even though I don't like switching the API ... this shouldn't cause any problems (since noone was checking the return value previously)
Created attachment 180381 [details] [review] ges: Check that the gnonlin elements are present at initialization time This avoids hanging with no obvious cause later when they're not.
Commited with min gnl required version of 0.10.16 commit 857142a15d3a351ee4a0d621a55bd812ee26576c Author: Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> Date: Mon Feb 7 12:19:18 2011 +0000 ges: Check that the gnonlin elements are present at initialization time This avoids hanging with no obvious cause later when they're not. https://bugzilla.gnome.org/show_bug.cgi?id=641246