]> git.sesse.net Git - ffmpeg/commitdiff
win32: Allow other programs to open the same files
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Fri, 20 Jan 2012 19:27:22 +0000 (20:27 +0100)
committerMartin Storsjö <martin@martin.st>
Wed, 27 Mar 2013 16:51:51 +0000 (18:51 +0200)
In order to match Linux behaviour better our Windows-specific
open() replacement should disable Windows default file locking.

Signed-off-by: Martin Storsjö <martin@martin.st>
libavformat/os_support.c

index 451801ff706200be4143a6af37b04045cd8c6adf..1ecf43c3dcffc33e5705a5c44713914d3a831188 100644 (file)
@@ -32,6 +32,7 @@
 #include <fcntl.h>
 #include <io.h>
 #include <windows.h>
+#include <share.h>
 
 int ff_win32_open(const char *filename_utf8, int oflag, int pmode)
 {
@@ -46,12 +47,12 @@ int ff_win32_open(const char *filename_utf8, int oflag, int pmode)
     filename_w = av_mallocz(sizeof(wchar_t) * num_chars);
     MultiByteToWideChar(CP_UTF8, 0, filename_utf8, -1, filename_w, num_chars);
 
-    fd = _wopen(filename_w, oflag, pmode);
+    fd = _wsopen(filename_w, oflag, SH_DENYNO, pmode);
     av_freep(&filename_w);
 
     /* filename maybe be in CP_ACP */
     if (fd == -1 && !(oflag & O_CREAT))
-        return open(filename_utf8, oflag, pmode);
+        return _sopen(filename_utf8, oflag, SH_DENYNO, pmode);
 
     return fd;
 }