Page 1 of 1

UDP multicast playing and VLC

Posted: 01 Jul 2010 20:29
by boky
Hi people.

I have a huge problem trying to get VLC to display a multicast stream on Lucid Lynx. This has worked with VLC on Windows (but sadly I don't have a windows machine anymore).

The thing just stops at "pre buffering" but I can actually see MPEG stream coming in on the interface through Wireshark.


This is the output:
./vlc -vvv -I dummy udp://@239.255.4.2:5002

VLC media player 1.2.0-git Twoflower (revision 1.1.0-pre1-1092-g2298f38)
[0x1cc9540] main libvlc debug: VLC media player - 1.2.0-git Twoflower
[0x1cc9540] main libvlc debug: Copyright © 1996-2010 the VideoLAN team
[0x1cc9540] main libvlc debug: revision 1.1.0-pre1-1092-g2298f38
[0x1cc9540] main libvlc debug: configured with ./configure '--disable-qt4' '--disable-skins2'
[0x1cc9540] main libvlc debug: translation test: code is "C"
[0x1cc9540] main libvlc debug: checking plugin modules
[0x1cc9540] main libvlc debug: loading plugins cache file /usr/src/vlc/src/.libs/vlc/plugins/plugins-04081e-3e8.dat
[0x1cc9540] main libvlc warning: cannot read /usr/src/vlc/src/.libs/vlc/plugins/plugins-04081e-3e8.dat (No such file or directory)
[0x1cc9540] main libvlc debug: recursively browsing `/usr/src/vlc/src/.libs/vlc/plugins'
[0x1cc9540] main libvlc debug: saving plugins cache /usr/src/vlc/src/.libs/vlc/plugins/plugins-04081e-3e8.dat
[0x1cc9540] main libvlc debug: loading plugins cache file /usr/src/vlc/modules/plugins-04081e-3e8.dat
[0x1cc9540] main libvlc debug: recursively browsing `/usr/src/vlc/modules'
[0x1cc9540] main libvlc debug: saving plugins cache /usr/src/vlc/modules/plugins-04081e-3e8.dat
[0x1cc9540] main libvlc debug: module bank initialized (374 modules)
[0x1cc9540] main libvlc debug: opening config file (/home/user/.config/vlc/vlcrc)
[0x1cc9540] main libvlc debug: CPU has capabilities MMX MMXEXT SSE SSE2 SSE3 SSSE3 FPU
[0x1cc9540] main libvlc debug: looking for memcpy module: 3 candidates
[0x1cc9540] main libvlc debug: using memcpy module "memcpymmxext"
[0x1d89090] main input debug: Creating an input for 'Media Library'
[0x1d89090] main input debug: Input is a meta file: disabling unneeded options
[0x1d89090] main input debug: using timeshift granularity of 50 MiB
[0x1d89090] main input debug: using timeshift path '/tmp'
[0x1d89090] main input debug: `file/xspf-open:///home/user/.local/share/vlc/ml.xspf' gives access `file' demux `xspf-open' path `/home/user/.local/share/vlc/ml.xspf'
[0x1d89090] main input debug: creating demux: access='file' demux='xspf-open' path='/home/user/.local/share/vlc/ml.xspf'
[0x1d8cec0] main demux debug: looking for access_demux module: 1 candidate
[0x1d8cec0] main demux debug: no access_demux module matching "file" could be loaded
[0x1d8cec0] main demux debug: TIMER module_need() : 0.201 ms - Total 0.201 ms / 1 intvls (Avg 0.201 ms)
[0x1d89090] main input debug: creating access 'file' location='/home/user/.local/share/vlc/ml.xspf', path='/home/user/.local/share/vlc/ml.xspf'
[0x1d8db60] main access debug: looking for access module: 2 candidates
[0x1d8db60] filesystem access debug: opening file `/home/user/.local/share/vlc/ml.xspf'
[0x1d8db60] main access debug: using access module "filesystem"
[0x1d8db60] main access debug: TIMER module_need() : 0.286 ms - Total 0.286 ms / 1 intvls (Avg 0.286 ms)
[0x1d901b0] main stream debug: Using AStream*Stream
[0x1d901b0] main stream debug: pre buffering 1
[0x1d901b0] main stream debug: received first data after 0 ms
[0x1d901b0] main stream debug: pre-buffering done 296 bytes in 0s - 8759 KiB/s
[0x1d8d990] main stream debug: looking for stream_filter module: 5 candidates
[0x1d8d990] main stream debug: no stream_filter module matching "any" could be loaded
[0x1d8d990] main stream debug: TIMER module_need() : 0.480 ms - Total 0.480 ms / 1 intvls (Avg 0.480 ms)
[0x1d8d990] main stream debug: looking for stream_filter module: 1 candidate
[0x1d8d990] main stream debug: using stream_filter module "stream_filter_record"
[0x1d8d990] main stream debug: TIMER module_need() : 0.151 ms - Total 0.151 ms / 1 intvls (Avg 0.151 ms)
[0x1d89090] main input debug: creating demux: access='file' demux='xspf-open' path='/home/user/.local/share/vlc/ml.xspf'
[0x1d8e8d0] main demux debug: looking for demux module: 1 candidate
[0x1d8e8d0] playlist demux debug: using XSPF playlist reader
[0x1d8e8d0] main demux debug: using demux module "playlist"
[0x1d8e8d0] main demux debug: TIMER module_need() : 0.233 ms - Total 0.233 ms / 1 intvls (Avg 0.233 ms)
[0x1d8eee0] main demux meta debug: looking for meta reader module: 2 candidates
[0x1d8eee0] lua demux meta debug: Trying Lua scripts in /home/user/.local/share/vlc/lua/meta/reader
[0x1d8eee0] lua demux meta debug: Trying Lua scripts in /usr/local/lib/vlc/lua/meta/reader
[0x1d8eee0] lua demux meta debug: Trying Lua scripts in /usr/src/vlc/share/lua/meta/reader
[0x1d8eee0] lua demux meta debug: Trying Lua playlist script /usr/src/vlc/share/lua/meta/reader/filename.lua
[0x1d8eee0] lua demux meta debug: Trying Lua playlist script /usr/src/vlc/share/lua/meta/reader/filename.luac
[0x1d8eee0] main demux meta debug: no meta reader module matching "any" could be loaded
[0x1d8eee0] main demux meta debug: TIMER module_need() : 3.989 ms - Total 3.989 ms / 1 intvls (Avg 3.989 ms)
[0x1d89090] main input debug: `file/xspf-open:///home/user/.local/share/vlc/ml.xspf' successfully opened
[0x1d8eee0] main xml debug: looking for xml module: 2 candidates
[0x1d8eee0] main xml debug: using xml module "xml"
[0x1d8eee0] main xml debug: TIMER module_need() : 0.680 ms - Total 0.680 ms / 1 intvls (Avg 0.680 ms)
[0x1d8e8d0] playlist demux debug: parsed 0 tracks successfully
[0x1d8eee0] main xml debug: removing module "xml"
[0x1d89090] main input debug: EOF reached
[0x1d8e8d0] main demux debug: removing module "playlist"
[0x1d8d990] main stream debug: removing module "stream_filter_record"
[0x1d8db60] main access debug: removing module "filesystem"
[0x1d89090] main input debug: TIMER input launching for 'Media Library' : 5.842 ms - Total 5.842 ms / 1 intvls (Avg 5.842 ms)
[0x1d8c290] main interface debug: looking for interface module: 1 candidate
[0x1d8c290] main interface debug: using interface module "hotkeys"
[0x1d8c290] main interface debug: TIMER module_need() : 0.488 ms - Total 0.488 ms / 1 intvls (Avg 0.488 ms)
[0x1d8ada0] main interface debug: looking for interface module: 1 candidate
Blocked: call to unsetenv("DBUS_ACTIVATION_ADDRESS")
Blocked: call to unsetenv("DBUS_ACTIVATION_BUS_TYPE")
[0x1cdb0a0] main playlist debug: Activated
[0x1d8ada0] main interface debug: using interface module "inhibit"
[0x1d8ada0] main interface debug: TIMER module_need() : 2.694 ms - Total 2.694 ms / 1 intvls (Avg 2.694 ms)
[0x1cdb0a0] main playlist debug: adding item `udp://239.255.4.2:5002' ( udp://@239.255.4.2:5002 )
[0x1d8a4d0] main interface debug: looking for interface module: 1 candidate
[0x1cdb0a0] main playlist debug: rebuilding array of current - root Playlist
[0x1cdb0a0] main playlist debug: rebuild done - 1 items, index -1
[0x1d8a4d0] main interface debug: using interface module "globalhotkeys"
[0x1d8a4d0] main interface debug: TIMER module_need() : 5.436 ms - Total 5.436 ms / 1 intvls (Avg 5.436 ms)
[0x1dafe10] main interface debug: looking for interface module: 1 candidate
[0x1dafe10] dummy interface: using the dummy interface module...
[0x1dafe10] main interface debug: using interface module "dummy"
[0x1dafe10] main interface debug: TIMER module_need() : 0.283 ms - Total 0.283 ms / 1 intvls (Avg 0.283 ms)
[0x1cdb0a0] main playlist debug: processing request item null node Playlist skip 0
[0x1cdb0a0] main playlist debug: starting new item
[0x1cdb0a0] main playlist debug: creating new input thread
[0x1db0180] main input debug: Creating an input for 'udp://239.255.4.2:5002'
[0x1db0180] main input debug: thread (input) created at priority 10 (input/input.c:214)
[0x1db0180] main input debug: thread started
[0x1db0180] main input debug: using timeshift granularity of 50 MiB
[0x1db0180] main input debug: using timeshift path '/tmp'
[0x1db0180] main input debug: `udp://@239.255.4.2:5002' gives access `udp' demux `' path `@239.255.4.2:5002'
[0x1db0180] main input debug: creating demux: access='udp' demux='' path='@239.255.4.2:5002'
[0x1dad860] main demux debug: looking for access_demux module: 0 candidates
[0x1dad860] main demux debug: no access_demux module matched "udp"
[0x1dad860] main demux debug: TIMER module_need() : 0.096 ms - Total 0.096 ms / 1 intvls (Avg 0.096 ms)
[0x1db0180] main input debug: creating access 'udp' location='@239.255.4.2:5002', path='(null)'
[0x1dadbf0] main access debug: looking for access module: 1 candidate
[0x1dadbf0] access_udp access debug: opening server=:0 local=239.255.4.2:5002
[0x1dadbf0] main access debug: net: opening 239.255.4.2 datagram port 5002
[0x1dadbf0] main access debug: Multicast group join request
[0x1dadbf0] main access debug: using access module "access_udp"
[0x1dadbf0] main access debug: TIMER module_need() : 0.940 ms - Total 0.940 ms / 1 intvls (Avg 0.940 ms)
[0x1dae480] main stream debug: Using AStream*Block
[0x1dae480] main stream debug: pre buffering





I have tried the VLC version:
- that comes by default with ubuntu
- from a ppa
VLC media player 1.1.0 The Luggage (revision exported)
VLC version 1.1.0 The Luggage (exported)
Compiled by buildd on platinum.ppa (Jun 28 2010 16:35:25)
Kodni prevajalnik: gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5)


- from git
VLC media player 1.1.0 The Luggage (revision exported)
VLC version 1.1.0 The Luggage (exported)
Compiled by buildd on platinum.ppa (Jun 28 2010 16:35:25)
Kodni prevajalnik: gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5)



By putting in some debbuging in the code, I have found out that it blocks here:
p_block = p_access->pf_block( p_access );

in method static block_t *AReadBlock( stream_t *s, bool *pb_eof )

My knowledge of C stops here but I have seen similar posts over the web without any real answer. Any ideas?

Re: UDP multicast playing and VLC

Posted: 02 Jul 2010 03:55
by Rémi Denis-Courmont
VLC is not receiving any data. Make sure your network is configured correctly, the multicast address is correct, and you did not firewall your own self.

Re: UDP multicast playing and VLC

Posted: 02 Jul 2010 09:10
by boky
But I did!

As I said:
- I can see the packets coming (in Wireshark)
- I've disabled all other network interfaces except for eth0
- I've forced a route of multicast to eth0 (route add -net 239.255.4.0 netmask 255.255.255.0 eth0)

I have no firewall:
iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination


That's why I don't understand what's going on. What else could be wrong -- what can I check?

Re: UDP multicast playing and VLC

Posted: 02 Jul 2010 12:32
by boky
Found it, finally, for reference:

Found it!
It actually was the rp_filter setting. In 2.6.31, rp_filter calculation code was changed, see: http://linux.derkeiler.com/Mailing-List ... 04929.html

Anyway, I originally had in my /etc/conf.d/local.start:
echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/default/rp_filter

I guess that wasn't good enough, so I instead put those in /etc/sysctl.conf (better place anyway), and put this in local.start instead:
echo 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/eth1/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/lo/rp_filter


From: http://forums.gentoo.org/viewtopic-p-62 ... 19f0dc79af