GNOME Bugzilla – Bug 556159
Reseting playbin's vis-plugin pauses the pipeline
Last modified: 2009-04-17 11:52:59 UTC
Setting playbin's vis-plugin property to None (in Python) affects the pipeline state (it becomes PAUSED). Apparently this is due to tee not correctly handling the flow aggregation in gst_tee_handle_buffer(). One part of the tee is unlinked (the vis-plugin) but the other part (audio output) is still linked so the flow should continue but it's not the case
A workaround is to manually unlink the pads like this (in Python): bin = pipeline.get_property('vis-plugin') pipeline.set_property('vis-plugin', None) bin.get_pad('sink').get_peer().unlink(bin.get_pad('sink'))
tee is fixed now but this doesn't seem to be the issue ;)
Some heads up, FWIW ;) So the bug is in playbin. If the play_bin->pending_visualisation is NULL the vis_bin is not removed from the pipeline and the sink pad of the vis element is not unlinked from the tee pad.
Could you attach a small test program that reproduces the issue? Is this still an issue with playbin2 (not sure how much we care about playbin1 tbh)?
Created attachment 132814 [details] test-case There you go.
Strangely the same script adapted to use playbin2 doesn't even show the window (but the pipeline is still paused)
With playbin2 resetting or even disabling the vis-plugin while PLAYING works just fine, just try it with totem trunk ;) To have the vis shown with playbin2 you must set the "vis" flag in the flags property.
(In reply to comment #7) > With playbin2 resetting or even disabling the vis-plugin while PLAYING works > just fine, just try it with totem trunk ;) > > To have the vis shown with playbin2 you must set the "vis" flag in the flags > property. > Ok I see the window now with playbin2 ;) But setting the vis-plugin property to None doesn't disable the visualization, I still see it. Good thing as you say is that playback is not paused.
Created attachment 132818 [details] test-case (for playbin2)
You must unset the "vis" flag again to disable visualizations.
Ok, so I don't mind this bug being closed as invalid if playbin is being deprecated.