I am streaming music from a Gentoo machine (amd64) to a Windows XP PC (running the daemon). Using audacious (which has a native pulseaudio plugins) - everything works. Using any program based on gstreamer (totem, quodlibet, etc..), I can play ogg, wav, ac3 files without problems but not mp3 files. >> totem test.mp3 ** Message: Error: Failed to create stream: (null) pulsesink.c(388): gst_pulsesink_prepare (): /play/visbin/abin/audiosinkbin/audio-sink/bin6/pulsesink1 I run gstreamer-0.10.20 gst-plugins-pulse-0.9.7 and pulseaudio-0.9.10-r1. and gstreamer-properties is set to use the pulseaudio plugins. Reproducible: Always >> emerge --info Portage 2.1.4.4 (default-linux/amd64/2007.0/desktop, gcc-4.1.2, glibc-2.6.1-r0, 2.6.25-gentoo-r6 x86_64) ================================================================= System uname: 2.6.25-gentoo-r6 x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor 5200+ Timestamp of tree: Fri, 25 Jul 2008 06:45:01 +0000 app-shells/bash: 3.2_p33 dev-java/java-config: 1.3.7, 2.1.6 dev-lang/python: 2.4.4-r13, 2.5.2-r5 dev-python/pycrypto: 2.0.1-r6 sys-apps/baselayout: 1.12.11.1 sys-apps/sandbox: 1.2.18.1-r2 sys-devel/autoconf: 2.13, 2.61-r2 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1 sys-devel/binutils: 2.18-r3 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 1.5.26 virtual/os-headers: 2.6.23-r3 ACCEPT_KEYWORDS="amd64" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=athlon64 -O2 -fomit-frame-pointer" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/splash /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d" CXXFLAGS="-march=athlon64 -O2 -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="distlocks fixpackages metadata-transfer parallel-fetch sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="http://open-systems.ufl.edu/mirrors/gentoo http://prometheus.cs.wmich.edu/gentoo " LANG="en_US.utf8" LC_ALL="en_US.utf8" LINGUAS="en" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/overlays/portage /usr/portage/local/layman/sabayon /usr/portage/local/maintainer" SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage" USE="3dnow X aac acpi alsa amd64 avahi bash-completion berkdb bonobo bzip2 cairo caps cdparanoia cdr cli cracklib daap dbus divx divx4linux djvu dri dvd dvdr dvdread dvi emboss emerald encode evo fam ffmpeg fftw firefox flac font-server foomaticdb fortran gdbm gif gimp gimpprint glitz glut gmedia gnome gnomedb gpm gsf gstreamer gtk hal hddtemp iconv id3 id3tag imagemagick ioemu isdnlog jpeg kerberos libburn libnotify libsamplerate lm_sensors mad metar midi mikmod mjpeg mmkeys mmx mng mono mozembed mozilla mp3 mpeg mudflap mysql nautilus ncurses network nfs nonfsv4 nptl nptlonly nsplugin nvidia ogg oggvorbis ole openal opengl openmp oss pam pcre pdf perl plotutils png ppds pppd pulseaudio pygrub python qt3support qt4 quicktime readline realmedia reflection samba screen sdl sensord server session sftplogging slang smp soundtouch sourceview spell spl sse2 ssl startup-notification stream svg tcpd theora threads thunderbird tiff totem truetype twolame unicode v4l v4l2 vamp vorbis wma wmp xine xml xorg xscreensaver xulrunner xv xvid zlib" ALSA_CARDS="usb-audio" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en" USERLAND="GNU" VIDEO_CARDS="nvidia vesa fbdev" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LDFLAGS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Make sure it's gst-plugins-good-0.10.8-r1 and gst-plugins-gconf-0.10.8-r1 installed, -r1 from both.
... and don't mix ~arch version of gstreamer into stable, or at least make sure you get the whole set (including correct versions of liboil, libs and separate plugins including apps that support the versions)
I run stable amd64 mostly. I try to keep packages.keywords to a minimum. Anyway updated good and gconf to -r1, no change. About the other dependencies, I assumed the ebuild would pull the necessary ones... any clue where I can find out which dependencies version you mentioned which are not included in the ebuild ?
Could you provide a list of all gst-plugins-* which you have installed? app-portage/eix can give you a nice list. Thanks
I recently updated many when gstreamer-0.10.20 went stable but no changes. >> eix -I -c gst-plugins [I] media-libs/gst-plugins-bad (0.10.7@07/16/2008): Unmaintained plugins for GStreamer [I] media-libs/gst-plugins-base (0.10.20(0.10)@07/16/2008): Basepack of plugins for gstreamer [I] media-libs/gst-plugins-good (0.10.8-r1(0.10)@07/25/2008): Basepack of plugins for gstreamer [I] media-libs/gst-plugins-ugly (0.10.8(0.10)@07/16/2008): Basepack of plugins for gstreamer [I] media-plugins/gst-plugins-a52dec (0.10.8(0.10)@08/02/2008): plugin for gstreamer [I] media-plugins/gst-plugins-alsa (0.10.20(0.10)@08/02/2008): plugin for gstreamer [I] media-plugins/gst-plugins-cdparanoia (0.10.20(0.10)@08/02/2008): plugin for gstreamer [I] media-plugins/gst-plugins-dvdread (0.10.8(0.10)@08/02/2008): plugin for gstreamer [I] media-plugins/gst-plugins-esd (0.10.8(0.10)@08/02/2008): plugin for gstreamer [I] media-plugins/gst-plugins-faac (0.10.7(0.10)@08/02/2008): plugin for gstreamer [I] media-plugins/gst-plugins-faad (0.10.7(0.10)@08/02/2008): plugin for gstreamer [I] media-plugins/gst-plugins-ffmpeg (0.10.2(0.10)@07/16/2008): FFmpeg based gstreamer plugin [I] media-plugins/gst-plugins-flac (0.10.8(0.10)@08/02/2008): plugin for gstreamer [I] media-plugins/gst-plugins-fluendo-mpegdemux (0.10.15(0.10)@07/16/2008): Fluendo's Mpeg demuxer is a GStreamer element to demux mpeg streams [I] media-plugins/gst-plugins-gconf (0.10.8-r1(0.10)@07/26/2008): plugin for gstreamer [I] media-plugins/gst-plugins-gnomevfs (0.10.20(0.10)@08/02/2008): plugin for gstreamer [I] media-plugins/gst-plugins-jpeg (0.10.8(0.10)@08/02/2008): plug-in to encode and decode jpeg images [I] media-plugins/gst-plugins-lame (0.10.8(0.10)@08/02/2008): plugin for gstreamer [I] media-plugins/gst-plugins-libpng (0.10.8(0.10)@08/02/2008): plug-in to encode png images [I] media-plugins/gst-plugins-libvisual (0.10.20(0.10)@08/02/2008): plugin for gstreamer [I] media-plugins/gst-plugins-mad (0.10.8(0.10)@08/02/2008): plugin for gstreamer [I] media-plugins/gst-plugins-meta (0.10-r2(0.10)@07/26/2008): Meta ebuild to pull in gst plugins for apps [I] media-plugins/gst-plugins-mpeg2dec (0.10.8(0.10)@08/02/2008): Libmpeg2 based decoder plug-in for gstreamer [I] media-plugins/gst-plugins-ogg (0.10.20(0.10)@08/02/2008): plugin for gstreamer [I] media-plugins/gst-plugins-oss (0.10.8(0.10)@08/02/2008): plugin for gstreamer [I] media-plugins/gst-plugins-pango (0.10.20(0.10)@08/02/2008): plugin for gstreamer [I] media-plugins/gst-plugins-pulse (0.9.7(0.10)@07/25/2008): gst-pulse is a GStreamer 0.10 plugin for the PulseAudio sound server. [I] media-plugins/gst-plugins-taglib (0.10.8(0.10)@08/02/2008): plugin for gstreamer [I] media-plugins/gst-plugins-theora (0.10.20(0.10)@08/02/2008): plugin for gstreamer [I] media-plugins/gst-plugins-vorbis (0.10.20(0.10)@08/02/2008): plugin for gstreamer [I] media-plugins/gst-plugins-x (0.10.20(0.10)@08/02/2008): plugin for gstreamer [I] media-plugins/gst-plugins-xvideo (0.10.20(0.10)@08/02/2008): plugin for gstreamer
Here's the magic command line to start figuring out where things go wrong : gst-launch-0.10 -v filesrc location=<full path> ! decodebin ! pulsesink And paste the output here :) Thanks
@Rémi: stop touching the fields, you jackass!
just to be clear /etc/init.d/pulseaudio is not started on this PC as it has no configured sound card. Config is minimal afaik. /etc/pulse/client.conf only contains the default-server to send to (in this case the windows PC). I have not set default-sink. It shows as "wave_output" "Windows waveOut PCM" in the PulseAudio Manager. I tested both mp3 and ogg. ogg plays, mp3 doesn't. >> gst-launch-0.10 -v filesrc location=./test.mp3 ! decodebin ! pulsesink Setting pipeline to PAUSED ... /pipeline0/decodebin0/typefind.src: caps = application/x-id3 /pipeline0/decodebin0/id3demux0.sink: caps = application/x-id3 /pipeline0/decodebin0/mpegaudioparse0.sink: caps = audio/mpeg, mpegversion=(int)1, layer=(int)3 /pipeline0/decodebin0/mpegaudioparse0.src: caps = audio/mpeg, mpegversion=(int)1, layer=(int)3, rate=(int)44100, channels=(int)2, parsed=(boolean)true /pipeline0/decodebin0/mad0.sink: caps = audio/mpeg, mpegversion=(int)1, layer=(int)3, rate=(int)44100, channels=(int)2, parsed=(boolean)true /pipeline0/decodebin0/mad0.src: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2 Pipeline is PREROLLING ... ERROR: from element /pipeline0/pulsesink0: Failed to create stream: (null) Additional debug info: pulsesink.c(388): gst_pulsesink_prepare (): /pipeline0/pulsesink0 ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... /pipeline0/decodebin0/mad0.src: caps = NULL /pipeline0/decodebin0/mad0.sink: caps = NULL /pipeline0/decodebin0/mpegaudioparse0.src: caps = NULL /pipeline0/decodebin0/mpegaudioparse0.sink: caps = NULL /pipeline0/decodebin0/id3demux0.src: caps = NULL /pipeline0/decodebin0/id3demux0.sink: caps = NULL /pipeline0/decodebin0/typefind.src: caps = NULL FREEING pipeline ... Just to show that the ogg file worked. gst-launch-0.10 -v filesrc location=./test.ogg ! decodebin ! pulsesink Setting pipeline to PAUSED ... /pipeline0/decodebin0/typefind.src: caps = application/ogg Pipeline is PREROLLING ... /pipeline0/decodebin0/queue0.sink: caps = audio/x-vorbis /pipeline0/decodebin0/queue0.src: caps = audio/x-vorbis /pipeline0/decodebin0/vorbisdec1.sink: caps = audio/x-vorbis /pipeline0/decodebin0/vorbisdec1.src: caps = audio/x-raw-float, rate=(int)44100, channels=(int)2, endianness=(int)1234, width=(int)32 /pipeline0/pulsesink0.sink: caps = audio/x-raw-float, rate=(int)44100, channels=(int)2, endianness=(int)1234, width=(int)32 /pipeline0/decodebin0.src0: caps = audio/x-raw-float, rate=(int)44100, channels=(int)2, endianness=(int)1234, width=(int)32 /pipeline0/decodebin0.src0.proxypad1: caps = audio/x-raw-float, rate=(int)44100, channels=(int)2, endianness=(int)1234, width=(int)32 Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstAudioSinkClock Got EOS from element "pipeline0". Execution ended after 260584849440 ns. Setting pipeline to PAUSED ... Setting pipeline to READY ... /pipeline0/pulsesink0.sink: caps = NULL /pipeline0/decodebin0.src0: caps = NULL /pipeline0/decodebin0/vorbisdec1.src: caps = NULL /pipeline0/decodebin0/vorbisdec1.sink: caps = NULL /pipeline0/decodebin0/queue0.src: caps = NULL /pipeline0/decodebin0/queue0.sink: caps = NULL /pipeline0/decodebin0/oggdemux0.serial_00000000: caps = NULL /pipeline0/decodebin0/typefind.src: caps = NULL Setting pipeline to NULL ... FREEING pipeline ...
How about that one ? (I've added an audioconvert element) gst-launch-0.10 -v filesrc location=<full path> ! decodebin ! audioconvert ! pulsesink I'm thinking the difference is related to having float samples in one file, and integer samples in the other file... maybe?
Nope, not working with the audioconvert either. BTW I also tried several mp3 from different sources - no differences. gst-launch-0.10 -v filesrc location=./test.mp3 ! decodebin ! audioconvert ! pulsesink Setting pipeline to PAUSED ... /pipeline0/decodebin0/typefind.src: caps = application/x-id3 /pipeline0/decodebin0/id3demux0.sink: caps = application/x-id3 /pipeline0/decodebin0/mpegaudioparse0.sink: caps = audio/mpeg, mpegversion=(int)1, layer=(int)3 /pipeline0/decodebin0/mpegaudioparse0.src: caps = audio/mpeg, mpegversion=(int)1, layer=(int)3, rate=(int)44100, channels=(int)2, parsed=(boolean)true /pipeline0/decodebin0/mad0.sink: caps = audio/mpeg, mpegversion=(int)1, layer=(int)3, rate=(int)44100, channels=(int)2, parsed=(boolean)true /pipeline0/decodebin0/mad0.src: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2 /pipeline0/audioconvert0.src: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2 /pipeline0/audioconvert0.sink: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2 /pipeline0/decodebin0.src0: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2 /pipeline0/decodebin0.src0.proxypad1: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2 Pipeline is PREROLLING ... ERROR: from element /pipeline0/pulsesink0: Failed to create stream: (null) Additional debug info: pulsesink.c(388): gst_pulsesink_prepare (): /pipeline0/pulsesink0 ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... /pipeline0/audioconvert0.src: caps = NULL /pipeline0/audioconvert0.sink: caps = NULL /pipeline0/decodebin0.src0: caps = NULL /pipeline0/decodebin0/mad0.src: caps = NULL /pipeline0/decodebin0/mad0.sink: caps = NULL /pipeline0/decodebin0/mpegaudioparse0.src: caps = NULL /pipeline0/decodebin0/mpegaudioparse0.sink: caps = NULL /pipeline0/decodebin0/id3demux0.src: caps = NULL /pipeline0/decodebin0/id3demux0.sink: caps = NULL /pipeline0/decodebin0/typefind.src: caps = NULL FREEING pipeline ...
gst-plugins-pulse is now up to version 0.10.11 and is part of upstream package gst-plugins-good. time to retry, I guess?
So odd thing, basically totem, quodlibet and the command line below still failed - different error message it seems however: gst-launch-0.10 -v filesrc location=./test2.mp3 ! decodebin ! audioconvert ! pulsesink Setting pipeline to PAUSED ... /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src: caps = application/x-id3 Pipeline is PREROLLING ... /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstID3Demux:id3demux0.GstPad:sink: caps = application/x-id3 /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstMPEGAudioParse:mpegaudioparse0.GstPad:sink: caps = audio/mpeg, mpegversion=(int)1, layer=(int)3 /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstMPEGAudioParse:mpegaudioparse0.GstPad:src: caps = audio/mpeg, mpegversion=(int)1, mpegaudioversion=(int)1, layer=(int)3, rate=(int)44100, channels=(int)2, parsed=(boolean)true /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstMad:mad0.GstPad:sink: caps = audio/mpeg, mpegversion=(int)1, mpegaudioversion=(int)1, layer=(int)3, rate=(int)44100, channels=(int)2, parsed=(boolean)true /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstMad:mad0.GstPad:src: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2 /GstPipeline:pipeline0/GstAudioConvert:audioconvert0.GstPad:src: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2 /GstPipeline:pipeline0/GstAudioConvert:audioconvert0.GstPad:sink: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2 /GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstGhostPad:src0: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2 /GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstGhostPad:src0.GstProxyPad:proxypad1: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2 ERROR: from element /GstPipeline:pipeline0/GstPulseSink:pulsesink0: Failed to create stream: (null) Additional debug info: pulsesink.c(598): gst_pulsesink_prepare (): /GstPipeline:pipeline0/GstPulseSink:pulsesink0 ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... /GstPipeline:pipeline0/GstAudioConvert:audioconvert0.GstPad:src: caps = NULL /GstPipeline:pipeline0/GstAudioConvert:audioconvert0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstGhostPad:src0: caps = NULL /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstMad:mad0.GstPad:src: caps = NULL /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstMad:mad0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstMPEGAudioParse:mpegaudioparse0.GstPad:src: caps = NULL /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstMPEGAudioParse:mpegaudioparse0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstID3Demux:id3demux0.GstPad:src: caps = NULL /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstID3Demux:id3demux0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src: caps = NULL FREEING pipeline ... BUT the new banshee-1.4.2 - which as far as I know - use gstreamer works and can play my mp3 !! media-libs/gstreamer 0.10.21-r3 media-libs/gst-plugins-good-0.10.11 media-libs/gst-plugins-pulse-0.10.11