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 154773 - [playbin] crashes trying to play short wave files (1 or 2 sec long)
[playbin] crashes trying to play short wave files (1 or 2 sec long)
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins
git master
Other Linux
: Normal blocker
: 0.8.7
Assigned To: GStreamer Maintainers
GStreamer Maintainers
: 159298 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2004-10-07 11:36 UTC by Stephane Loeuillet
Modified: 2005-01-04 11:09 UTC
See Also:
GNOME target: ---
GNOME version: 2.7/2.8


Attachments
guilty file (13.48 KB, audio/x-wav)
2004-10-07 11:37 UTC, Stephane Loeuillet
  Details
fix (2.32 KB, patch)
2005-01-03 17:43 UTC, Ronald Bultje
none Details | Review

Description Stephane Loeuillet 2004-10-07 11:36:16 UTC
guilty file : /usr/share/sounds/warning.wav (from gnome-sounds 2.0.0) =>
attaching it here later

symptoms :
  - does not play the file at all
  - tries to create lots of warparse elements (i stopped it while he was using
wavparse 536)

WARN  (0x8496308 - 304763:34:36.197563000)  GST_SCHEDULING(17741)
gstpad.c(3151):_invent_event: needed to invent a DISCONT 0x80b01c8 (no time) for
source:src => typefind:sink
WARN  (0x8496308 - 304763:34:36.254436000)        riffread(17741)
riff-read.c(182):gst_riff_read_use_event:<wavparse0> Unexpected discont - might
lose sync
WARN  (0x8496308 - 304763:34:36.257132000)  GST_SCHEDULING(17741)
gstpad.c(3145):_invent_event: needed to invent a DISCONT 0x80b0110 (time 0) for
wavparse0:src => preroll_src0:sink
WARN  (0x8496308 - 304763:34:36.257624000)        wavparse(17741)
gstwavparse.c(583):gst_wavparse_other:<wavparse0> could not peek head
WARN  (0x8496308 - 304763:34:36.333745000)        wavparse(17741)
gstwavparse.c(583):gst_wavparse_other:<wavparse0> could not peek head
WARN  (0x8496308 - 304763:34:36.346513000)  GST_SCHEDULING(17741)
gstpad.c(3151):_invent_event: needed to invent a DISCONT 0x80affa0 (no time) for
source:src => typefind:sink
WARN  (0x8496308 - 304763:34:36.347475000)        riffread(17741)
riff-read.c(182):gst_riff_read_use_event:<wavparse1> Unexpected discont - might
lose sync
WARN  (0x8496308 - 304763:34:36.348154000)  GST_SCHEDULING(17741)
gstpad.c(3145):_invent_event: needed to invent a DISCONT 0x80b0058 (time 0) for
wavparse1:src => preroll_src0:sink

(totem:17741): GStreamer-WARNING **: element internal_thread claimed
state-change success,but state didn't change to PLAYING. State is PAUSED
(NONE_PENDING
pending), fix the element
WARN  (0x8496308 - 304763:34:36.351193000)        wavparse(17741)
gstwavparse.c(583):gst_wavparse_other:<wavparse1> could not peek head

...

up to ...<wavparse536>... when i ctrl+c it


leroutier@leroutier58 ~ $ file /usr/share/sounds/warning.wav
/usr/share/sounds/warning.wav: RIFF (little-endian) data, WAVE audio, Microsoft
PCM, 16 bit, mono 44100 Hz

i have no problem playing other files of the same type
Comment 1 Stephane Loeuillet 2004-10-07 11:37:00 UTC
Created attachment 32324 [details]
guilty file
Comment 2 Stephane Loeuillet 2004-10-07 11:40:31 UTC
i had those warnings using :

totem --gst-debug-level=2 /usr/share/sounds/card_shuffle.wav
Comment 3 Stephane Loeuillet 2004-10-07 11:57:59 UTC
i've got this infinite loop thing with other files. some play before the loop,
some don't output any sound

/usr/share/sounds/email.wav
/usr/share/sounds/error.wav
/usr/share/sounds/generic.wav
/usr/share/sounds/info.wav
...
/usr/share/sounds/gnomemeeting/busytone.wav

i don't know if wavparse or totem is to blame
Comment 4 Stephane Loeuillet 2004-10-07 11:59:28 UTC
in comment #2, replace "card_shuffle.wav" by "warning.wav"

because in fact, card_shuffle.wav is the only one that doesn't do an infinite
loop in that directory
Comment 5 Ronald Bultje 2004-12-17 00:14:37 UTC
*** Bug 159298 has been marked as a duplicate of this bug. ***
Comment 6 Ronald Bultje 2004-12-17 00:22:37 UTC
WARN  (0x8496308 - 304763:34:36.333745000)        wavparse(17741)
gstwavparse.c(583):gst_wavparse_other:<wavparse0> could not peek head

That warning probably has something to do with it.

DEBUG (0x9c955d8 - 306456:20:29.693343000)        wavparse(11711)
gstwavparse.c(746):gst_wavparse_loop:<wavparse6> read 4096 bytes, got 4096 bytes
DEBUG (0x9c955d8 - 306456:20:29.694394000)        wavparse(11711)
gstwavparse.c(746):gst_wavparse_loop:<wavparse6> read 4096 bytes, got 4096 bytes
DEBUG (0x9c955d8 - 306456:20:29.694927000)        wavparse(11711)
gstwavparse.c(746):gst_wavparse_loop:<wavparse6> read 4096 bytes, got 4096 bytes
DEBUG (0x9c955d8 - 306456:20:29.695286000)        wavparse(11711)
gstwavparse.c(746):gst_wavparse_loop:<wavparse6> read 1472 bytes, got 1472 bytes

That's all it does for such a small file. The file is barely 16k, so this is
correct. It just ends before we can say hi. Playbin should handle that. All I
can say now is that it's probably a GstThread tread-safety issue. I can't
explain it otherwise.
Comment 7 Ronald Bultje 2005-01-03 17:43:10 UTC
Created attachment 35394 [details] [review]
fix

* signal no-more-pads
* make playbin only emit EOS on end-of-*playback*, not eos-in-preroll

The combination makes Totem play short wave files correctly.
Comment 8 Thomas Vander Stichele 2005-01-04 11:09:42 UTC
commited to cvs