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 623103 - matroskamux dispose error
matroskamux dispose error
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
0.10.23
Other Linux
: Normal normal
: 0.10.24
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2010-06-29 08:42 UTC by Tibor Kocsis
Modified: 2010-06-29 12:39 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Tibor Kocsis 2010-06-29 08:42:45 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
Comment 1 Tim-Philipp Müller 2010-06-29 08:49:29 UTC
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.
Comment 2 Mark Nauwelaerts 2010-06-29 10:56:42 UTC
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
Comment 3 Mark Nauwelaerts 2010-06-29 10:58:18 UTC
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
Comment 4 Levente Farkas 2010-06-29 12:25:08 UTC
will it be in good-0.10.24 or just 0.10.25?
Comment 5 Tim-Philipp Müller 2010-06-29 12:39:29 UTC
> 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).