[dvblast-devel] Problems joining source-specific multicast stream

Kristian Pedersen kristian.pedersen at vejen-net.dk
Wed Nov 13 22:53:30 CET 2013


Hi list,

Im attempting to join a source-specific multicast stream and send it out 
again as a unicast stream. It seems the multicast source address is not 
being handled correct.

testpc1:~# cat dvblast.conf
10.10.10.10:5900    1    1720

testpc1:~# dvblast -D 172.18.64.6 at 232.20.0.23:5900 -c dvblast.conf
DVBlast 2.2 (release)
warning: restarting
debug: binding socket to 172.18.64.6 at 232.20.0.23:5900
debug: conf: 10.10.10.10:5900 config=0x1 sid=1720 pids[0]
^Cinfo: Shutdown was requested.
debug: removing 10.10.10.10:5900

Checking IGMP packets with tcpdumps reveals source 172.18.64.6 is not 
included:

tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 
65535 bytes
22:37:45.186436 IP (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto 
IGMP (2), length 56, options (RA))
     100.114.0.2 > 224.0.0.22: igmp v3 report, 2 group record(s) [gaddr 
232.20.0.23 allow { 0.0.0.0 }] [gaddr 232.20.0.23 to_in { 0.0.0.0 }]
22:37:45.518407 IP (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto 
IGMP (2), length 56, options (RA))
     100.114.0.2 > 224.0.0.22: igmp v3 report, 2 group record(s) [gaddr 
232.20.0.23 allow { 0.0.0.0 }] [gaddr 232.20.0.23 to_in { 0.0.0.0 }]
22:37:48.190428 IP (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto 
IGMP (2), length 44, options (RA))
     100.114.0.2 > 224.0.0.22: igmp v3 report, 1 group record(s) [gaddr 
232.20.0.23 block { 0.0.0.0 }]

I think p_src is not getting parsed correctly in udp.c?

imr.imr_sourceaddr = p_src->sin_addr;


I tried to add:
inet_pton(AF_INET, "172.18.64.6", &p_src->sin_addr);

Just before line: imr.imr_sourceaddr = p_src->sin_addr;

This fixes the missing source in IGMP joins and packets starts flowing, 
but then I get lots of:

warning: lost TS sync
lost TS sync
warning: invalid RTP packet received
warning: non-TS RTP packet received

And it thinks the RTP source keeps changing:

debug: new RTP source: 0.0.0.0
new RTP source: 0.0.0.0
debug: new RTP source: 18.73.114.12
new RTP source: 18.73.114.12
debug: new RTP source: 22.195.168.99
new RTP source: 22.195.168.99

Unfortunately my C skills are not nearly good enough to attempt to do a 
proper fix.

Tested with Debian 6.x, 2.6.32-5-xen-amd64, dvblast 2.2-1 package aswell 
as latest GIT and Ubuntu 13.04, 3.8.0-33-generic dvblast latest git

Thanks in advance,

Kristian


More information about the dvblast-devel mailing list