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 560502 - GStreamer kills Rhythmbox and Banshee on Playback
GStreamer kills Rhythmbox and Banshee on Playback
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: common
0.10.x
Other Linux
: Normal major
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-11-12 13:29 UTC by Tobias Hoppenthaler
Modified: 2009-01-09 23:23 UTC
See Also:
GNOME target: ---
GNOME version: 2.21/2.22


Attachments
Screenshot gstreamer-settings (26.31 KB, image/png)
2008-11-13 12:00 UTC, Tobias Hoppenthaler
Details
debug.log of banshee - as requested (916.70 KB, application/zip)
2008-11-13 12:09 UTC, Tobias Hoppenthaler
Details

Description Tobias Hoppenthaler 2008-11-12 13:29:48 UTC
When trying to play mp3 files both players named in summary hang.
rhythmbox -d says:

(14:18:25) [0x9c3f408] [rb_shell_player_error] rb-shell-player.c:3421: playback error while playing: Internal GStreamer error: state change failed.  Please file a bug at http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer.

I am using Ubuntu 8.10 on an x86 platform - namely a MacBook.
Comment 1 Wim Taymans 2008-11-12 16:56:43 UTC
does it give an error when you do this:

gst-launch -v playbin uri=file:///<path>/<to>/<file>

if it does, can you paste the output here?
Comment 2 Tobias Hoppenthaler 2008-11-13 09:32:10 UTC
gst-launch seems to be a wrapper 

 /usr/bin/gst-launch --help
Usage:
  gst-launch [OPTION...] wrapper to call versioned gst-launch

Help Options:
  -?, --help           Show help options

Application Options:
  -p, --print          print wrapped command line options
  --gst-mm=VERSION     Force major/minor version
  --gst-list-mm        List found major/minor versions


and doesn't work by default

/usr/bin/gst-launch -v playbin uri=file:///home/tobias/Music/song.mp3 
bash: tobias@tobias-mb-linux:~$: command not found

Using the versioned command directly does the job:

tobias@tobias-mb-linux:~$ /usr/bin/gst-launch-0.10 -v playbin uri=file:///usr/share/sounds/KDE-Im-Sms.ogg 
Setting pipeline to PAUSED ...
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src: caps = application/ogg
Pipeline is PREROLLING ...
/GstPlayBin:playbin0/GstStreamSelector:selector_audio_src0: active-pad = NULL
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstQueue:queue0.GstPad:sink: caps = audio/x-vorbis
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstQueue:queue0.GstPad:src: caps = audio/x-vorbis
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstVorbisDec:vorbisdec1.GstPad:sink: caps = audio/x-vorbis
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstVorbisDec:vorbisdec1.GstPad:src: caps = audio/x-raw-float, rate=(int)48000, channels=(int)2, endianness=(int)1234, width=(int)32
/GstPlayBin:playbin0/GstStreamSelector:selector_audio_src0.GstSelectorPad:sink0: caps = audio/x-raw-float, rate=(int)48000, channels=(int)2, endianness=(int)1234, width=(int)32
/GstPlayBin:playbin0/GstDecodeBin:decodebin0.GstGhostPad:src0: caps = audio/x-raw-float, rate=(int)48000, channels=(int)2, endianness=(int)1234, width=(int)32
/GstPlayBin:playbin0/GstDecodeBin:decodebin0.GstGhostPad:src0.GstProxyPad:proxypad1: caps = audio/x-raw-float, rate=(int)48000, channels=(int)2, endianness=(int)1234, width=(int)32
/GstPlayBin:playbin0/GstStreamSelector:selector_audio_src0.GstPad:src: caps = audio/x-raw-float, rate=(int)48000, channels=(int)2, endianness=(int)1234, width=(int)32
/GstPlayBin:playbin0/GstQueue:preroll_audio_src0.GstPad:sink: caps = audio/x-raw-float, rate=(int)48000, channels=(int)2, endianness=(int)1234, width=(int)32
/GstPlayBin:playbin0/GstQueue:preroll_audio_src0.GstPad:src: caps = audio/x-raw-float, rate=(int)48000, channels=(int)2, endianness=(int)1234, width=(int)32
/GstPlayBin:playbin0/GstBin:abin/GstAudioConvert:aconv.GstPad:src: caps = audio/x-raw-float, rate=(int)48000, channels=(int)2, endianness=(int)1234, width=(int)32
/GstPlayBin:playbin0/GstBin:abin/GstAudioConvert:aconv.GstPad:sink: caps = audio/x-raw-float, rate=(int)48000, channels=(int)2, endianness=(int)1234, width=(int)32
/GstPlayBin:playbin0/GstBin:abin.GstGhostPad:sink: caps = audio/x-raw-float, rate=(int)48000, channels=(int)2, endianness=(int)1234, width=(int)32
/GstPlayBin:playbin0/GstBin:abin.GstGhostPad:sink: caps = audio/x-raw-float, rate=(int)48000, channels=(int)2, endianness=(int)1234, width=(int)32
/GstPlayBin:playbin0/GstBin:abin.GstGhostPad:sink.GstProxyPad:proxypad3: caps = audio/x-raw-float, rate=(int)48000, channels=(int)2, endianness=(int)1234, width=(int)32
/GstPlayBin:playbin0/GstBin:abin/GstAudioresample:aresample.GstPad:src: caps = audio/x-raw-float, rate=(int)48000, channels=(int)2, endianness=(int)1234, width=(int)32
/GstPlayBin:playbin0/GstBin:abin/GstAudioresample:aresample.GstPad:sink: caps = audio/x-raw-float, rate=(int)48000, channels=(int)2, endianness=(int)1234, width=(int)32
/GstPlayBin:playbin0/GstBin:abin/GstVolume:volume.GstPad:src: caps = audio/x-raw-float, rate=(int)48000, channels=(int)2, endianness=(int)1234, width=(int)32
/GstPlayBin:playbin0/GstBin:abin/GstVolume:volume.GstPad:sink: caps = audio/x-raw-float, rate=(int)48000, channels=(int)2, endianness=(int)1234, width=(int)32
/GstPlayBin:playbin0/GstBin:abin/GstAutoAudioSink:audiosink/GstPulseSink:audiosink-actual-sink-pulse.GstPad:sink: caps = audio/x-raw-float, rate=(int)48000, channels=(int)2, endianness=(int)1234, width=(int)32
/GstPlayBin:playbin0/GstBin:abin/GstAutoAudioSink:audiosink.GstGhostPad:sink: caps = audio/x-raw-float, rate=(int)48000, channels=(int)2, endianness=(int)1234, width=(int)32
/GstPlayBin:playbin0/GstBin:abin/GstAutoAudioSink:audiosink.GstGhostPad:sink: caps = audio/x-raw-float, rate=(int)48000, channels=(int)2, endianness=(int)1234, width=(int)32
/GstPlayBin:playbin0/GstBin:abin/GstAutoAudioSink:audiosink.GstGhostPad:sink.GstProxyPad:proxypad2: caps = audio/x-raw-float, rate=(int)48000, channels=(int)2, endianness=(int)1234, width=(int)32
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstAudioSinkClock
Got EOS from element "playbin0".
Execution ended after 2160158509 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
/GstPlayBin:playbin0/GstBin:abin/GstAutoAudioSink:audiosink/GstPulseSink:audiosink-actual-sink-pulse.GstPad:sink: caps = NULL
/GstPlayBin:playbin0/GstBin:abin/GstAutoAudioSink:audiosink.GstGhostPad:sink: caps = NULL
/GstPlayBin:playbin0/GstBin:abin/GstVolume:volume.GstPad:src: caps = NULL
/GstPlayBin:playbin0/GstBin:abin/GstVolume:volume.GstPad:sink: caps = NULL
/GstPlayBin:playbin0/GstBin:abin/GstAudioresample:aresample.GstPad:src: caps = NULL
/GstPlayBin:playbin0/GstBin:abin/GstAudioresample:aresample.GstPad:sink: caps = NULL
/GstPlayBin:playbin0/GstBin:abin/GstAudioConvert:aconv.GstPad:src: caps = NULL
/GstPlayBin:playbin0/GstBin:abin/GstAudioConvert:aconv.GstPad:sink: caps = NULL
/GstPlayBin:playbin0/GstBin:abin.GstGhostPad:sink: caps = NULL
/GstPlayBin:playbin0/GstQueue:preroll_audio_src0.GstPad:src: caps = NULL
/GstPlayBin:playbin0/GstQueue:preroll_audio_src0.GstPad:sink: caps = NULL
/GstPlayBin:playbin0/GstStreamSelector:selector_audio_src0.GstSelectorPad:sink0: caps = NULL
/GstPlayBin:playbin0/GstStreamSelector:selector_audio_src0.GstPad:src: caps = NULL
/GstPlayBin:playbin0/GstDecodeBin:decodebin0.GstGhostPad:src0: caps = NULL
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstVorbisDec:vorbisdec1.GstPad:src: caps = NULL
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstVorbisDec:vorbisdec1.GstPad:sink: caps = NULL
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstQueue:queue0.GstPad:src: caps = NULL
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstQueue:queue0.GstPad:sink: caps = NULL
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstOggDemux:oggdemux0.GstOggPad:serial_00002639: caps = NULL
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src: caps = NULL
Setting pipeline to NULL ...
FREEING pipeline ...
Comment 3 Wim Taymans 2008-11-13 10:02:21 UTC
Can you run gstreamer-properties and check what kind of audio sink is selected? you should have pulsesink selected.

If that seems fine, please run banshee like this

GST_DEBUG=*:5 banshee >debug.log 2>&1

then play a song, exit, gzip the debug.log file and attach here. Thanks.
Comment 4 Jan Schmidt 2008-11-13 11:38:37 UTC
(In reply to comment #2)
> gst-launch seems to be a wrapper 
> 
>  /usr/bin/gst-launch --help
> Usage:
>   gst-launch [OPTION...] wrapper to call versioned gst-launch
> 
> Help Options:
>   -?, --help           Show help options
> 
> Application Options:
>   -p, --print          print wrapped command line options
>   --gst-mm=VERSION     Force major/minor version
>   --gst-list-mm        List found major/minor versions
> 
> 
> and doesn't work by default
> 
> /usr/bin/gst-launch -v playbin uri=file:///home/tobias/Music/song.mp3 
> bash: tobias@tobias-mb-linux:~$: command not found
> 

The only reason I can think of for that behaviour is if you somehow have the wrapper from the 0.8 GStreamer series installed, but don't have gst-launch-0.8 itself.... which indicates a broken install/setup.

Which package owns your /usr/bin/gst-launch? (dpkg --search /usr/bin/gst-launch)
Comment 5 Tobias Hoppenthaler 2008-11-13 11:52:51 UTC
(In reply to comment #4)
> (In reply to comment #2)
> > gst-launch seems to be a wrapper 
> > 
> >  /usr/bin/gst-launch --help
> > Usage:
> >   gst-launch [OPTION...] wrapper to call versioned gst-launch
> > 
> > Help Options:
> >   -?, --help           Show help options
> > 
> > Application Options:
> >   -p, --print          print wrapped command line options
> >   --gst-mm=VERSION     Force major/minor version
> >   --gst-list-mm        List found major/minor versions
> > 
> > 
> > and doesn't work by default
> > 
> > /usr/bin/gst-launch -v playbin uri=file:///home/tobias/Music/song.mp3 
> > bash: tobias@tobias-mb-linux:~$: command not found
> > 
> 
> The only reason I can think of for that behaviour is if you somehow have the
> wrapper from the 0.8 GStreamer series installed, but don't have gst-launch-0.8
> itself.... which indicates a broken install/setup.
> 
> Which package owns your /usr/bin/gst-launch? (dpkg --search
> /usr/bin/gst-launch)
> 
 dpkg --search /usr/bin/gst-launch
gstreamer-tools: /usr/bin/gst-launch
Comment 6 Tobias Hoppenthaler 2008-11-13 12:00:51 UTC
Created attachment 122570 [details]
Screenshot gstreamer-settings

Shows the configuration
Comment 7 Tobias Hoppenthaler 2008-11-13 12:09:24 UTC
Created attachment 122571 [details]
debug.log of banshee - as requested
Comment 8 Tobias Hoppenthaler 2008-11-13 12:12:49 UTC
(In reply to comment #3)
> Can you run gstreamer-properties and check what kind of audio sink is selected?
> you should have pulsesink selected.
> 
> If that seems fine, please run banshee like this
> 
> GST_DEBUG=*:5 banshee >debug.log 2>&1
> 
> then play a song, exit, gzip the debug.log file and attach here. Thanks.
> 

 gstreamer-properties
gstreamer-properties-Message: Skipping unavailable plugin 'artsdsink'
gstreamer-properties-Message: Skipping unavailable plugin 'esdsink'
gstreamer-properties-Message: Skipping unavailable plugin 'glimagesink'
gstreamer-properties-Message: Skipping unavailable plugin 'sdlvideosink'
gstreamer-properties-Message: Skipping unavailable plugin 'v4lmjpegsrc'
gstreamer-properties-Message: Skipping unavailable plugin 'qcamsrc'
gstreamer-properties-Message: Skipping unavailable plugin 'esdmon'

screenshot of config is attached.

I also tried to set it to pulsesink, but that did not make any difference to
rhythmbox or banshee. I could hear the test sound of the config interface
though on both automatic and with pulsesink set.

I also attached the zipped logfile from banshee.
After a while I had to kill banshee, because it hung up again without playing.
Comment 9 Wim Taymans 2008-11-13 12:28:30 UTC
The gconf key /system/gstreamer/0.10/default/musicaudiosink
is set to "sbcenc ! a2dpsink device=00:07:A4:B5:F3:14" but it should be set to autoaudiosink. I don't know how it got to this value, maybe a weird package? Also gstreamer-properties only seem to deal with the audiosink gconf key.

Try setting the value of the gconf key to autoaudiosink.
Comment 10 Tobias Hoppenthaler 2008-11-13 12:46:29 UTC
IT WORKS! Thanks a bunch!
It was all my fault. I had used my bluetooth headset and set that value but not set it back. Sorry about the hassle.
Weird though that it kills the whole app.