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 441159 - Regression in state change handling
Regression in state change handling
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
git master
Other Linux
: Normal blocker
: 0.10.13
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2007-05-25 11:18 UTC by Jan Schmidt
Modified: 2007-05-25 15:37 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
testcase (2.61 KB, application/x-gzip)
2007-05-25 11:19 UTC, Jan Schmidt
  Details
possible patch (1.25 KB, patch)
2007-05-25 14:53 UTC, Wim Taymans
committed Details | Review

Description Jan Schmidt 2007-05-25 11:18:08 UTC
Attaching a sample that works with the previous release of GStreamer core, but fails to change state correctly with current CVS.

The problem seems to be caused by the fact that sinks are added to the pipeline as it is changing state, so it is initially not changing state asynchronously, but then has new elements added that are.
Comment 1 Jan Schmidt 2007-05-25 11:19:16 UTC
Created attachment 88790 [details]
testcase
Comment 2 Jan Schmidt 2007-05-25 11:24:45 UTC
of course, the example is flawed in the sense that it's creating a pipeline with poor sync and which uses the system clock because the pipeline hit PLAYING before the audio sink managed to get added... but it is a pipeline that used to get to play something and now doesn't.

Comment 3 Wim Taymans 2007-05-25 14:53:33 UTC
Created attachment 88802 [details] [review]
possible patch

This patch makes sure that the child bin stops after completing the async state change so that the parent can continue the state change to PLAYING.
Comment 4 Jan Schmidt 2007-05-25 15:22:02 UTC
Looks good. Please commit
Comment 5 Wim Taymans 2007-05-25 15:37:40 UTC
        * gst/gstbin.c: (bin_handle_async_done):
        Make sure that the child bin stops after completing the async state
        change so that the parent can continue the state change to PLAYING.
        Fixes #441159.