summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavformat/network.h14
-rw-r--r--libavformat/udp.c16
2 files changed, 15 insertions, 15 deletions
diff --git a/libavformat/network.h b/libavformat/network.h
index 07112ef7ef..1ad7319649 100644
--- a/libavformat/network.h
+++ b/libavformat/network.h
@@ -162,4 +162,18 @@ const char *ff_gai_strerror(int ecode);
#define IN6_IS_ADDR_MULTICAST(a) (((uint8_t *) (a))[0] == 0xff)
#endif
+static inline int ff_is_multicast_address(struct sockaddr_storage *addr)
+{
+ if (addr->ss_family == AF_INET) {
+ return IN_MULTICAST(ntohl(((struct sockaddr_in *)addr)->sin_addr.s_addr));
+ }
+#if HAVE_STRUCT_SOCKADDR_IN6
+ if (addr->ss_family == AF_INET6) {
+ return IN6_IS_ADDR_MULTICAST(&((struct sockaddr_in6 *)addr)->sin6_addr);
+ }
+#endif
+
+ return 0;
+}
+
#endif /* AVFORMAT_NETWORK_H */
diff --git a/libavformat/udp.c b/libavformat/udp.c
index c1160cf98c..bfb9b77495 100644
--- a/libavformat/udp.c
+++ b/libavformat/udp.c
@@ -177,20 +177,6 @@ static int udp_set_url(struct sockaddr_storage *addr,
return addr_len;
}
-static int is_multicast_address(struct sockaddr_storage *addr)
-{
- if (addr->ss_family == AF_INET) {
- return IN_MULTICAST(ntohl(((struct sockaddr_in *)addr)->sin_addr.s_addr));
- }
-#if HAVE_STRUCT_SOCKADDR_IN6
- if (addr->ss_family == AF_INET6) {
- return IN6_IS_ADDR_MULTICAST(&((struct sockaddr_in6 *)addr)->sin6_addr);
- }
-#endif
-
- return 0;
-}
-
static int udp_socket_create(UDPContext *s,
struct sockaddr_storage *addr, int *addr_len)
{
@@ -268,7 +254,7 @@ int udp_set_remote_url(URLContext *h, const char *uri)
if (s->dest_addr_len < 0) {
return AVERROR(EIO);
}
- s->is_multicast = is_multicast_address(&s->dest_addr);
+ s->is_multicast = ff_is_multicast_address(&s->dest_addr);
return 0;
}