[gst-devel] How to flush a bus when removing an element from a pipeline?

wl2776 wl2776 at gmail.com
Fri Apr 23 08:52:24 CEST 2010


My application adds an uridecodebin instance to the pipeline, and then
removes it, if the element doesn't go to the paused state (this can happen,
if a non-media file was supplied to the uridecodebin) and returns
GST_STATE_CHANGE_FAILURE.

I call 
gst_object_unref(uridecodebin_inst);
uridecodebin_inst=NULL;
after the removal.

And the problem is that my application sometimes crashes with the system
error message saying, it attempted writing to the location 0x0000010. Or,
the location 0xfeeefef6. 
I am using MS Visual Studio 2008, and the latter address is very close to
the 0xfeeefeee - the value, CRT fills the just released memory.
Call stack is useless, it contains only some addresses in the GLib DLL and
in windows system libraries.

I suspect, this is because the bus contains some messages related to the
recently removed uridecodebin.

How can I flush these messages or wait for finishing of all threads, related
to the element removal? 

-- 
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/How-to-flush-a-bus-when-removing-an-element-from-a-pipeline-tp2027847p2027847.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.




More information about the gstreamer-devel mailing list