aboutsummaryrefslogtreecommitdiffstats
path: root/libavdevice
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2013-08-09 11:06:46 +0300
committerMartin Storsjö <martin@martin.st>2013-08-10 00:53:33 +0300
commite743e7ae6ee7e535c4394bec6fe6650d2b0dbf65 (patch)
treebd01128da10fffb0455a7392243428b799d53ac1 /libavdevice
parenta76d0cdf21c3d9e464623cc0ad1c005abf952afa (diff)
downloadffmpeg-e743e7ae6ee7e535c4394bec6fe6650d2b0dbf65.tar.gz
libavutil: Make avpriv_open a library-internal function on msvcrt
Add one copy of the function into each of the libraries, similarly to what we do for log2_tab. When using static libs, only one copy of the file_open.o object file gets included, while when using shared libraries, each of them get a copy of its own. This fixes DLL builds with a statically linked C runtime, where each DLL effectively has got its own instance of the C runtime, where file descriptors can't be shared across runtimes. On systems not using msvcrt, the function is not duplicated. Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavdevice')
-rw-r--r--libavdevice/Makefile2
-rw-r--r--libavdevice/file_open.c1
2 files changed, 3 insertions, 0 deletions
diff --git a/libavdevice/Makefile b/libavdevice/Makefile
index 76d11c1f1c..8fdae2d44e 100644
--- a/libavdevice/Makefile
+++ b/libavdevice/Makefile
@@ -7,6 +7,8 @@ HEADERS = avdevice.h \
OBJS = alldevices.o \
avdevice.o \
+OBJS-$(HAVE_MSVCRT) += file_open.o
+
# input/output devices
OBJS-$(CONFIG_ALSA_INDEV) += alsa-audio-common.o \
alsa-audio-dec.o
diff --git a/libavdevice/file_open.c b/libavdevice/file_open.c
new file mode 100644
index 0000000000..494a5d37a4
--- /dev/null
+++ b/libavdevice/file_open.c
@@ -0,0 +1 @@
+#include "libavutil/file_open.c"