GNOME Bugzilla – Bug 623103
matroskamux dispose error
Last modified: 2010-06-29 12:39:29 UTC
Hi, I found a bug in the matroskamux, try this pipeline: gst-launch -e videotestsrc is-live=1 ! video/x-raw-yuv ! x264enc ! \ matroskamux ! filesink location="test1" videotestsrc is-live=1 ! \ video/x-raw-yuv ! x264enc ! matroskamux ! filesink location="test2" \ videotestsrc is-live=1 ! video/x-raw-yuv ! x264enc ! matroskamux ! \ filesink location="test3" videotestsrc is-live=1 ! video/x-raw-yuv \ ! x264enc ! matroskamux ! filesink location="test4" \ videotestsrc is-live=1 ! video/x-raw-yuv ! x264enc ! matroskamux ! \ filesink location="test5" videotestsrc is-live=1 ! video/x-raw-yuv \ ! x264enc ! matroskamux ! filesink location="test6" \ videotestsrc is-live=1 ! video/x-raw-yuv ! x264enc ! matroskamux ! \ filesink location="test7" videotestsrc is-live=1 ! \ video/x-raw-yuv ! x264enc ! matroskamux ! filesink \ location="test8" videotestsrc is-live=1 ! video/x-raw-yuv ! \ x264enc ! matroskamux ! filesink location="test9" When I press ctrl+c the following messages come: (gst-launch-0.10:20785): GStreamer-CRITICAL **: gst_object_replace: assertion `*oldobj == NULL || GST_IS_OBJECT (*oldobj)' failed (gst-launch-0.10:20785): GStreamer-CRITICAL **: gst_object_replace: assertion `*oldobj == NULL || GST_IS_OBJECT (*oldobj)' failed ... (for 4 or 5 times) GST_DEBUG=3 says: 0:00:03.817021404 20339 0x84c1050 INFO GST_REFCOUNTING gstelement.c:2835:gst_element_dispose:<matroskamux0> dispose 0:00:03.817036878 20339 0x84c1050 INFO GST_ELEMENT_PADS gstelement.c:816:gst_element_remove_pad:<matroskamux0> removing pad 'video_0' 0:00:03.817052653 20339 0x84c1050 INFO GST_ELEMENT_PADS gstelement.c:816:gst_element_remove_pad:<matroskamux0> removing pad 'src' 0:00:03.817068684 20339 0x84c1050 INFO GST_REFCOUNTING gstelement.c:2859:gst_element_dispose:<matroskamux0> parent class dispose (gst-launch-0.10:20339): GStreamer-CRITICAL **: gst_object_replace: assertion `*oldobj == NULL || GST_IS_OBJECT (*oldobj)' failed 0:00:03.817109435 20339 0x84c1050 INFO GST_REFCOUNTING gstelement.c:2890:gst_element_finalize:<matroskamux0> finalize 0:00:03.817125551 20339 0x84c1050 INFO GST_REFCOUNTING gstelement.c:2901:gst_element_finalize:<matroskamux0> finalize parent I tried the pipeline with matroskamux in gstreamer-plugins-good version 10.21 and it worked fine. So i guess it's a new bug. In an other application i use several matroskamux (switching recording files), and when i want to create a new muxer for the 4th time (always the 4th) it fails at the creation of the src pad, and the following errors come: (unknown:26703): GStreamer-CRITICAL **: gst_pad_new_from_template: assertion `GST_IS_PAD_TEMPLATE (templ)' failed (unknown:26703): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed (unknown:26703): GStreamer-CRITICAL **: gst_pad_set_event_function: assertion `GST_IS_PAD (pad)' failed (unknown:26703): GStreamer-CRITICAL **: gst_element_add_pad: assertion `GST_IS_PAD (pad)' failed I think the two bugs are caused by the same problem... Thanks in advance Tibor
I can reproduce this with the packages on debian sid (ie. latest releases), but not with git of things, so I guess it's been fixed at some point.
If I read the above pipeline right, there are multiple matroskamux instances in there, and I recall having had some problem with that. The following commit took care of that (and presumably also then this): commit 207996fbcd0af8793f4f1b174d9d3c3bb163d383 Author: Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> Date: Tue Jun 1 15:47:32 2010 +0200 matroskamux: _get_pad_template result needs no unref
Erm, make that following commit: commit 973c8ddfdf7a1657e850a2c9f95d7de3a4f5a9b8 Author: Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> Date: Tue Jun 1 15:47:32 2010 +0200 matroskamux: _get_pad_template result needs no unref
will it be in good-0.10.24 or just 0.10.25?
> will it be in good-0.10.24 or just 0.10.25? The 'target milestone' field will tell you which release it will be in. Also, you can easily find this out yourself using the git web interface or 'git show 973c8dd' in a git checkout (if the commit is there, it will be in the next release).