[gst-embedded] gmediarender openwrt
Stefan Kost
ensonic at hora-obscura.de
Wed Aug 25 13:05:22 PDT 2010
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:
>
> ----
> root at 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:
> ----
> root at 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 at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-embedded
More information about the Gstreamer-embedded
mailing list