GNOME Bugzilla – Bug 300339
assertion with gst_pad_relink_filtered
Last modified: 2005-04-23 16:31:36 UTC
Try the simple test case attached. I'm getting this assertion: (process:12014): GStreamer-CRITICAL **: gst_pad_link_prepare: assertion `GST_RPAD_PEER (realsrc) == NULL' failed btw, i'm using cvs from about a month ago. thaytan on irc told me to file a bug anyway
Created attachment 45174 [details] test case
This seems to work (tried in paused and playing state): pad2 = gst_pad_get_peer (pad); gst_pad_unlink (pad, pad2); gst_pad_link_filtered (pad, pad2, caps);
In line 2278/2279 of gstpad.c, it assumes pads are unlinked, which is invalid: g_return_val_if_fail (GST_RPAD_PEER (realsrc) == NULL, NULL); g_return_val_if_fail (GST_RPAD_PEER (realsink) == NULL, NULL); Commenting those two out should make it work. The weird thing is that _relink_filtered() is the only function calling that function containing those two assertions, so it may very well have been broken for a very long time already.
Ping, Luca, does my suggestion fix it?
yes, it seems to work fine. The test case now works :) I'm not using this code anymore in my application so i can't do a full test..