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 142320 - [ffmpeg - ima-adpcm-ws/wsaud] scheduler issues
[ffmpeg - ima-adpcm-ws/wsaud] scheduler issues
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins
git master
Other Linux
: Normal critical
: 0.8.2
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks: 138435
 
 
Reported: 2004-05-11 07:52 UTC by Götz Waschk
Modified: 2004-12-22 21:47 UTC
See Also:
GNOME target: ---
GNOME version: 2.5/2.6


Attachments
strange Quicktime file (1.82 KB, application/octet-stream)
2004-05-11 07:53 UTC, Götz Waschk
Details
Chiptune (5.05 KB, application/octet-stream)
2004-05-12 13:00 UTC, Götz Waschk
Details

Description Götz Waschk 2004-05-11 07:52:32 UTC
Rhythmbox with the GStreamer backend crashes when I try to import a directory
containing the attached quicktime file. This is with the Mandrakelinux packages
of gstreamer 0.8.1 and rhythmbox 0.8.3.

gst-launch-ext-0.8 doesn't crash on this file. I have the following gstreamer
packages installed:
gstreamer-alsa-0.8.1-3mdk
gstreamer-audio-formats-0.8.1-3mdk
gstreamer-avi-0.8.1-3mdk
gstreamer-cdparanoia-0.8.1-3mdk
gstreamer-colorspace-0.8.1-3mdk
gstreamer-faad-0.8.1-2plf
gstreamer-ffmpeg-0.8.0-2mdk
gstreamer-flac-0.8.1-3mdk
gstreamer-GConf-0.8.1-3mdk
gstreamer-gnomevfs-0.8.1-3mdk
gstreamer-mad-0.8.1-3mdk
gstreamer-mpeg-0.8.1-3mdk
gstreamer-player-0.8.0-1mdk
gstreamer-plugins-0.8.1-3mdk
gstreamer-quicktime-0.8.1-3mdk
gstreamer-tools-0.8.1-1mdk
gstreamer-visualisation-0.8.1-3mdk
gstreamer-vorbis-0.8.1-3mdk
gstreamer-x11-0.8.1-3mdk
libgstgconf0.8-0.8.1-3mdk
libgstplayer0-0.8.0-1mdk
libgstreamer0.8-0.8.1-1mdk
libgstreamer0.8-devel-0.8.1-1mdk
libgstreamer-plugins0.8-0.8.1-3mdk
libgstreamer-plugins0.8-devel-0.8.1-3mdk
Comment 1 Götz Waschk 2004-05-11 07:53:37 UTC
Created attachment 27586 [details]
strange Quicktime file

This is a quicktime file from a saved band web page that happened to be in a
music folder.
Comment 2 Götz Waschk 2004-05-11 07:57:02 UTC
This is another file that makes rhythmbox crash when I try to import the folder it 
is in:
http://wwwra.informatik.uni-rostock.de/~waschk/mercyseverity_full_100.wma
Comment 3 Christophe Fergeau 2004-05-11 10:03:24 UTC
Both files crash with GStreamer head for me using
gst-launch-0.8 filesrc location="./crash.mov" ! typefind ! spider !
audio/x-raw-int ! fakesink

Reassigning to the gstreamer guys
Comment 4 Ronald Bultje 2004-05-11 12:19:19 UTC
[rbultje@shrek gst-plugins]$ ../gstreamer/tools/gst-launch filesrc
location=/tmp/crash.mov ! qtdemux
RUNNING pipeline ...
ERROR         qtdemux(27941) qtdemux.c(1236):qtdemux_type_get: unknown QuickTime
node type SVQ1
ERROR         qtdemux(27941) qtdemux.c(1236):qtdemux_type_get: unknown QuickTime
node type name
ERROR         qtdemux(27941) qtdemux.c(1236):qtdemux_type_get: unknown QuickTime
node type hinf
ERROR         qtdemux(27941) qtdemux.c(1236):qtdemux_type_get: unknown QuickTime
node type SVQ1
ERROR         qtdemux(27941) qtdemux.c(1236):qtdemux_type_get: unknown QuickTime
node type name
ERROR         qtdemux(27941) qtdemux.c(1236):qtdemux_type_get: unknown QuickTime
node type hinf
Floating point exception
[rbultje@shrek gst-plugins]$

and the WMA file has similar issues to the ones described in #135145, although I
_can_ actually reproduce this (but not #135145). It has an OBJ_DATA chunk before
the headers (right at position 0x1e), then a string (why?!?) and full headers
and then the data. Our demuxer doesn't understand this (yet).

I'd recommend making separate bugs for both, or they'll get lost.
Comment 5 Götz Waschk 2004-05-12 13:00:27 UTC
Created attachment 27635 [details]
Chiptune

Another file that makes rhythmbox crash when it's in the imported directory.
It's a chiptune from chiptune.com, so gstreamer can't play it but rhythmbox
misidentifies the file.
Comment 6 Christophe Fergeau 2004-05-13 09:54:53 UTC
Small update on that bug:
* ds said he had an uncommitted fix for the quicktime crash
* mercyseverity_full.wma no longer crash with gst-plugins head, probably because of:
2004-05-12  Colin Walters  <walters@redhat.com>

        * gst/asfdemux/gstasfdemux.c (gst_asf_demux_process_segment): Avoid
        inflooping if we can't find a chunk.  Or in other words, don't blow
        chunks if we don't have a chunk to blow.
Comment 7 Christophe Fergeau 2004-05-13 09:59:33 UTC
The chiptune file doesn't crash rhythmbox here.
Comment 8 Götz Waschk 2004-05-13 10:51:38 UTC
to #7: AFAIK the ffmpeg plugin was used for the chiptune file, do you have that
installed? I'll post the debug output of rhythmbox for that file tomorrow.
Comment 9 Christophe Fergeau 2004-05-13 11:29:36 UTC
I didn't have gst-ffmpeg installed. After installing it, with gst-launch-0.8 I get

$ gst-launch-0.8  filesrc location=./chiptune.test ! typefind ! spider !
audio/x-raw-int ! fakesink
EXECUTION du tube en cours ...
ERROR         default(28019)
gstffmpegdemux.c(519):gst_ffmpegdemux_open:<ffdemux_wsaud0> (null)
ERROR         default(28019)
gstffmpegdemux.c(519):gst_ffmpegdemux_open:<ffdemux_wsaud0> Not enough memory
ERROR: from element /pipeline0/spider0/ffdemux_wsaud0: GStreamer encountered a
general supporting library error.
Additional debug info:
gstffmpegdemux.c(519): gst_ffmpegdemux_open: /pipeline0/spider0/ffdemux_wsaud0:
Not enough memory
ERROR       scheduler(28019)
gstoptimalscheduler.c(2306):gst_opt_scheduler_iterate:<GstOptScheduler@0x8177c90>
in error state
Execution ended after 2 iterations (sum 859385000 ns, average 429692500 ns, min
27963000 ns, max 831422000 ns).

(ie no crash), and when I try to import it in rhythmbox, rhythmbox doesn't add
it to the library and doesn't crash which is the expected behaviour I think.

Does rhythmbox outputs warning on the console when you try to import that file ?
(run rhythmbox -d). Is the gstreamer command line I used working for you ?
Comment 10 Ronald Bultje 2004-05-13 12:20:07 UTC
The ffmpeg demuxer is broken, it's because of some funkiness between EOF
handling and gstffmpegprotocol.c. I'm working on that, but having a hard time
right now.
Comment 11 Götz Waschk 2004-05-13 18:36:00 UTC
Both gst-launch and rhythmbox crash with the chiptune. Here's the output from
gst-launch:
[goetz@abgrund 2]$ gst-launch filesrc location=comic_bakery.sog ! typefind !
spider ! audio/x-raw-int ! fakesink
#RUNNING pipeline ...
ERROR: from element /pipeline0/spider0/ffdemux_wsaud0: GStreamer encountered a
general supporting library error.
Additional debug info:
gstffmpegdemux.c(532): gst_ffmpegdemux_open: /pipeline0/spider0/ffdemux_wsaud0:
Not enough memory
Execution ended after 1 iterations (sum 347749000 ns, average 347749000 ns, min
347749000 ns, max 347749000 ns).

(process:8688): GLib-GObject-WARNING **: invalid uninstantiatable type
`<invalid>' in cast to `GstElement'

(process:8688): GStreamer-CRITICAL **: file gstelement.c: line 1163
(gst_element_remove_pad): assertion `GST_IS_ELEMENT (element)' failed

(process:8688): GLib-GObject-WARNING **: invalid uninstantiatable type
`<invalid>' in cast to `GstElement'

(process:8688): GStreamer-CRITICAL **: file gstelement.c: line 1163
(gst_element_remove_pad): assertion `GST_IS_ELEMENT (element)' failed

(process:8688): GLib-GObject-WARNING **: invalid uninstantiatable type
`<invalid>' in cast to `GstElement'

(process:8688): GStreamer-CRITICAL **: file gstelement.c: line 1163
(gst_element_remove_pad): assertion `GST_IS_ELEMENT (element)' failed

(process:8688): GLib-GObject-WARNING **: invalid uninstantiatable type
`<invalid>' in cast to `GstElement'

(process:8688): GStreamer-CRITICAL **: file gstelement.c: line 1163
(gst_element_remove_pad): assertion `GST_IS_ELEMENT (element)' failed

(process:8688): GLib-GObject-WARNING **: invalid uninstantiatable type
`<invalid>' in cast to `GstElement'

(process:8688): GStreamer-CRITICAL **: file gstelement.c: line 1163
(gst_element_remove_pad): assertion `GST_IS_ELEMENT (element)' failed
Segmentation fault (core dumped)


Here's some output from rhythmbox -d:
[0x80f2d58] [rb_shell_player_set_play_button] rb-shell-player.c:1535 (18:54:49):
setting play button
[0x80f2d58] [rb_statusbar_entry_view_changed_cb] rb-statusbar.c:582 (18:54:49):
entry view changed
[0x80f2d58] [paned_size_allocate_cb] rb-library-source.c:1150 (18:54:49): paned
size allocate
[0x80f2d58] [paned_size_allocate_cb] rb-shell.c:2359 (18:54:49): paned size allocate
[0x80f2d58] [paned_size_allocate_cb] rb-library-source.c:1150 (18:54:49): paned
size allocate
[0x80f2d58] [paned_size_allocate_cb] rb-shell.c:2359 (18:54:49): paned size allocate
[0x80f2d58] [rb_shell_player_state_changed_cb] rb-shell-player.c:1393
(18:54:49): state changed
[0x80f2d58] [rb_shell_player_sync_control_state] rb-shell-player.c:1335
(18:54:49): syncing control state
[0x80f2d58] [rb_shell_player_sync_buttons] rb-shell-player.c:1642 (18:54:49):
syncing with source 0x8365870
[0x80f2d58] [rb_shell_player_set_play_button] rb-shell-player.c:1535 (18:54:49):
setting play button
[0x80f2d58] [rb_library_source_state_pref_changed] rb-library-source.c:1174
(18:54:49): state prefs changed
[0x80f2d58] [rb_library_source_state_prefs_sync] rb-library-source.c:1158
(18:54:49): syncing state
[0x80f2d58] [rb_shell_player_state_changed_cb] rb-shell-player.c:1393
(18:54:49): state changed
[0x80f2d58] [rb_shell_player_sync_control_state] rb-shell-player.c:1335
(18:54:49): syncing control state
[0x80f2d58] [rb_shell_player_sync_buttons] rb-shell-player.c:1642 (18:54:49):
syncing with source 0x8365870
[0x80f2d58] [rb_shell_player_set_play_button] rb-shell-player.c:1535 (18:54:49):
setting play button
[0x80f2d58] [paned_changed_cb] rb-shell.c:2379 (18:54:49): paned changed
[0x80f2d58] [rb_shell_sync_paned] rb-shell.c:2337 (18:54:49): syncing paned to 146
[0x80f2d58] [paned_size_allocate_cb] rb-shell.c:2359 (18:54:49): paned size allocate
[0x80f2d58] [rb_shell_player_state_changed_cb] rb-shell-player.c:1393
(18:54:49): state changed
[0x80f2d58] [rb_shell_player_sync_control_state] rb-shell-player.c:1335
(18:54:49): syncing control state
[0x80f2d58] [rb_shell_player_sync_buttons] rb-shell-player.c:1642 (18:54:49):
syncing with source 0x8365870
[0x80f2d58] [rb_shell_player_set_play_button] rb-shell-player.c:1535 (18:54:49):
setting play button
[0x80f2d58] [paned_changed_cb] rb-shell.c:2379 (18:54:49): paned changed
[0x80f2d58] [rb_shell_sync_paned] rb-shell.c:2337 (18:54:49): syncing paned to 146
[0x8303228] [rb_metadata_load] rb-metadata-gst.c:418 (18:54:56): loading
metadata for uri: file:///home/goetz/packages/rhythmbox-crash/2/comic_bakery.sog
[0x80f2d58] [rb_shell_player_state_changed_cb] rb-shell-player.c:1393
(18:54:56): state changed
[0x80f2d58] [rb_shell_player_sync_control_state] rb-shell-player.c:1335
(18:54:56): syncing control state
[0x80f2d58] [rb_shell_player_sync_buttons] rb-shell-player.c:1642 (18:54:56):
syncing with source 0x8365870
[0x80f2d58] [rb_shell_player_set_play_button] rb-shell-player.c:1535 (18:54:56):
setting play button
[0x8303228] [rb_metadata_gst_typefind_cb] rb-metadata-gst.c:371 (18:54:56):
found type application/x-gst_ff-wsaud
[0x8303228] [rb_metadata_gst_error_cb] rb-metadata-gst.c:282 (18:54:56): caught
error: GStreamer encountered a general supporting library error. 
[0x8303228] [rb_metadata_load] rb-metadata-gst.c:516 (18:54:56): ignoring file
file:///home/goetz/packages/rhythmbox-crash/2/comic_bakery.sog with detected
type application/x-gst_ff-wsaud

(rhythmbox:8732): GLib-GObject-WARNING **: invalid uninstantiatable type
`<invalid>' in cast to `GstElement'

(rhythmbox:8732): GStreamer-CRITICAL **: file gstelement.c: line 1163
(gst_element_remove_pad): assertion `GST_IS_ELEMENT (element)' failed

(rhythmbox:8732): GLib-GObject-WARNING **: invalid uninstantiatable type
`<invalid>' in cast to `GstElement'

(rhythmbox:8732): GStreamer-CRITICAL **: file gstelement.c: line 1163
(gst_element_remove_pad): assertion `GST_IS_ELEMENT (element)' failed

(rhythmbox:8732): GLib-GObject-WARNING **: invalid uninstantiatable type
`<invalid>' in cast to `GstElement'

(rhythmbox:8732): GStreamer-CRITICAL **: file gstelement.c: line 1163
(gst_element_remove_pad): assertion `GST_IS_ELEMENT (element)' failed

(rhythmbox:8732): GLib-GObject-WARNING **: invalid uninstantiatable type
`<invalid>' in cast to `GstElement'

(rhythmbox:8732): GStreamer-CRITICAL **: file gstelement.c: line 1163
(gst_element_remove_pad): assertion `GST_IS_ELEMENT (element)' failed

(rhythmbox:8732): GLib-GObject-WARNING **: invalid uninstantiatable type
`<invalid>' in cast to `GstElement'

(rhythmbox:8732): GStreamer-CRITICAL **: file gstelement.c: line 1163
(gst_element_remove_pad): assertion `GST_IS_ELEMENT (element)' failed
Segmentation fault (core dumped)
[goetz@abgrund goetz]$ 
Comment 12 Ronald Bultje 2004-05-13 20:57:15 UTC
Eek. someone please disable the ffmpeg demuxer for autoplugging (set rank to
none) until I fix this.
Comment 13 Ronald Bultje 2004-06-13 22:24:34 UTC
Some demuxers disabled and EOF handling fixed as well. File no longer crashes,
but still doesn't work:

[rbultje@shrek riff]$ ../../../../gstreamer/tools/gst-launch filesrc
location=/tmp/chiptune.sog ! typefind ! spider ! osssink
RUNNING pipeline ...
ERROR (1087143839:701216)         default(23518)
gstffmpegdemux.c(520):gst_ffmpegdemux_open:<ffdemux_wsaud0> (null)
ERROR (1087143839:701615)         default(23518)
gstffmpegdemux.c(520):gst_ffmpegdemux_open:<ffdemux_wsaud0> Not enough memory
ERROR: from element /pipeline0/spider0/ffdemux_wsaud0: GStreamer encountered a
general supporting library error.
Additional debug info:
gstffmpegdemux.c(520): gst_ffmpegdemux_open: /pipeline0/spider0/ffdemux_wsaud0:
Not enough memory
ERROR (1087143839:702150)       scheduler(23518)
gstoptimalscheduler.c(2392):gst_opt_scheduler_iterate:<GstOptScheduler@0x81795e8>
in error state
Execution ended after 2 iterations (sum 869948000 ns, average 434974000 ns, min
22431000 ns, max 847517000 ns).
[rbultje@shrek riff]$

Changing topic to reflect new item, and _please_ stop putting new files in this
bug report. Make separate bugs for each file.
Comment 14 Ronald Bultje 2004-06-14 01:17:17 UTC
Actually, that's a ffmpeg bug. It returns the wrong error code, it failed to
read something (I/O error, -EIO = -5 = AVERROR_NOMEM). Bug report already underway.

After fixing that, it still fails with scheduler assertions. No clue where to go
from there:

[rbultje@shrek gst-ffmpeg]$ ../gstreamer/tools/gst-launch filesrc
location=/tmp/chiptune.sog ! ffdemux_wsaud .audio_00 ! ffdec_adpcm_ima_ws !
audioconvert ! audioscale ! alsasink
RUNNING pipeline ...
Segmentation fault
[rbultje@shrek gst-ffmpeg]$ ../gstreamer/tools/gst-launch filesrc
location=/tmp/chiptune.sog ! spider ! audioconvert ! audioscale ! osssink
RUNNING pipeline ...
 
** ERROR **: file gstoptimalscheduler.c: line 704 (sort_chain): assertion
failed: (original == NULL)
aborting...
Aborted
[rbultje@shrek gst-ffmpeg]$ ../gstreamer/tools/gst-launch filesrc
location=/tmp/chiptune.sog ! ffdemux_wsaud .audio_00 ! ffdec_adpcm_ima_ws !
audioconvert ! audioscale ! alsasink
RUNNING pipeline ...
Segmentation fault
[rbultje@shrek gst-ffmpeg]$ ../gstreamer/tools/gst-launch filesrc
location=/tmp/chiptune.sog ! ffdemux_wsaud .audio_00 ! ffdec_adpcm_ima_ws !
audioconvert ! audioscale ! osssink
RUNNING pipeline ...
Execution ended after 2 iterations (sum 165792000 ns, average 82896000 ns, min
17000 ns, max 165775000 ns).

basicgthread goes to 100% CPU use, entrygthread just does nothing. What's
supposed to happen? Xine doesn't do anything either.
Comment 15 Ronald Bultje 2004-06-17 04:00:37 UTC
We continue in #144510 because this is too messy...