mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-02-27 09:11:17 +00:00
sapenc: Mark the muxer as depending on network functions
Hide all code mentioning IPv6 behind HAVE_STRUCT_SOCKADDR_IN6. Originally committed as revision 25415 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
d03b93e372
commit
fcc7f40449
1
configure
vendored
1
configure
vendored
@ -1363,6 +1363,7 @@ ogg_demuxer_select="golomb"
|
|||||||
psp_muxer_select="mov_muxer"
|
psp_muxer_select="mov_muxer"
|
||||||
rtsp_demuxer_select="http_protocol sdp_demuxer"
|
rtsp_demuxer_select="http_protocol sdp_demuxer"
|
||||||
rtsp_muxer_select="rtp_muxer http_protocol sdp_demuxer"
|
rtsp_muxer_select="rtp_muxer http_protocol sdp_demuxer"
|
||||||
|
sap_muxer_deps="network"
|
||||||
sap_muxer_select="rtp_muxer"
|
sap_muxer_select="rtp_muxer"
|
||||||
sdp_demuxer_select="asf_demuxer rm_demuxer rtp_protocol mpegts_demuxer mov_demuxer"
|
sdp_demuxer_select="asf_demuxer rm_demuxer rtp_protocol mpegts_demuxer mov_demuxer"
|
||||||
spdif_muxer_select="aac_parser"
|
spdif_muxer_select="aac_parser"
|
||||||
|
@ -115,11 +115,13 @@ static int sap_write_header(AVFormatContext *s)
|
|||||||
if (ai->ai_family == AF_INET) {
|
if (ai->ai_family == AF_INET) {
|
||||||
/* Also known as sap.mcast.net */
|
/* Also known as sap.mcast.net */
|
||||||
av_strlcpy(announce_addr, "224.2.127.254", sizeof(announce_addr));
|
av_strlcpy(announce_addr, "224.2.127.254", sizeof(announce_addr));
|
||||||
|
#if HAVE_STRUCT_SOCKADDR_IN6
|
||||||
} else if (ai->ai_family == AF_INET6) {
|
} else if (ai->ai_family == AF_INET6) {
|
||||||
/* With IPv6, you can use the same destination in many different
|
/* With IPv6, you can use the same destination in many different
|
||||||
* multicast subnets, to choose how far you want it routed.
|
* multicast subnets, to choose how far you want it routed.
|
||||||
* This one is intended to be routed globally. */
|
* This one is intended to be routed globally. */
|
||||||
av_strlcpy(announce_addr, "ff0e::2:7ffe", sizeof(announce_addr));
|
av_strlcpy(announce_addr, "ff0e::2:7ffe", sizeof(announce_addr));
|
||||||
|
#endif
|
||||||
} else {
|
} else {
|
||||||
freeaddrinfo(ai);
|
freeaddrinfo(ai);
|
||||||
av_log(s, AV_LOG_ERROR, "Host %s resolved to unsupported "
|
av_log(s, AV_LOG_ERROR, "Host %s resolved to unsupported "
|
||||||
@ -167,7 +169,11 @@ static int sap_write_header(AVFormatContext *s)
|
|||||||
ret = AVERROR(EIO);
|
ret = AVERROR(EIO);
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
if (localaddr.ss_family != AF_INET && localaddr.ss_family != AF_INET6) {
|
if (localaddr.ss_family != AF_INET
|
||||||
|
#if HAVE_STRUCT_SOCKADDR_IN6
|
||||||
|
&& localaddr.ss_family != AF_INET6
|
||||||
|
#endif
|
||||||
|
) {
|
||||||
av_log(s, AV_LOG_ERROR, "Unsupported protocol family\n");
|
av_log(s, AV_LOG_ERROR, "Unsupported protocol family\n");
|
||||||
ret = AVERROR(EIO);
|
ret = AVERROR(EIO);
|
||||||
goto fail;
|
goto fail;
|
||||||
@ -178,7 +184,12 @@ static int sap_write_header(AVFormatContext *s)
|
|||||||
ret = AVERROR(EIO);
|
ret = AVERROR(EIO);
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
sap->ann[pos++] = (1 << 5) | ((localaddr.ss_family == AF_INET6) << 4);
|
sap->ann[pos] = (1 << 5);
|
||||||
|
#if HAVE_STRUCT_SOCKADDR_IN6
|
||||||
|
if (localaddr.ss_family == AF_INET6)
|
||||||
|
sap->ann[pos] |= 0x10;
|
||||||
|
#endif
|
||||||
|
pos++;
|
||||||
sap->ann[pos++] = 0; /* Authentication length */
|
sap->ann[pos++] = 0; /* Authentication length */
|
||||||
AV_WB16(&sap->ann[pos], av_get_random_seed());
|
AV_WB16(&sap->ann[pos], av_get_random_seed());
|
||||||
pos += 2;
|
pos += 2;
|
||||||
@ -186,10 +197,12 @@ static int sap_write_header(AVFormatContext *s)
|
|||||||
memcpy(&sap->ann[pos], &((struct sockaddr_in*)&localaddr)->sin_addr,
|
memcpy(&sap->ann[pos], &((struct sockaddr_in*)&localaddr)->sin_addr,
|
||||||
sizeof(struct in_addr));
|
sizeof(struct in_addr));
|
||||||
pos += sizeof(struct in_addr);
|
pos += sizeof(struct in_addr);
|
||||||
|
#if HAVE_STRUCT_SOCKADDR_IN6
|
||||||
} else {
|
} else {
|
||||||
memcpy(&sap->ann[pos], &((struct sockaddr_in6*)&localaddr)->sin6_addr,
|
memcpy(&sap->ann[pos], &((struct sockaddr_in6*)&localaddr)->sin6_addr,
|
||||||
sizeof(struct in6_addr));
|
sizeof(struct in6_addr));
|
||||||
pos += sizeof(struct in6_addr);
|
pos += sizeof(struct in6_addr);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
av_strlcpy(&sap->ann[pos], "application/sdp", sap->ann_size - pos);
|
av_strlcpy(&sap->ann[pos], "application/sdp", sap->ann_size - pos);
|
||||||
|
Loading…
Reference in New Issue
Block a user