GNOME Bugzilla – Bug 623318
[playbin2] If source setup fails the old uridecodebin is kept and breaks future playback
Last modified: 2010-11-04 21:23:00 UTC
+++ This bug was initially created as a clone of Bug #505770 +++ Due to the change in bug #505770 a bug in playbin2 was exposed. When the source setup failed in playbin2, the failing group is not deactivated, which means that the failing uridecodebin will still be a child of playbin2 and that the signals are still connected. Future state changes affect the old, failed uridecodebin and will then cause signal emission, which then will confuse playbin2 or even worse, cause crashes and assertions.
Created attachment 165048 [details] [review] playbin2: If setup of the source element fails in READY->PAUSED deactive the current group Otherwise the uridecodebin will be still a child of playbin2 and its signals will still be connected. In future state changes this will then emit unrelated signals that will confuse playbin2 or, even worse, cause crashes and assertions. Fixes bug #623318.
Looks good to me.
Looks good and works well for me, thanks. Let's get it in. I'm not sure I fully understand how the change from bug #505770 exposes this bug exactly though - can anyone explain (does anyone know)?
I think it happens because the old uridecodebin posts an error message on the bus and in the GstElement/GstBin state change function of playbin2 the error message causes a state change failure now. The assertion on g_object_get(uridecodebin, ...) with uridecodebin==NULL should've happened previously too and the application probably got an error message from the broken uridecodebin too... but I didn't check this.
commit bc0eefaeada3aef3c73db1a270af641253d32f33 Author: Sebastian Dröge <sebastian.droege@collabora.co.uk> Date: Thu Jul 1 21:21:38 2010 +0200 playbin2: If setup of the source element fails in READY->PAUSED deactive the Otherwise the uridecodebin will be still a child of playbin2 and its signals will still be connected. In future state changes this will then emit unrelated signals that will confuse playbin2 or, even worse, cause crashes and assertions. Fixes bug #623318.
*** Bug 626340 has been marked as a duplicate of this bug. ***
*** Bug 634022 has been marked as a duplicate of this bug. ***