} UDPContext;
#define UDP_TX_BUF_SIZE 32768
+#define UDP_MAX_PKT_SIZE 65536
#ifdef CONFIG_IPV6
udp_set_remote_url(h, uri);
}
+ if(!ff_network_init())
+ return AVERROR(EIO);
+
#ifndef CONFIG_IPV6
udp_fd = socket(AF_INET, SOCK_DGRAM, 0);
if (udp_fd < 0)
perror("setsockopt sndbuf");
goto fail;
}
+ } else {
+ /* set udp recv buffer size to the largest possible udp packet size to
+ * avoid losing data on OSes that set this too low by default. */
+ tmp = UDP_MAX_PKT_SIZE;
+ setsockopt(udp_fd, SOL_SOCKET, SO_RCVBUF, &tmp, sizeof(tmp));
}
s->udp_fd = udp_fd;
udp_ipv6_leave_multicast_group(s->udp_fd, (struct sockaddr *)&s->dest_addr);
#endif
closesocket(s->udp_fd);
+ ff_network_close();
av_free(s);
return 0;
}