[FFmpeg-cvslog] avformat: Split out functions from network.h to a new file, network.c
Martin Storsjö
git at videolan.org
Sun Nov 6 02:39:13 CET 2011
ffmpeg | branch: master | Martin Storsjö <martin at martin.st> | Mon Feb 7 12:59:50 2011 +0200| [f6d371009678e46877e6f81ab0eae475d41b1f57] | committer: Martin Storsjö
avformat: Split out functions from network.h to a new file, network.c
Signed-off-by: Martin Storsjö <martin at martin.st>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f6d371009678e46877e6f81ab0eae475d41b1f57
---
libavformat/Makefile | 2 +
libavformat/network.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++++
libavformat/network.h | 55 ++++-------------------------------
3 files changed, 84 insertions(+), 49 deletions(-)
diff --git a/libavformat/Makefile b/libavformat/Makefile
index ca4ceef..e9bcd28 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 0000000..f694614
--- /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 80d094a..00daed8 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 */
More information about the ffmpeg-cvslog
mailing list