--- libavformat/rtsp.c.orig 2016-10-27 16:17:40 UTC
+++ libavformat/rtsp.c
@@ -1614,7 +1614,12 @@ int ff_rtsp_make_setup_request(AVFormatC
}
if (ttl > 0)
snprintf(optbuf, sizeof(optbuf), "?ttl=%d", ttl);
- getnameinfo((struct sockaddr*) &addr, sizeof(addr),
+ getnameinfo((struct sockaddr*) &addr,
+#if HAVE_STRUCT_SOCKADDR_SA_LEN
+ ((struct sockaddr*) &addr)->sa_len,
+#else
+ sizeof(addr),
+#endif
namebuf, sizeof(namebuf), NULL, 0, NI_NUMERICHOST);
ff_url_join(url, sizeof(url), "rtp", NULL, namebuf,
port, "%s", optbuf);
@@ -1830,8 +1835,13 @@ redirect:
goto fail;
}
if (!getpeername(tcp_fd, (struct sockaddr*) &peer, &peer_len)) {
- getnameinfo((struct sockaddr*) &peer, peer_len, host, sizeof(host),
- NULL, 0, NI_NUMERICHOST);
+ getnameinfo((struct sockaddr*) &peer,
+#if HAVE_STRUCT_SOCKADDR_SA_LEN
+ ((struct sockaddr*) &peer)->sa_len,
+#else
+ peer_len,
+#endif
+ host, sizeof(host), NULL, 0, NI_NUMERICHOST);
}
/* request options supported by the server; this also detects server
@@ -2310,7 +2320,11 @@ static int sdp_read_header(AVFormatConte
AVDictionary *opts = map_to_opts(rt);
err = getnameinfo((struct sockaddr*) &rtsp_st->sdp_ip,
+#if HAVE_STRUCT_SOCKADDR_SA_LEN
+ ((struct sockaddr*) &rtsp_st->sdp_ip)->sa_len,
+#else
sizeof(rtsp_st->sdp_ip),
+#endif
namebuf, sizeof(namebuf), NULL, 0, NI_NUMERICHOST);
if (err) {
av_log(s, AV_LOG_ERROR, "getnameinfo: %s\n", gai_strerror(err));