GNOME Bugzilla – Bug 534331
race in decodebin when changing states while the internal fakesink is removed
Last modified: 2008-05-22 11:59:36 UTC
Hi, When at the time decodebin removes its internal fakesink a state change is done the fakesink might just be asked to change state just before being removed from the decodebin causing a very nice: GStreamer-CRITICAL **: Trying to dispose element fakesink, but it is not in the NULL state. You need to explicitly set elements to the NULL state before dropping the final reference, to allow them to clean up. Will attach a fix
Created attachment 111333 [details] [review] Lock the fakesink state before changing it to NULl and removing it
or even better, do like decodebin2 and get rid of the fakesink altogether!
But that would mean i'd have to remove a lot of code and forces me to decipher the logic of the element :)
I know what you mean :)
Patch by: Sjoerd Simons <sjoerd at luon dot net> * gst/playback/gstdecodebin.c: (remove_fakesink): Lock the fakesink before setting the state to NULL and removing it from the bin so that a concurrent state change cannot interfere. Fixes #534331.