Segmentation fault when forwarding an RTSP stream.

About encoding, codec settings, muxers and filter usage
moorglade
New Cone
New Cone
Posts: 4
Joined: 01 Jun 2009 15:20

Segmentation fault when forwarding an RTSP stream.

Postby moorglade » 15 Feb 2010 11:06

I'm trying to forward an RTSP stream with VLC 1.0.3 on Linux (Debian sid) using the following command:
vlc rtsp://192.168.16.13:11098/out --sout "#rtp{dst=192.168.19.9,port=11098,sdp=rtsp://192.168.19.9:11098/out}"
It works well if I wait a few seconds before trying to connect to the output stream, but if I connect before VLC starts receiving the source stream (starts buffering), I get a segmentation fault.

I would really appreciate any help with this issue.

Debug output from VLC:

Code: Select all

VLC media player 1.0.3 Goldeneye [0x199c418] main libvlc debug: VLC media player - version 1.0.3 Goldeneye - (c) 1996-2009 the VideoLAN team [0x199c418] main libvlc debug: libvlc was configured with ./configure '--build=x86_64-linux-gnu' '--disable-maintainer-mode' '--enable-release' '--prefix=/usr' '--config-cache' '--enable-fast-install' '--with-binary-version=1' '--disable-update-check' '--disable-fb' '--enable-ggi' '--enable-sdl' '--enable-mad' '--enable-jack' '--enable-pulse' '--enable-lirc' '--enable-a52' '--enable-aa' '--enable-dvbpsi' '--enable-mozilla' '--with-mozilla-pkg=iceape-plugin' '--enable-dvb' '--enable-ogg' '--enable-vorbis' '--enable-shout' '--enable-qt4' '--enable-flac' '--enable-skins2' '--enable-freetype' '--enable-mkv' '--enable-speex' '--enable-caca' '--enable-live555' '--enable-libmpeg2' '--enable-fribidi' '--enable-mod' '--enable-theora' '--enable-dvdnav' '--enable-gnutls' '--enable-ncurses' '--enable-smb' '--disable-gnomevfs' '--enable-bonjour' '--enable-mpc' '--enable-vcd' '--enable-vcdx' '--enable-notify' '--enable-twolame' '--enable-faad' '--disable-zvbi' '--enable-telx' '--disable-x264' '--disable-atmo' '--enable-taglib' '--enable-libass' '--enable-dca' '--enable-realrtsp' '--disable-dv' '--disable-fluidsynth' '--disable-kate' '--disable-mtp' '--enable-alsa' '--enable-v4l' '--enable-v4l2' '--enable-pvr' '--enable-svgalib' 'build_alias=x86_64-linux-gnu' 'CFLAGS=-g -O2' 'LDFLAGS=-Wl,--as-needed' 'CPPFLAGS=' 'CXXFLAGS=-g -O2' [0x199c418] main libvlc debug: translation test: code is "C" [0x199c418] main libvlc debug: checking plugin modules [0x199c418] main libvlc debug: loading plugins cache file /users/kdm/maydayde/.cache/vlc/plugins-04081e.dat [0x199c418] main libvlc debug: recursively browsing `/usr/lib/vlc' [0x199c418] main libvlc debug: module bank initialized (364 modules) [0x199c418] main libvlc debug: opening config file (/users/kdm/maydayde/.config/vlc/vlcrc) [0x199c418] main libvlc debug: CPU has capabilities 486 586 MMX MMXEXT SSE SSE2 FPU [0x199c418] main libvlc debug: looking for memcpy module: 3 candidates [0x199c418] main libvlc debug: using memcpy module "memcpymmxext" [0x1a89cb8] main input debug: Creating an input for 'Media Library' [0x1a89cb8] main input debug: Input is a meta file: disabling unneeded options [0x1a89cb8] main input debug: using timeshift granularity of 50 MBytes [0x1a89cb8] main input debug: using timeshift path '/tmp' [0x1a89cb8] main input debug: `file/xspf-open:///users/kdm/maydayde/.local/share/vlc/ml.xspf' gives access `file' demux `xspf-open' path `/users/kdm/maydayde/.local/share/vlc/ml.xspf' [0x1a89cb8] main input debug: creating demux: access='file' demux='xspf-open' path='/users/kdm/maydayde/.local/share/vlc/ml.xspf' [0x1a80d98] main demux debug: looking for access_demux module: 1 candidate [0x1a80d98] main demux warning: no access_demux module matching "file" could be loaded [0x1a80d98] main demux debug: TIMER module_need() : 0.866 ms - Total 0.866 ms / 1 intvls (Avg 0.866 ms) [0x1a89cb8] main input debug: creating access 'file' path='/users/kdm/maydayde/.local/share/vlc/ml.xspf' [0x1a80d48] main access debug: looking for access module: 3 candidates [0x1a80d48] access_file access debug: opening file `/users/kdm/maydayde/.local/share/vlc/ml.xspf' [0x1a80d48] main access debug: using access module "access_file" [0x1a80d48] main access debug: TIMER module_need() : 1.206 ms - Total 1.206 ms / 1 intvls (Avg 1.206 ms) [0x1a92078] main stream debug: Using AStream*Stream [0x1a92078] main stream debug: pre buffering [0x1a92078] main stream debug: received first data after 0 ms [0x1a92078] main stream debug: pre-buffering done 296 bytes in 0s - 12044 kbytes/s [0x1a93148] main stream debug: looking for stream_filter module: 5 candidates [0x1a93148] main stream debug: TIMER module_need() : 0.381 ms - Total 0.381 ms / 1 intvls (Avg 0.381 ms) [0x1a93148] main stream debug: looking for stream_filter module: 1 candidate [0x1a93148] main stream debug: using stream_filter module "stream_filter_record" [0x1a93148] main stream debug: TIMER module_need() : 0.126 ms - Total 0.126 ms / 1 intvls (Avg 0.126 ms) [0x1a89cb8] main input debug: creating demux: access='file' demux='xspf-open' path='/users/kdm/maydayde/.local/share/vlc/ml.xspf' [0x1a96308] main demux debug: looking for demux module: 1 candidate [0x1a96308] playlist demux debug: using XSPF playlist reader [0x1a96308] main demux debug: using demux module "playlist" [0x1a96308] main demux debug: TIMER module_need() : 0.207 ms - Total 0.207 ms / 1 intvls (Avg 0.207 ms) [0x1a89cb8] main input debug: `file/xspf-open:///users/kdm/maydayde/.local/share/vlc/ml.xspf' successfully opened [0x1a95ec8] main xml debug: looking for xml module: 2 candidates [0x1a95ec8] main xml debug: using xml module "xml" [0x1a95ec8] main xml debug: TIMER module_need() : 0.662 ms - Total 0.662 ms / 1 intvls (Avg 0.662 ms) [0x1a96308] playlist demux debug: parsed 0 tracks successfully [0x1a95ec8] main xml debug: removing module "xml" [0x1a89cb8] main input debug: EOF reached [0x1a96308] main demux debug: removing module "playlist" [0x1a93148] main stream debug: removing module "stream_filter_record" [0x1a80d48] main access debug: removing module "access_file" [0x1a89cb8] main input debug: TIMER input launching for 'Media Library' : 5.444 ms - Total 5.444 ms / 1 intvls (Avg 5.444 ms) [0x1a88ab8] main playlist debug: Activated [0x1a88ab8] main playlist debug: rebuilding array of current - root Playlist [0x1a88ab8] main playlist debug: rebuild done - 0 items, index -1 [0x1a89cb8] main interface debug: looking for interface module: 1 candidate [0x1a89cb8] main interface debug: using interface module "hotkeys" [0x1a89cb8] main interface debug: TIMER module_need() : 0.441 ms - Total 0.441 ms / 1 intvls (Avg 0.441 ms) [0x1a89cb8] main interface debug: thread (interface) created at priority 0 (interface/interface.c:151) [0x1a89cb8] main interface debug: thread started [0x7f6c54000a38] main interface debug: looking for interface module: 1 candidate process 28047: D-Bus library appears to be incorrectly set up; failed to read machine uuid: Failed to open "/var/lib/dbus/machine-id": No such file or directory See the manual page for dbus-uuidgen to correct this issue. [0x7f6c54000a38] inhibit interface error: Failed to connect to the D-Bus session daemon: /usr/bin/dbus-launch terminated abnormally without any error message [0x7f6c54000a38] main interface warning: no interface module matching "inhibit,none" could be loaded [0x7f6c54000a38] main interface debug: TIMER module_need() : 1.352 ms - Total 1.352 ms / 1 intvls (Avg 1.352 ms) [0x7f6c54000a38] main interface error: no suitable interface module [0x199c418] main libvlc error: interface "inhibit,none" initialization failed [0x1a807d8] main interface debug: looking for interface module: 0 candidates [0x1a807d8] main interface error: no interface module matched "screensaver,none" [0x1a807d8] main interface debug: TIMER module_need() : 0.102 ms - Total 0.102 ms / 1 intvls (Avg 0.102 ms) [0x1a807d8] main interface error: no suitable interface module [0x199c418] main libvlc error: interface "screensaver,none" initialization failed [0x199c418] main libvlc error: option drawable-xid does not exist [0x1a88ab8] main playlist debug: adding item `rtsp://192.168.16.13:11098/out' ( rtsp://192.168.16.13:11098/out ) [0x1a7b6f8] main interface debug: looking for interface module: 1 candidate [0x1a7b6f8] main interface debug: using interface module "signals" [0x1a7b6f8] main interface debug: TIMER module_need() : 0.267 ms - Total 0.267 ms / 1 intvls (Avg 0.267 ms) [0x1a7b6f8] main interface debug: thread (interface) created at priority 0 (interface/interface.c:151) [0x1a7b6f8] main interface debug: thread started [0x1a7b6f8] main interface debug: thread ended [0x1a92b68] main interface debug: looking for interface module: 0 candidates [0x1a92b68] main interface error: no interface module matched "globalhotkeys,none" [0x1a92b68] main interface debug: TIMER module_need() : 0.089 ms - Total 0.089 ms / 1 intvls (Avg 0.089 ms) [0x1a92b68] main interface error: no suitable interface module [0x199c418] main libvlc error: interface "globalhotkeys,none" initialization failed [0x199c418] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface. [0x1a92b68] main interface debug: looking for interface module: 2 candidates Remote control interface initialized. Type `help' for help. [0x1a92b68] main interface debug: using interface module "rc" [0x1a92b68] main interface debug: TIMER module_need() : 0.460 ms - Total 0.460 ms / 1 intvls (Avg 0.460 ms) [0x1a92b68] main interface debug: thread (interface) created at priority 0 (interface/interface.c:151) [0x1a92b68] main interface debug: thread started [0x1a88ab8] main playlist debug: processing request item null node Playlist skip 0 [0x1a88ab8] main playlist debug: rebuilding array of current - root Playlist [0x1a88ab8] main playlist debug: rebuild done - 1 items, index -1 [0x1a88ab8] main playlist debug: starting new item [0x1a88ab8] main playlist debug: creating new input thread [0x7f6c54000fb8] main input debug: Creating an input for 'rtsp://192.168.16.13:11098/out' [0x7f6c54000fb8] main input debug: thread (input) created at priority 10 (input/input.c:230) [0x7f6c54000fb8] main input debug: thread started [0x7f6c54005948] main stream output debug: stream=`rtp' [0x7f6c540065c8] main stream out debug: looking for sout stream module: 1 candidate [0x7f6c540065c8] main stream out debug: set config option: sout-rtp-dst to 192.168.19.9 [0x7f6c540065c8] main stream out debug: set config option: sout-rtp-port to 11098 [0x7f6c540065c8] main stream out debug: set config option: sout-rtp-sdp to rtsp://192.168.19.9:11098/out [0x7f6c540065c8] stream_out_rtp stream out debug: RTSP stream: host 192.168.19.9 port 11098 at /out [0x7f6c540065c8] main stream out: creating httpd [0x7f6c540065c8] main stream out debug: net: listening to 192.168.19.9 port 11098 [0x7f6c540065c8] main stream out debug: using sout stream module "stream_out_rtp" [0x7f6c540065c8] main stream out debug: TIMER module_need() : 2.944 ms - Total 2.944 ms / 1 intvls (Avg 2.944 ms) [0x7f6c54000fb8] main input debug: using timeshift granularity of 50 MBytes [0x7f6c54000fb8] main input debug: using timeshift path '/tmp' [0x7f6c54000fb8] main input debug: `rtsp://192.168.16.13:11098/out' gives access `rtsp' demux `' path `192.168.16.13:11098/out' [0x7f6c54000fb8] main input debug: creating demux: access='rtsp' demux='' path='192.168.16.13:11098/out' [0x1a9bb48] main demux debug: looking for access_demux module: 1 candidate Sending request: OPTIONS rtsp://192.168.16.13:11098/out RTSP/1.0 CSeq: 1 User-Agent: VLC media player (LIVE555 Streaming Media v2009.11.27) Received OPTIONS response: RTSP/1.0 200 OK CSeq: 1 Date: Mon, Feb 15 2010 09:54:21 GMT Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, GET_PARAMETER, SET_PARAMETER Sending request: DESCRIBE rtsp://192.168.16.13:11098/out RTSP/1.0 CSeq: 2 Accept: application/sdp User-Agent: VLC media player (LIVE555 Streaming Media v2009.11.27) Received DESCRIBE response: RTSP/1.0 200 OK CSeq: 2 Date: Mon, Feb 15 2010 09:54:21 GMT Content-Base: rtsp://192.168.16.13:11098/out/ Content-Type: application/sdp Content-Length: 272 Need to read 272 extra bytes Read 272 extra bytes: v=0 o=- 1266227516403281 1 IN IP4 192.168.16.13 s=out i=out t=0 0 a=tool:LIVE555 Streaming Media v2009.11.12 a=type:broadcast a=control:* a=range:npt=0- a=x-qt-text-nam:out a=x-qt-text-inf:out m=video 0 RTP/AVP 32 c=IN IP4 0.0.0.0 b=AS:500 a=control:track1 Segmentation fault

Rémi Denis-Courmont
Developer
Developer
Posts: 15328
Joined: 07 Jun 2004 16:01
VLC version: master
Operating System: Linux
Contact:

Re: Segmentation fault when forwarding an RTSP stream.

Postby Rémi Denis-Courmont » 15 Feb 2010 17:18

Please always provide a stack trace when reporting crashes. It is impossible to help you otherwise.
Rémi Denis-Courmont
https://www.remlab.net/
Private messages soliciting support will be systematically discarded

moorglade
New Cone
New Cone
Posts: 4
Joined: 01 Jun 2009 15:20

Re: Segmentation fault when forwarding an RTSP stream.

Postby moorglade » 16 Feb 2010 08:39

Sorry, I didn't know about that.

With gdb I was able get the following backtrace:
#0 SDPGenerate (p_stream=0x80ef230,
rtsp_url=0xb787dfe0 "rtsp://127.0.0.1:19350/out") at rtp.c:718
#1 0x001a6856 in RtspHandler (rtsp=<value optimized out>,
id=<value optimized out>, cl=0x810cd00, answer=0x810cd6c, query=0x810cd34)
at rtsp.c:425
#2 0x002a43c5 in httpd_HostThread (data=<value optimized out>)
at network/httpd.c:2278
#3 0x00b3880e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#4 0x00a807ee in clone () from /lib/tls/i686/cmov/libc.so.6
I'm still not sure if that's what you need, so if there is anything more I can provide, please tell me.

Rémi Denis-Courmont
Developer
Developer
Posts: 15328
Joined: 07 Jun 2004 16:01
VLC version: master
Operating System: Linux
Contact:

Re: Segmentation fault when forwarding an RTSP stream.

Postby Rémi Denis-Courmont » 16 Feb 2010 20:28

Works fine here. Can you try with valgrind?
Rémi Denis-Courmont
https://www.remlab.net/
Private messages soliciting support will be systematically discarded

moorglade
New Cone
New Cone
Posts: 4
Joined: 01 Jun 2009 15:20

Re: Segmentation fault when forwarding an RTSP stream.

Postby moorglade » 17 Feb 2010 14:14

Well, I don't know much about valgrind, but I tried some further debugging.

In SDPGenerate (rtp.c, line ~721):

Code: Select all

if( p_sys->es[0]->listen_fd != NULL ) getsockname( p_sys->es[0]->listen_fd[0], (struct sockaddr *)&dst, &dstlen ); else getpeername( p_sys->es[0]->sinkv[0].rtp_fd, (struct sockaddr *)&dst, &dstlen );
This causes the segmentation fault, because "es" is in fact a null pointer. I think the problem occurs when I try to connect to the VLC before it manages to open the source stream.

I may try valgrind later, if I find the time.

Rémi Denis-Courmont
Developer
Developer
Posts: 15328
Joined: 07 Jun 2004 16:01
VLC version: master
Operating System: Linux
Contact:

Re: Segmentation fault when forwarding an RTSP stream.

Postby Rémi Denis-Courmont » 17 Feb 2010 17:43

Right, in fact there is even a warning about that further down in the function. This should be fixed in 1.0.5-16-g34c0e33.
Rémi Denis-Courmont
https://www.remlab.net/
Private messages soliciting support will be systematically discarded


Return to “VLC stream-output (sout)”

Who is online

Users browsing this forum: No registered users and 15 guests