gmediarender openwrt

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


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





[Index of Archives]     [Linux Embedded]     [Linux ARM Kernel]     [Linux for ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux Media]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux