Am 02.08.2010 11:04, schrieb Markus Schulte: > hi, > > i spent my weekend trying to xcompile gstreamers upnp interface > gmediarender for openwrt.
GMediarenderer is a project independent of gstreamer. A more up-to-date upnp solution might be GUPnP. > > i have Makefile i am proud of! > > well, it compiles but does not run. > > while gst-inspect gives me proper output and i can play music with > gst-launch, the libraries apparently don't find any plugin when linked > with gmediarender. at least due to my understanding. the problem may be > somewhere else. > > compiling and linking the exact same sources for ubuntu works great. > > this is what i get from gmediarender: > > ---- > r...@openwrt:~# gmediarender --gst-plugin-load=alsa,udp,mad -I 192.168.200.2 > Registering support for 'audio/mpeg' > Registering support for 'audio/x-mpeg' > Registering support for 'audio/x-raw-int' > Registering support for 'audio/x-iec958' > > (gmediarender:25351): GStreamer-CRITICAL **: gst_element_get_bus: > assertion `GST_IS_ELEMENT (element)' failed > > (gmediarender:25351): GStreamer-CRITICAL **: gst_bus_add_watch_full: > assertion `GST_IS_BUS (bus)' failed > > (gmediarender:25351): GStreamer-CRITICAL **: gst_object_unref: assertion > `object != NULL' failed > > (gmediarender:25351): GStreamer-CRITICAL **: gst_element_set_state: > assertion `GST_IS_ELEMENT (element)' failed > Error: pipeline doesn't want to get ready > registering '/upnp/rendertransportSCPD.xml' > registering '/upnp/renderconnmgrSCPD.xml' > registering '/upnp/rendercontrolSCPD.xml' > Ready for rendering.. > ---- > > it lies! it definetly is not ready for rendering. the status line is > missing too ('GStreamer: play: State change: OLD: 'NULL', NEW: 'READY', > PENDING: 'VOID_PENDING' > '). I'd suggest to file a bug against gmediarender. > > this is what i get from gst-inspect: > ---- > r...@openwrt:~# gst-inspect > coreelements: multiqueue: MultiQueue > coreelements: typefind: TypeFind > coreelements: tee: Tee pipe fitting > coreelements: filesink: File Sink > coreelements: queue2: Queue 2 > coreelements: queue: Queue > coreelements: identity: Identity > coreelements: filesrc: File Source > coreelements: fdsink: Filedescriptor Sink > coreelements: fdsrc: Filedescriptor Source > coreelements: fakesink: Fake Sink > coreelements: fakesrc: Fake Source > coreelements: capsfilter: CapsFilter > coreindexers: memindex: A index that stores entries in memory > udp: udpsrc: UDP packet receiver > udp: dynudpsink: UDP packet sender > udp: multiudpsink: UDP packet sender > udp: udpsink: UDP packet sender > mad: mad: mad mp3 decoder > alsa: alsasink: Audio sink (ALSA) > alsa: alsasrc: Audio source (ALSA) > alsa: alsamixer: Alsa mixer > staticelements: bin: Generic bin > staticelements: pipeline: Pipeline object This is core and a few of base. Not much. Seems to be tailored to mp3 playback. > ---- > > "gmediarender -I 192.168.200.2 --gst-plugin-load=udp,mad > --gstout-audiosink=alsasink" segfaults :-( > > "strace gmediarender -I 192.168.200.2 --gst-plugin-load=udp,mad > --gstout-audiosink=alsasink 2>/tmp/strace.log" > > shows that, while it seems to properly find the plugins: > > open("/usr/lib/gstreamer-0.10/libgstudp.so", O_RDONLY) = 3 > open("/usr/lib/libmad.so.0", O_RDONLY) = 3 > open("/usr/lib/gstreamer-0.10/libgstalsa.so", O_RDONLY) = 3 > > it still segfaults. Yes, those assertions need to be fixed for sure. Stefan > > this is a tail on strace.log: > --- > write(2, "\n(gmediarender:25649): GStreamer"..., 98 > (gmediarender:25649): GStreamer-CRITICAL **: gst_object_unref: assertion > `object != NULL' failed > ) = 98 > write(1, "Setting audio sink to alsasink\n", 31) = 31 > socketpair(PF_FILE, SOCK_STREAM, 0, [8, 9]) = 0 > fcntl64(8, F_SETFL, O_RDONLY|O_NONBLOCK) = 0 > fcntl64(9, F_SETFL, O_RDONLY|O_NONBLOCK) = 0 > --- SIGSEGV (Segmentation fault) @ 0 (0) --- > +++ killed by SIGSEGV +++ > Segmentation fault > --- > > to make the picture complete, this is the linker command: > > --- > mipsel-openwrt-linux-uclibc-gcc -D_GNU_SOURCE -Os -pipe -mips32 > -mtune=mips32 -funit-at-a-time -fhonour-copts -msoft-float -fpic -Wall > -I/home/markus/hotspot/openwrt/backfire/staging_dir/target-mipsel_uClibc-0.9.30.1/usr/include > -I/home/markus/hotspot/openwrt/backfire/staging_dir/target-mipsel_uClibc-0.9.30.1/include > -I/home/markus/hotspot/openwrt/backfire/staging_dir/toolchain-mipsel_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/include > -I/home/markus/hotspot/openwrt/backfire/staging_dir/toolchain-mipsel_gcc-4.3.3+cs_uClibc-0.9.30.1/include > -L/home/markus/hotspot/openwrt/backfire/staging_dir/target-mipsel_uClibc-0.9.30.1/usr/lib > -L/home/markus/hotspot/openwrt/backfire/staging_dir/target-mipsel_uClibc-0.9.30.1/lib > -L/home/markus/hotspot/openwrt/backfire/staging_dir/toolchain-mipsel_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/lib > -L/home/markus/hotspot/openwrt/backfire/staging_dir/toolchain-mipsel_gcc-4.3.3+cs_uClibc-0.9.30.1/lib > -L/home/markus/hotspot/openwrt/backfire/staging_dir/target-mipsel_uClibc-0.9.30.1/usr/lib/libintl/lib > -L/home/markus/hotspot/openwrt/backfire/staging_dir/target-mipsel_uClibc-0.9.30.1/usr/lib/libiconv/lib > -Wl,-rpath-link=/home/markus/hotspot/openwrt/backfire/staging_dir/target-mipsel_uClibc-0.9.30.1/usr/lib > -L/home/markus/hotspot/openwrt/backfire/staging_dir/target-mipsel_uClibc-0.9.30.1/usr/lib > -L/home/markus/hotspot/openwrt/backfire/staging_dir/target-mipsel_uClibc-0.9.30.1/usr/lib > -L/home/markus/hotspot/openwrt/backfire/staging_dir/target-mipsel_uClibc-0.9.30.1/lib > -L/home/markus/hotspot/openwrt/backfire/staging_dir/toolchain-mipsel_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/lib > -L/home/markus/hotspot/openwrt/backfire/staging_dir/toolchain-mipsel_gcc-4.3.3+cs_uClibc-0.9.30.1/lib > -L/home/markus/hotspot/openwrt/backfire/staging_dir/target-mipsel_uClibc-0.9.30.1/usr/lib/libintl/lib > -L/home/markus/hotspot/openwrt/backfire/staging_dir/target-mipsel_uClibc-0.9.30.1/usr/lib/libiconv/lib > -Wl,-rpath-link=/home/markus/hotspot/openwrt/backfire/staging_dir/target-mipsel_uClibc-0.9.30.1/usr/lib > -o gmediarender main.o upnp.o upnp_control.o upnp_connmgr.o > upnp_transport.o upnp_device.o upnp_renderer.o webserver.o > output_gstreamer.o xmlescape.o -pthread > -L/home/markus/hotspot/openwrt/backfire/staging_dir/target-mipsel_uClibc-0.9.30.1/usr//lib > -lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lxml2 > -lglib-2.0 -lintl -liconv -lupnp > > --- > > > for the sake of my next weekend and all those who wait for an openwrt > upn media renderer, please help, > > > cheers, > > /markus > > > > > > ------------------------------------------------------------------------------ > The Palm PDK Hot Apps Program offers developers who use the > Plug-In Development Kit to bring their C/C++ apps to Palm for a share > of $1 Million in cash or HP Products. Visit us here for more details: > http://p.sf.net/sfu/dev2dev-palm > > > > _______________________________________________ > Gstreamer-embedded mailing list > Gstreamer-embedded@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gstreamer-embedded ------------------------------------------------------------------------------ Sell apps to millions through the Intel(R) Atom(Tm) Developer Program Be part of this innovative community and reach millions of netbook users worldwide. Take advantage of special opportunities to increase revenue and speed time-to-market. Join now, and jumpstart your future. http://p.sf.net/sfu/intel-atom-d2d _______________________________________________ Gstreamer-embedded mailing list Gstreamer-embedded@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gstreamer-embedded