[FFmpeg-devel] [PATCH v2] os_support, network: Fix build failure on Windows with BZIP2
L. E. Segovia
amy at amyspark.me
Sat Jul 29 21:48:45 EEST 2023
Including winsock2.h without WIN32_LEAN_AND_MEAN causes bzlib.h to parse
as nonsense, due to an instance of #define char small in rpcndr.h
(included transitively from windows.h).
See: https://stackoverflow.com/a/27794577
Signed-off-by: L. E. Segovia <amy at amyspark.me>
---
libavformat/network.h | 1 +
libavformat/os_support.c | 6 ++----
libavformat/os_support.h | 1 +
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/libavformat/network.h b/libavformat/network.h
index ca214087fc..06b6117fc7 100644
--- a/libavformat/network.h
+++ b/libavformat/network.h
@@ -35,6 +35,7 @@
#endif
#if HAVE_WINSOCK2_H
+#define WIN32_LEAN_AND_MEAN
#include <winsock2.h>
#include <ws2tcpip.h>
diff --git a/libavformat/os_support.c b/libavformat/os_support.c
index 15cea7fa5b..2de6a7c3d9 100644
--- a/libavformat/os_support.c
+++ b/libavformat/os_support.c
@@ -34,11 +34,9 @@
#if HAVE_SYS_TIME_H
#include <sys/time.h>
#endif /* HAVE_SYS_TIME_H */
-#if HAVE_WINSOCK2_H
-#include <winsock2.h>
-#elif HAVE_SYS_SELECT_H
+#if HAVE_SYS_SELECT_H
#include <sys/select.h>
-#endif /* HAVE_WINSOCK2_H */
+#endif /* HAVE_SYS_SELECT_H */
#endif /* !HAVE_POLL_H */
#include "network.h"
diff --git a/libavformat/os_support.h b/libavformat/os_support.h
index f2ff38e23b..5bdd275d70 100644
--- a/libavformat/os_support.h
+++ b/libavformat/os_support.h
@@ -140,6 +140,7 @@ typedef int socklen_t;
typedef unsigned long nfds_t;
#if HAVE_WINSOCK2_H
+#define WIN32_LEAN_AND_MEAN
#include <winsock2.h>
#endif
#if !HAVE_STRUCT_POLLFD
--
2.41.0
More information about the ffmpeg-devel
mailing list