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 564929 - Audiosink blocks if setcaps called while playing
Audiosink blocks if setcaps called while playing
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal blocker
: 0.10.22
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-12-17 22:32 UTC by Michael Smith
Modified: 2008-12-20 12:44 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Michael Smith 2008-12-17 22:32:57 UTC
If the format changes while an audiosink is playing, a deadlock occurs.

To reproduce, use the playbin2 gapless test program: gst/playback/test7 with two files of differing sample rates.

When it gets to the 2nd file, it deadlocks - gstaudiosink.c:425 is trying to join the audiosink thread, but the ringbuffer is still running and will never shut down.
Comment 1 Wim Taymans 2008-12-20 12:44:50 UTC
        * gst-libs/gst/audio/gstbaseaudiosink.c:
        (gst_base_audio_sink_setcaps):
        Pause the write thread before deactivating and releasing the ringbuffer
        to avoid a deadlock when we do gapless playback with different sample 
        rates in playbin2.  Fixes #564929.