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 556159 - Reseting playbin's vis-plugin pauses the pipeline
Reseting playbin's vis-plugin pauses the pipeline
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other All
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-10-13 15:42 UTC by Philippe Normand
Modified: 2009-04-17 11:52 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
test-case (637 bytes, text/plain)
2009-04-17 10:02 UTC, Philippe Normand
Details
test-case (for playbin2) (732 bytes, text/plain)
2009-04-17 11:18 UTC, Philippe Normand
Details

Description Philippe Normand 2008-10-13 15:42:45 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
Comment 1 Philippe Normand 2008-10-13 15:46:43 UTC
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'))

Comment 2 Sebastian Dröge (slomo) 2008-10-14 13:13:42 UTC
tee is fixed now but this doesn't seem to be the issue ;)
Comment 3 Philippe Normand 2008-10-16 12:55:43 UTC
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.
Comment 4 Tim-Philipp Müller 2009-04-16 19:13:59 UTC
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)?
Comment 5 Philippe Normand 2009-04-17 10:02:01 UTC
Created attachment 132814 [details]
test-case

There you go.
Comment 6 Philippe Normand 2009-04-17 10:06:58 UTC
Strangely the same script adapted to use playbin2 doesn't even show the window (but the pipeline is still paused)
Comment 7 Sebastian Dröge (slomo) 2009-04-17 10:35:09 UTC
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.
Comment 8 Philippe Normand 2009-04-17 11:16:38 UTC
(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.
Comment 9 Philippe Normand 2009-04-17 11:18:02 UTC
Created attachment 132818 [details]
test-case (for playbin2)
Comment 10 Sebastian Dröge (slomo) 2009-04-17 11:24:50 UTC
You must unset the "vis" flag again to disable visualizations.
Comment 11 Philippe Normand 2009-04-17 11:32:31 UTC
Ok, so I don't mind this bug being closed as invalid if playbin is being deprecated.