GNOME Bugzilla – Bug 592946
[playbin2] sink not disposing when trying to stop an avi playback during preroll
Last modified: 2010-01-14 20:08:56 UTC
Created attachment 141594 [details] log of issue while the avi indices are being parsed on an avi playbin2 playback, the sink elements are brought into READY state. when trying to stop the pipeline in this state, gstreamer throws this critical: (enigma2:3226): GStreamer-CRITICAL **: Trying to dispose element dvbvideosink0, 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. this can be worked around by testing the state in the dispose function of the sink but it could also be considered a playbin2 issue i guess since it doesn't occur with a manually plugged pipeline.
What do you mean with stopping the pipeline? Setting playbin2 back into NULL state? In any case playbin2 should set it's children states to NULL before disposing them but this is already handled by GstBin IIRC. Will take a look in the next days but it would help much if you could provide some sample code to reproduce this issue :)
yes, simply invoking a state change to NULL right after having it set to PLAYING is what i meant.
I can't confirm this here with the test application I'll attach soonish. Is there something different in your application?
Created attachment 142430 [details] test.c
Created attachment 142431 [details] [review] playbin-dispose-sinks.diff Just a random guess from the code... does this fix it for you? Not sure why the sinks are in NULL usually ;)
Closing this bug report as no further information has been provided. Please feel free to reopen this bug if you can provide the information asked for. Thanks!