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 592946 - [playbin2] sink not disposing when trying to stop an avi playback during preroll
[playbin2] sink not disposing when trying to stop an avi playback during preroll
Status: RESOLVED INCOMPLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
0.10.24
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2009-08-24 19:44 UTC by Andreas Frisch
Modified: 2010-01-14 20:08 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
log of issue (38.76 KB, application/octet-stream)
2009-08-24 19:44 UTC, Andreas Frisch
  Details
test.c (1.55 KB, text/x-csrc)
2009-09-03 18:18 UTC, Sebastian Dröge (slomo)
  Details
playbin-dispose-sinks.diff (863 bytes, patch)
2009-09-03 18:22 UTC, Sebastian Dröge (slomo)
none Details | Review

Description Andreas Frisch 2009-08-24 19:44:32 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.
Comment 1 Sebastian Dröge (slomo) 2009-08-30 19:39:40 UTC
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 :)
Comment 2 Andreas Frisch 2009-08-30 20:14:22 UTC
yes, simply invoking a state change to NULL right after having it set to PLAYING is what i meant.
Comment 3 Sebastian Dröge (slomo) 2009-09-03 18:18:14 UTC
I can't confirm this here with the test application I'll attach soonish. Is there something different in your application?
Comment 4 Sebastian Dröge (slomo) 2009-09-03 18:18:45 UTC
Created attachment 142430 [details]
test.c
Comment 5 Sebastian Dröge (slomo) 2009-09-03 18:22:28 UTC
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 ;)
Comment 6 Sebastian Dröge (slomo) 2010-01-14 20:08:56 UTC
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!