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 536258 - interleave doesn't close properly
interleave doesn't close properly
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other All
: Normal normal
: 0.10.8
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-06-02 14:49 UTC by Tristan Matthews
Modified: 2008-06-03 14:35 UTC
See Also:
GNOME target: ---
GNOME version: 2.21/2.22



Description Tristan Matthews 2008-06-02 14:49:02 UTC
Please describe the problem:
I have a pipeline with multichannel audio (6 or 8, both give the same result) being interleaved. From the command line, when I try to exit with ctrl-C, the program doesn't exit until I hit control-c again and also produces a low frequency sawtooth like sound until I exit. In a C program, when the pipeline should be destroyed it also hangs (my guess is some of the threads don't exit properly).Note that the same example in mono or 2 channel audio does NOT hang.

Steps to reproduce:
gst-launch-0.10 -v interleave name=i ! audioconvert ! queue ! jackaudiosink sync=false \
 audiotestsrc volume=0.5 freq=200 is-live=true ! audioconvert ! queue ! i. \
 audiotestsrc volume=0.1 freq=300 is-live=true ! audioconvert ! queue ! i. \
 audiotestsrc volume=0.1 freq=500 is-live=true ! audioconvert ! queue ! i. \
 audiotestsrc volume=0.1 freq=700 is-live=true ! audioconvert ! queue ! i. \
 audiotestsrc volume=0.1 freq=900 is-live=true ! audioconvert ! queue ! i. \
 audiotestsrc volume=0.4 freq=1100 is-live=true ! audioconvert ! queue ! i. \
 audiotestsrc volume=0.4 freq=1300 is-live=true ! audioconvert ! queue ! i. \
 audiotestsrc volume=0.4 freq=1400 is-live=true ! audioconvert ! queue ! i. \


Then try to exit with control-C.

Actual results:
It will hang as described with this message:

Caught interrupt -- handling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 894420256 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
/pipeline0/jackaudiosink0.sink: caps = NULL
/pipeline0/queue0.src: caps = NULL
/pipeline0/queue0.sink: caps = NULL
/pipeline0/audioconvert0.src: caps = NULL
/pipeline0/audioconvert0.sink: caps = NULL

until control-C is used again.

Expected results:
The program should exit normally and the audio should be killed.

Does this happen every time?
80% of the time (sometimes it does quit normally).

Other information:
Comment 1 Sebastian Dröge (slomo) 2008-06-03 14:35:47 UTC
2008-06-03  Sebastian Dröge  <slomo@circular-chaos.org>

        * gst/interleave/interleave.c: (gst_interleave_pad_get_type),
        (gst_interleave_change_state):
        Stop GstCollectPads before calling the parent's state change function
        when going from PAUSED to READY as we otherwise deadlock.
        Fixes bug #536258.