OSDN Git Service

UDP: join multicast group on the interface specified with &localaddr=
authorStoian Ivanov <s.ivanov@teracomm.bg>
Fri, 13 Dec 2013 10:49:34 +0000 (12:49 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 17 Dec 2013 00:14:28 +0000 (01:14 +0100)
commit5fe415f0f415bb4f654851032185dff88ba943aa
tree3e27ee1efee0645764d41099440ed31d885d15a7
parent49f10c9cb185315a41ee06cf7c4c55abfd470c7a
UDP: join multicast group on the interface specified with &localaddr=

When joining multicast groups, ffmpeg was using INADDR_ANY as interface address
which leads to enabling the multicast group on the interface with "default gateway".
Often multicast traffic is received over dedicated interface, which scenario ffmpeg was
unable to handle. With this patch, ffmpeg will enable multicast group to the interfaces
configured with address specified in &localaddr= parameter of udp:// URL. To avoid
loacal_addr resolve at udp_close(...) the UDPContext structure was extended with
struct sockaddr_storage local_addr_storage member, which is populated in udp_open(..)
and passed to udp_join_multicast_group()  and udp_leave_multicast_group().

Signed-off-by: Stoian Ivanov <s.ivanov@teracomm.bg>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/udp.c