aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2011-02-07 12:59:50 +0200
committerMartin Storsjö <martin@martin.st>2011-11-05 12:08:47 +0200
commitf6d371009678e46877e6f81ab0eae475d41b1f57 (patch)
treeaefecb4fd6d878922e1eeeb52b6cb80789e8d513
parentadd7b1140fdd0651d0fc9352962631807126d3d0 (diff)
downloadffmpeg-f6d371009678e46877e6f81ab0eae475d41b1f57.tar.gz
avformat: Split out functions from network.h to a new file, network.c
Signed-off-by: Martin Storsjö <martin@martin.st>
-rw-r--r--libavformat/Makefile2
-rw-r--r--libavformat/network.c76
-rw-r--r--libavformat/network.h55
3 files changed, 84 insertions, 49 deletions
diff --git a/libavformat/Makefile b/libavformat/Makefile
index ca4ceef54f..e9bcd28a93 100644
--- a/libavformat/Makefile
+++ b/libavformat/Makefile
@@ -14,6 +14,8 @@ OBJS = allformats.o \
seek.o \
utils.o \
+OBJS-$(CONFIG_NETWORK) += network.o
+
# muxers/demuxers
OBJS-$(CONFIG_A64_MUXER) += a64.o
OBJS-$(CONFIG_AAC_DEMUXER) += aacdec.o rawdec.o
diff --git a/libavformat/network.c b/libavformat/network.c
new file mode 100644
index 0000000000..f694614e8b
--- /dev/null
+++ b/libavformat/network.c
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2007 The Libav Project
+ *
+ * This file is part of Libav.
+ *
+ * Libav is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * Libav is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with Libav; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include "network.h"
+
+int ff_network_init(void)
+{
+#if HAVE_WINSOCK2_H
+ WSADATA wsaData;
+ if (WSAStartup(MAKEWORD(1,1), &wsaData))
+ return 0;
+#endif
+ return 1;
+}
+
+int ff_network_wait_fd(int fd, int write)
+{
+ int ev = write ? POLLOUT : POLLIN;
+ struct pollfd p = { .fd = fd, .events = ev, .revents = 0 };
+ int ret;
+ ret = poll(&p, 1, 100);
+ return ret < 0 ? ff_neterrno() : p.revents & (ev | POLLERR | POLLHUP) ? 0 : AVERROR(EAGAIN);
+}
+
+void ff_network_close(void)
+{
+#if HAVE_WINSOCK2_H
+ WSACleanup();
+#endif
+}
+
+#if HAVE_WINSOCK2_H
+int ff_neterrno(void)
+{
+ int err = WSAGetLastError();
+ switch (err) {
+ case WSAEWOULDBLOCK:
+ return AVERROR(EAGAIN);
+ case WSAEINTR:
+ return AVERROR(EINTR);
+ }
+ return -err;
+}
+#endif
+
+int ff_is_multicast_address(struct sockaddr *addr)
+{
+ if (addr->sa_family == AF_INET) {
+ return IN_MULTICAST(ntohl(((struct sockaddr_in *)addr)->sin_addr.s_addr));
+ }
+#if HAVE_STRUCT_SOCKADDR_IN6
+ if (addr->sa_family == AF_INET6) {
+ return IN6_IS_ADDR_MULTICAST(&((struct sockaddr_in6 *)addr)->sin6_addr);
+ }
+#endif
+
+ return 0;
+}
+
diff --git a/libavformat/network.h b/libavformat/network.h
index 80d094a0de..00daed8759 100644
--- a/libavformat/network.h
+++ b/libavformat/network.h
@@ -36,17 +36,7 @@
#define ECONNREFUSED WSAECONNREFUSED
#define EINPROGRESS WSAEINPROGRESS
-static inline int ff_neterrno(void)
-{
- int err = WSAGetLastError();
- switch (err) {
- case WSAEWOULDBLOCK:
- return AVERROR(EAGAIN);
- case WSAEINTR:
- return AVERROR(EINTR);
- }
- return -err;
-}
+int ff_neterrno(void);
#else
#include <sys/types.h>
#include <sys/socket.h>
@@ -66,31 +56,10 @@ static inline int ff_neterrno(void)
int ff_socket_nonblock(int socket, int enable);
-static inline int ff_network_init(void)
-{
-#if HAVE_WINSOCK2_H
- WSADATA wsaData;
- if (WSAStartup(MAKEWORD(1,1), &wsaData))
- return 0;
-#endif
- return 1;
-}
-
-static inline int ff_network_wait_fd(int fd, int write)
-{
- int ev = write ? POLLOUT : POLLIN;
- struct pollfd p = { .fd = fd, .events = ev, .revents = 0 };
- int ret;
- ret = poll(&p, 1, 100);
- return ret < 0 ? ff_neterrno() : p.revents & (ev | POLLERR | POLLHUP) ? 0 : AVERROR(EAGAIN);
-}
-
-static inline void ff_network_close(void)
-{
-#if HAVE_WINSOCK2_H
- WSACleanup();
-#endif
-}
+int ff_network_init(void);
+void ff_network_close(void);
+
+int ff_network_wait_fd(int fd, int write);
int ff_inet_aton (const char * str, struct in_addr * add);
@@ -191,18 +160,6 @@ 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 *addr)
-{
- if (addr->sa_family == AF_INET) {
- return IN_MULTICAST(ntohl(((struct sockaddr_in *)addr)->sin_addr.s_addr));
- }
-#if HAVE_STRUCT_SOCKADDR_IN6
- if (addr->sa_family == AF_INET6) {
- return IN6_IS_ADDR_MULTICAST(&((struct sockaddr_in6 *)addr)->sin6_addr);
- }
-#endif
-
- return 0;
-}
+int ff_is_multicast_address(struct sockaddr *addr);
#endif /* AVFORMAT_NETWORK_H */