GNOME Bugzilla – Bug 327197
Sound Juicer with Gst-0.10 segfaults
Last modified: 2006-01-31 10:22:47 UTC
Sound juicer CVS using gst-0.10 segfaults. It looks to be on song change. trace bellow: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread -1233425504 (LWP 29143)] 0x003b1482 in gst_collect_pads_event (pad=0x968e358, event=0x95e9ac8) at gstcollectpads.c:619 619 GST_DEBUG ("Got %s event on pad %s:%s", GST_EVENT_TYPE_NAME (event), (gdb) apply thread all bt Undefined command: "apply". Try "help". (gdb) thread apply all bt
+ Trace 65253
Thread 3 (Thread -1233425504 (LWP 29143))
Backtrace on Ubuntu: 0xb6c012b3 619 GST_DEBUG ("Got %s event on pad %s:%s", GST_EVENT_TYPE_NAME (event), (gdb) bt
+ Trace 65365
This seems to be a bug in the ogg muxer GStreamer element not clearing all state properly. I guess we're all encoding to OGG formats. Rebuilding the pipeline between tracks by uncommenting line 204 in sj-extractor.c fixes it here, or not using OGG profiles, which is less good. I'll work on fixing it in GStreamer, but it will need a gst-plugins-base release.
I've uncommented line 204 again in CVS.
Created attachment 57707 [details] [review] partial fix for reuse of oggmux This alleviates the bug in GStreamer, in conjunction with a commit to CVS core just now. oggmux is still not going to work properly for being used multiple times to mux video+audio, but it'll work ok for SJ's use case. Wim/MikeS will want to review this patch.
Fixed in CVS core: * libs/gst/base/gstcollectpads.c: (gst_collect_pads_is_collected): Don't loop infinitely if there are no buffers to present. Partially fixes #327197, but collectpads is just broken for reusing elements to do multiple encodes atm. Fix in gst-plugins-base with bug #329326. Fixes will be in 0.10.3 of core and 0.10.3 of gst-plugins-base.