GNOME Bugzilla – Bug 154773
[playbin] crashes trying to play short wave files (1 or 2 sec long)
Last modified: 2005-01-04 11:09:42 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
Created attachment 32324 [details] guilty file
i had those warnings using : totem --gst-debug-level=2 /usr/share/sounds/card_shuffle.wav
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
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
*** Bug 159298 has been marked as a duplicate of this bug. ***
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.
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.
commited to cvs