GNOME Bugzilla – Bug 138418
[alsasink] gstreamer 0.8 fails to play
Last modified: 2009-08-15 18:40:50 UTC
when i try to play a file in rhythmbox (0.7.1) using GStreamer and the alsasink, i get an error: "Could not pause playback", and the audio fails to play. i am using the alsa drivers from the 2.6.4 kernel, and alsa-libs 1.0.2 with a soundblaster PCI 128 sound card (the driver module is snd_ens1371) below is the output from rhythmbox -d when i try to play a file (happens independent of the source type): [0x80cb4a8] [rb_shell_player_playpause] rb-shell-player.c:1253 (09:46:55): choosing first selected entry [0x80cb4a8] [rb_shell_player_open_location] rb-shell-player.c:874 (09:46:55): Opening file:///home/thomas/mp3/FullAlbums/Rancid-...And_Out_Come_The_Wolves/Rancid-...And_Out_Come_The_Wolves-01-Maxwell_Murder.ogg... [0x80cb4a8] [rb_player_construct] rb-player-gst.c:430 (09:46:55): constructing element "pipeline" [0x80cb4a8] [rb_player_construct] rb-player-gst.c:479 (09:46:55): constructing queue [0x80cb4a8] [rb_player_construct] rb-player-gst.c:492 (09:46:55): constructing element "typefind" [0x80cb4a8] [rb_player_construct] rb-player-gst.c:495 (09:46:55): constructing element "decoder" [0x80cb4a8] [rb_player_construct] rb-player-gst.c:498 (09:46:55): constructing element "volume" [0x80cb4a8] [rb_player_construct] rb-player-gst.c:506 (09:46:55): constructing element "audioconvert" [0x80cb4a8] [rb_player_construct] rb-player-gst.c:509 (09:46:55): constructing element "audioscale" [0x80cb4a8] [rb_player_construct] rb-player-gst.c:551 (09:46:55): pipeline construction complete [0x80cb4a8] [rb_player_sync_pipeline] rb-player-gst.c:601 (09:46:55): syncing pipeline [0x80cb4a8] [rb_player_sync_pipeline] rb-player-gst.c:628 (09:46:55): PAUSING pipeline Got error opening "file:///home/thomas/mp3/FullAlbums/Rancid-...And_Out_Come_The_Wolves/Rancid-...And_Out_Come_The_Wolves-01-Maxwell_Murder.ogg": Could not pause playback [0x80cb4a8] [rb_shell_player_sync_with_source] rb-shell-player.c:1540 (09:46:55): playing source: 0x821a068, active entry: (nil) [0x80cb4a8] [rb_shell_set_window_title] rb-shell.c:1857 (09:46:55): clearing title [0x80cb4a8] [rb_header_sync] rb-header.c:465 (09:46:55): syncing with node = (nil) [0x80cb4a8] [rb_header_sync] rb-header.c:556 (09:46:55): not playing [0x80cb4a8] [rb_shell_player_sync_buttons] rb-shell-player.c:1602 (09:46:55): syncing with source 0x821a068 [0x80cb4a8] [rb_linear_play_order_get_next] rb-play-order-linear.c:95 (09:46:55): choosing next linked entry [0x80cb4a8] [rb_linear_play_order_get_next] rb-play-order-linear.c:100 (09:46:55): Player is stopped, picking first entry [0x80cb4a8] [rb_shell_player_set_play_button] rb-shell-player.c:1496 (09:46:55): setting play button
Strange, bugzilla seems to be eating my comment. I apologise if this is a duplicate. I have had the same problem as the reporter of this bug. The error mentioned above occurs quite rarely though (two/three times in one whole day of playing). I'm using alsa-lib 1.0.3a with kernel 2.6.5 and gstreamer 0.8. My soundcard is an integrated Intel i820 and I use dmix.
The traceback is useless for gstreamer, since no output from gstreamer is shown.
Adding Colin. Colin, do you have any clues?
spiralman: Try this command in a terminal: gst-launch-0.8 gnomevfssrc location=/path/to/my/musicfile.ogg ! spider ! volume ! audioscale ! audioconvert ! $(gconftool-2 -g /system/gstreamer/0.8/default/audiosink) Replace /path/to/my/musicfile.ogg with a real path...
This command plays everything fine. Even if i replace the gconftool call with "alsasink" or "osssink" they both work as well. however, if i use gconf-editor to change the default gstreamer audio sink to alsasink, rhythmbox (now im on 0.6.10 due to another bug in the 0.7 series) crashes. here is the commandline output: (rhythmbox:32579): GStreamer-CRITICAL **: file gstcaps.c: line 1178 (gst_caps_structure_fixate_field_nearest_int): assertion `gst_structure_has_field (structure, field_name)' failed (rhythmbox:32579): GStreamer-CRITICAL **: file gstcaps.c: line 1178 (gst_caps_structure_fixate_field_nearest_int): assertion `gst_structure_has_field (structure, field_name)' failed (rhythmbox:32579): GStreamer-CRITICAL **: file gstcaps.c: line 1178 (gst_caps_structure_fixate_field_nearest_int): assertion `gst_structure_has_field (structure, field_name)' failed (rhythmbox:32579): GStreamer-CRITICAL **: file gstcaps.c: line 1178 (gst_caps_structure_fixate_field_nearest_int): assertion `gst_structure_has_field (structure, field_name)' failed (rhythmbox:32579): GStreamer-CRITICAL **: file gstcaps.c: line 1178 (gst_caps_structure_fixate_field_nearest_int): assertion `gst_structure_has_field (structure, field_name)' failed (rhythmbox:32579): GStreamer-CRITICAL **: file gstcaps.c: line 1178 (gst_caps_structure_fixate_field_nearest_int): assertion `gst_structure_has_field (structure, field_name)' failed Killed
This is actually fixed (march 23 in cvs) in gstreamer 0.8.1: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins/gst-libs/gst/play/play.c?r1=1.38&r2=1.39
I just upgraded to gstreamer 0.8.1 and still have the problem of rhythmbox crashing when using aslasink (the commandline call listed above does not cause gstreamer to crash, even when using alsasink) rhythmbox no longer outputs the GStreamer-CRITICAL messages, but simply outputs "Killed" and exits.
Last two gst-plugins releases have had lots of alsa fixes, and all users have reported their issues fixed with it. Please reopen this bug if you still have issues. Marking closed.