Can anyone explain whats happening here ?

Marc Murphy marcmltd at marcm.co.uk
Mon Oct 8 12:56:19 PDT 2012


I have tried filtering on the element type and setting the different levels and it always seems to be when the first element is above level 2 it borks.  So I built gdb for the target and ran gst-launch and setting the debug level to 3.  It caught the SIGABRT and I looked at the backtrace;

Program received signal SIGABRT, Aborted.
0xb6c40898 in raise () from /lib/libc.so.6
(gdb) bt
#0  0xb6c40898 in raise () from /lib/libc.so.6
#1  0xb6c45c0c in abort () from /lib/libc.so.6
#2  0xb6e4334c in _g_gnulib_vasnprintf (resultbuf=0x0, lengthp=0xbeffeee4,
    format=<optimized out>, args=...) at vasnprintf.c:1026
#3  0xb6e43790 in _g_gnulib_vasprintf (result=0xbeffeefc,
    format=<optimized out>, args=...) at printf.c:144
#4  0xb6e3ec98 in g_vasprintf (string=0xbeffeefc, format=<optimized out>,
    args=...) at gprintf.c:308
#5  0xb6e200e8 in g_strdup_vprintf (format=<optimized out>, args=...)
    at gstrfuncs.c:509
#6  0xb6e20108 in g_strdup_printf (format=0xb6fb2ef1 "<%s@%p>")
    at gstrfuncs.c:535
#7  0xb6f4faa4 in gst_debug_log_default (category=0x18400,
    level=GST_LEVEL_INFO, file=0x0,
    function=0x31b <Address 0x31b out of bounds>, line=728, object=0xc2010,
    message=0xbeffefe4, unused=0x0) at gstinfo.c:954
#8  0xb6f4e748 in gst_debug_log_valist (category=0x18400,
    level=GST_LEVEL_INFO, file=0xb6faf6b8 "gstelement.c",
    function=0xb6faf21f "gst_element_add_pad", line=728, object=0xc2010,
    format=0xb6fafa19 "adding pad '%s'", args=...) at gstinfo.c:533
#9  0xb6f4e82c in gst_debug_log (category=<optimized out>,
    level=<optimized out>, file=<optimized out>, function=<optimized out>,
    line=728, object=0xc2010, format=0xb6fafa19 "adding pad '%s'")


Looks like its;
#7  0xb6f4faa4 in gst_debug_log_default (category=0x18400,
    level=GST_LEVEL_INFO, file=0x0,
    function=0x31b <Address 0x31b out of bounds>, line=728, object=0xc2010,
    message=0xbeffefe4, unused=0x0) at gstinfo.c:954
That’s causing the issue.. problem is that what is function 0x31b and what source file is it in ???

I am going to try and build with all optimisation turned off and see if that helps in any way.

Just from scanning the backtrace I think it has something to do with the printf or gprintf and possibly formatting. I could be completely wrong though.

Any insight or advice would be appreciated.

Regards
Marc



-----Original Message-----
From: gstreamer-devel-bounces+marcmltd=marcm.co.uk at lists.freedesktop.org [mailto:gstreamer-devel-bounces+marcmltd=marcm.co.uk at lists.freedesktop.org] On Behalf Of Jan Schmidt
Sent: 06 October 2012 11:49
To: Discussion of the development of and with GStreamer
Subject: Re: Can anyone explain whats happening here ?

On Thu, 2012-10-04 at 19:46 +0000, Marc Murphy wrote:
> Hi All,
> 
> I have recently cross compiled gstreamer for my Ti Omap platform using 
> buildroot and having a little trouble getting debug out.  I have a 
> pipeline that I need to debug and thought switching on level 5 would 
> help… gives a lot of data but I can live with that to try and see 
> whats going on.
> 
>  
> 
> So I set env GST_DEBUG=5 and started the pipeline and it Aborts. ??? 

This may be a bug in a particular plugin - illegal access in a debug statement - or it may be a general problem with the way you've compiled things.

I'd try turning on individual debug categories and see if it's a particular thing that makes it crash, or (better) run it in a debugger and catch the crash backtrace.

To turn on individual debug categories, use GST_DEBUG as a mask:

GST_DEBUG=*sink:5,identity:3 gst-launch videotestsrc ! identity !
fakesink

for example.

J.

> 
>  
> 
> I then thought let’s try a known working test pipeline
> 
> # gst-launch -v v4l2src device=/dev/video1 ! video/x-raw-yuv,
> width=320,height=240,framerate=30/1 ! ffmpegcolorspace ! omapfbsink
> 
> That also borked…..
> 
>  
> 
> If I don’t request debug and only use verbose (-v) on the gst-launch 
> command the pipeline works;
> 
> # gst-launch -v v4l2src device=/dev/video1 ! video/x-raw-yuv,
> width=320,height=240,framerate=30/1 ! ffmpegcolorspace ! omapfbsink
> 
> Setting pipeline to PAUSED ...
> 
> /GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = 
> video/x-raw-yuv, format=(fourcc)YUY2, width=(int)320, height=(int)240, 
> interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1,
> framerate=(fraction)30/1
> 
> Pipeline is live and does not need PREROLL ...
> 
> Setting pipeline to PLAYING ...
> 
> New clock: GstSystemClock
> 
> /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = 
> video/x-raw-yuv, format=(fourcc)YUY2, width=(int)320, height=(int)240, 
> interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1,
> framerate=(fraction)30/1
> 
> /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = 
> video/x-raw-yuv, format=(fourcc)YUY2, width=(int)320, height=(int)240, 
> interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1,
> framerate=(fraction)30/1
> 
> /GstPipeline:pipeline0/GstFFMpegCsp:ffmpegcsp0.GstPad:src: caps = 
> video/x-raw-yuv, width=(int)320, height=(int)240, 
> framerate=(fraction)30/1, format=(fourcc)UYVY, 
> interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1
> 
> /GstPipeline:pipeline0/GstFFMpegCsp:ffmpegcsp0.GstPad:sink: caps = 
> video/x-raw-yuv, format=(fourcc)YUY2, width=(int)320, height=(int)240, 
> interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1,
> framerate=(fraction)30/1
> 
> /GstPipeline:pipeline0/GstOmapFbSink:omapfbsink0.GstPad:sink: caps = 
> video/x-raw-yuv, width=(int)320, height=(int)240, 
> framerate=(fraction)30/1, format=(fourcc)UYVY, 
> interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1
> 
> Caught interrupt -- handling interrupt.
> 
> Interrupt: Stopping pipeline ...
> 
> Execution ended after 3512604141 ns.
> 
> Setting pipeline to PAUSED ...
> 
> Setting pipeline to READY ...
> 
> /GstPipeline:pipeline0/GstOmapFbSink:omapfbsink0.GstPad:sink: caps = 
> NULL
> 
> /GstPipeline:pipeline0/GstFFMpegCsp:ffmpegcsp0.GstPad:src: caps = NULL
> 
> /GstPipeline:pipeline0/GstFFMpegCsp:ffmpegcsp0.GstPad:sink: caps = 
> NULL
> 
> /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = 
> NULL
> 
> /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = 
> NULL
> 
> /GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = NULL
> 
> Setting pipeline to NULL ...
> 
> Freeing pipeline ...
> 
> #
> 
>  
> 
> So I thought let’s try it with debug level 5 and it fails;
> 
>  
> 
> # gst-launch -v v4l2src device=/dev/video1 ! video/x-raw-yuv,
> width=320,height=240,framerate=30/1 ! ffmpegcolorspace ! omapfbsink
> 
>  
> 
> 0:00:00.000762939   768 UNDEFINED segment INFO                GST_INIT
> gst.c:613:init_pre: Initializing GStreamer Core Library version
> 0.10.36
> 
> 0:00:00.001525878   768 UNDEFINED segment INFO                GST_INIT
> gst.c:614:init_pre: Using library installed in /usr/lib
> 
> 0:00:00.001770019   768 UNDEFINED segment INFO                GST_INIT
> gst.c:624:init_pre: Linux buildroot 3.6.0-rc6 #9 Wed Sep 26 20:40:59 
> BST 2012 armv7l
> 
> 0:00:00.003082275   768 UNDEFINED segment INFO                GST_INIT
> gstquery.c:107:_gst_query_initialize: init queries
> 
> 0:00:00.012725831   768 UNDEFINED segment INFO                GST_INIT
> gstmessage.c:73:_gst_message_initialize: init messages
> 
> 0:00:00.015136720   768 UNDEFINED segment INFO      GST_PLUGIN_LOADING
> gstplugin.c:350:_gst_plugin_initialize: registering 0 static plugins
> 
> 0:00:00.017333986   768 UNDEFINED segment INFO      GST_PLUGIN_LOADING
> gstplugin.c:255:gst_plugin_register_static: registered static plugin 
> "staticelements"
> 
> 0:00:00.017578127   768 UNDEFINED segment INFO      GST_PLUGIN_LOADING
> gstplugin.c:257:gst_plugin_register_static: added static plugin 
> "staticelements", result: 1
> 
> 0:00:00.023651126   768 UNDEFINED segment INFO            GST_REGISTRY
> gstregistry.c:1648:ensure_current_registry: reading registry
> cache: /root/.gstreamer-0.10/registry.arm.bin
> 
> 0:00:00.225189237   768 UNDEFINED segment INFO            GST_REGISTRY
> gstregistrybinary.c:614:gst_registry_binary_read_cache:
> loaded /root/.gstreamer-0.10/registry.arm.bin in 0.201080 seconds
> 
> 0:00:00.225952177   768 UNDEFINED segment INFO            GST_REGISTRY
> gstregistry.c:1518:scan_and_update_registry: Validating plugins from 
> registry cache: /root/.gstreamer-0.10/registry.arm.bin
> 
> 0:00:00.247680696   768 UNDEFINED segment INFO            GST_REGISTRY
> gstregistry.c:1610:scan_and_update_registry: Registry cache has not 
> changed
> 
> 0:00:00.247985871   768 UNDEFINED segment INFO            GST_REGISTRY
> gstregistry.c:1683:ensure_current_registry: registry reading and 
> updating done, result = 1
> 
> 0:00:00.248230012   768 UNDEFINED segment INFO                GST_INIT
> gst.c:805:init_post: GLib runtime version: 2.30.2
> 
> 0:00:00.248413117   768 UNDEFINED segment INFO                GST_INIT
> gst.c:807:init_post: GLib headers version: 2.30.2
> 
> 0:00:00.248840364   768 UNDEFINED segment INFO            GST_PIPELINE
> gstparse.c:334:gst_parse_launch_full: parsing pipeline description 
> 'v4l2src device=/dev/video1 ! video/x-raw-yuv,
> width=320,height=240,framerate=30/1 ! ffmpegcolorspace ! omapfbsink '
> 
> 0:00:00.278472935   768 UNDEFINED segment INFO      GST_PLUGIN_LOADING
> gstplugin.c:859:gst_plugin_load_file: plugin 
> "/usr/lib/gstreamer-0.10/libgstvideo4linux2.so" loaded
> 
> 0:00:00.278961217   768 UNDEFINED segment INFO     GST_ELEMENT_FACTORY
> gstelementfactory.c:376:gst_element_factory_create: creating element 
> "v4l2src"
> 
> Aborted
> 
>  
> 
> The only way I can get some info out is with level 2;
> 
> # export GST_DEBUG=2
> 
> #
> 
> # gst-launch -v v4l2src device=/dev/video1 ! video/x-raw-yuv,
> width=320,height=240,framerate=30/1 ! ffmpegcolorspace ! omapfbsink
> 
> Setting pipeline to PAUSED ...
> 
> /GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = 
> video/x-raw-yuv, format=(fourcc)YUY2, width=(int)320, height=(int)240, 
> interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1,
> framerate=(fraction)30/1
> 
> Pipeline is live and does not need PREROLL ...
> 
> Setting pipeline to PLAYING ...
> 
> 0:00:00.725891187   772 UNDEFINED segment WARN                     bin
> gstbin.c:2399:gst_bin_do_latency_func:<pipeline0> failed to query 
> latency
> 
> New clock: GstSystemClock
> 
> /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = 
> video/x-raw-yuv, format=(fourcc)YUY2, width=(int)320, height=(int)240, 
> interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1,
> framerate=(fraction)30/1
> 
> /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = 
> video/x-raw-yuv, format=(fourcc)YUY2, width=(int)320, height=(int)240, 
> interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1,
> framerate=(fraction)30/1
> 
> /GstPipeline:pipeline0/GstFFMpegCsp:ffmpegcsp0.GstPad:src: caps = 
> video/x-raw-yuv, width=(int)320, height=(int)240, 
> framerate=(fraction)30/1, format=(fourcc)UYVY, 
> interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1
> 
> /GstPipeline:pipeline0/GstFFMpegCsp:ffmpegcsp0.GstPad:sink: caps = 
> video/x-raw-yuv, format=(fourcc)YUY2, width=(int)320, height=(int)240, 
> interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1,
> framerate=(fraction)30/1
> 
> /GstPipeline:pipeline0/GstOmapFbSink:omapfbsink0.GstPad:sink: caps = 
> video/x-raw-yuv, width=(int)320, height=(int)240, 
> framerate=(fraction)30/1, format=(fourcc)UYVY, 
> interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1
> 
> 0:00:00.955627541   772 UNDEFINED segment WARN                     bin
> gstbin.c:2395:gst_bin_do_latency_func:<pipeline0> did not really 
> configure latency of 0:00:00.033333333
> 
> Caught interrupt -- handling interrupt.
> 
> Interrupt: Stopping pipeline ...
> 
> Execution ended after 10530976495 ns.
> 
> Setting pipeline to PAUSED ...
> 
> Setting pipeline to READY ...
> 
> /GstPipeline:pipeline0/GstOmapFbSink:omapfbsink0.GstPad:sink: caps = 
> NULL
> 
> /GstPipeline:pipeline0/GstFFMpegCsp:ffmpegcsp0.GstPad:src: caps = NULL
> 
> /GstPipeline:pipeline0/GstFFMpegCsp:ffmpegcsp0.GstPad:sink: caps = 
> NULL
> 
> /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = 
> NULL
> 
> /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = 
> NULL
> 
> /GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = NULL
> 
> Setting pipeline to NULL ...
> 
> Freeing pipeline ...
> 
> #
> 
>  
> 
> The problem is that level 2 isnt enough to see whats going on in the 
> setup stage that is causing the pipeline to bork…
> 
>  
> 
> I have checked the build options for the gstreamer components and I 
> have;
> 
>  
> 
> /*********************************************************************
> **/
> 
>  
> 
> It was created by GStreamer configure 0.10.36, which was
> 
> generated by GNU Autoconf 2.68.  Invocation command line was
> 
>  
> 
>   $ ./configure --target=arm-unknown-linux-gnueabi
> --host=arm-unknown-linux-gnueabi --build=i686-pc-linux-gnu 
> --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --program-prefix= 
> --disable-gtk-doc --enable-ipv6 --enable-static --enable-shared 
> --disable-examples --disable-tests --disable-failing-tests 
> --disable-loadsave
> 
>  
> 
> /*********************************************************************
> **/
> 
>  
> 
> It was created by GStreamer Good Plug-ins configure 0.10.31, which was
> 
> generated by GNU Autoconf 2.68.  Invocation command line was
> 
>  
> 
>   $ ./configure --target=arm-unknown-linux-gnueabi
> --host=arm-unknown-linux-gnueabi --build=i686-pc-linux-gnu 
> --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --program-prefix= 
> --disable-gtk-doc --enable-ipv6 --enable-static --enable-shared 
> --disable-examples --disable-directsound --disable-sunaudio 
> --disable-osx_audio --disable-osx_video --disable-aalib 
> --disable-aalibtest --disable-esd --disable-esdtest --disable-shout2 
> --disable-x --disable-xshm --disable-xvideo --enable-jpeg 
> --enable-libpng --disable-bz2 --disable-zlib --disable-alpha 
> --disable-apetag --disable-audiofx --enable-audioparsers 
> --disable-auparse --disable-autodetect --enable-avi --disable-cutter 
> --disable-debugutils --disable-deinterlace --disable-effectv 
> --disable-equalizer --disable-flv --disable-flx --disable-goom
> --disable-goom2k1 --disable-id3demux --disable-icydemux 
> --disable-imagefreeze --disable-interleave --disable-isomp4 
> --disable-law --disable-level --disable-matroska --disable-monoscope 
> --disable-multifile --disable-multipart --disable-replaygain 
> --disable-rtp --disable-rtpmanager --disable-rtsp --disable-shapewipe 
> --disable-smpte --disable-spectrum --disable-udp --enable-videobox 
> --enable-videocrop --enable-videofilter --enable-videomixer 
> --disable-wavenc --enable-wavparse --disable-y4m --enable-gst_v4l2 
> --disable-annodex --disable-cairo --disable-flac --disable-oss
> --disable-oss4 --disable-pulse --disable-soup --disable-speex
> 
>  
> 
> /*********************************************************************
> **/
> 
>  
> 
> It was created by GStreamer Base Plug-ins configure 0.10.36, which was
> 
> generated by GNU Autoconf 2.68.  Invocation command line was
> 
>  
> 
>   $ ./configure --target=arm-unknown-linux-gnueabi
> --host=arm-unknown-linux-gnueabi --build=i686-pc-linux-gnu 
> --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --program-prefix= 
> --disable-gtk-doc --enable-ipv6 --enable-static --enable-shared 
> --disable-examples --disable-oggtest --disable-vorbistest 
> --disable-freetypetest --disable-x --disable-xshm --disable-xvideo 
> --enable-adder --disable-app --enable-audioconvert --enable-audiorate 
> --enable-audioresample --enable-audiotestsrc --enable-encoding 
> --enable-ffmpegcolorspace --disable-gdp --enable-playback 
> --disable-subparse --enable-tcp --enable-typefind 
> --enable-videotestsrc --enable-videorate --enable-videoscale 
> --enable-volume --disable-ogg --disable-pango --disable-theora 
> --disable-ivorbis --disable-vorbis
> 
> /*********************************************************************
> **/
> 
>  
> 
> It was created by GStreamer Bad Plug-ins configure 0.10.23.1, which 
> was
> 
> generated by GNU Autoconf 2.68.  Invocation command line was
> 
>  
> 
>   $ ./configure --target=arm-unknown-linux-gnueabi
> --host=arm-unknown-linux-gnueabi --build=i686-pc-linux-gnu 
> --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --program-prefix= 
> --disable-gtk-doc --enable-ipv6 --enable-static --enable-shared 
> --disable-examples --disable-fatal-warnings --disable-adpcmdec 
> --disable-adpcmenc --disable-aiff --enable-asfmux 
> --disable-audiovisualizers --disable-autoconvert --disable-bayer 
> --enable-camerabin --enable-camerabin2 --disable-cdxaparse 
> --disable-coloreffects --enable-colorspace --disable-dataurisrc 
> --disable-dccp --disable-debugutils --disable-decklink --disable-dtmf 
> --disable-dvbsuboverlay --disable-dvdspu --enable-faceoverlay 
> --disable-festival --disable-fieldanalysis --enable-freeze 
> --enable-freeverb --disable-frei0r --disable-gaudieffects 
> --disable-geometrictransform --disable-gsettings --enable-h264parse 
> --enable-hdvparse --disable-hls --disable-id3tag --disable-inter 
> --disable-interlace --disable-ivfparse --disable-jp2kdecimator 
> --enable-jpegformat --disable-legacyresample --disable-librfb 
> --disable-linsys --disable-liveadder --enable-mpegdemux 
> --disable-mpegpsmux --disable-mpegtsdemux --enable-mpegtsmux 
> --enable-mpegvideoparse --disable-mve --disable-mxf --disable-nsf 
> --disable-nuvdemux --disable-patchdetect --disable-pcapparse 
> --disable-pnm --disable-rawparse --disable-real 
> --disable-removesilence --disable-rtpmux --disable-rtpvp8 
> --disable-scaletempo --disable-sdi --disable-sdp --disable-segmentclip 
> --disable-siren --disable-smooth --disable-speed --disable-subenc 
> --disable-stereo --disable-tta --enable-videofilters 
> --enable-videomaxrate --enable-videomeasure --enable-videoparsers 
> --enable-videosignal --disable-vmnc --disable-y4m --disable-apexsink
> --disable-bz2 --disable-cdaudio --disable-curl --enable-directfb 
> --disable-dvb --enable-fbdev --disable-libmms --disable-neon 
> --disable-rsvg --disable-sdl --disable-sndfile --disable-vcd
> --enable-uvch264
> 
>  
> 
> /*********************************************************************
> **/
> 
>  
> 
>  
> 
> Has this been seen before ?
> 
>  
> 
> Hopefully someone knows what I have configured incorrectly.
> 
>  
> 
> Regards
> 
> Marc
> 
>  
> 
> 
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

--
Jan Schmidt <thaytan at noraisin.net>

_______________________________________________
gstreamer-devel mailing list
gstreamer-devel at lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


More information about the gstreamer-devel mailing list