avutil/file_open: avoid file handle inheritance on Windows
authorTobias Rapp <t.rapp@noa-audio.com>
Thu, 29 Oct 2015 08:11:37 +0000 (09:11 +0100)
committerMichael Niedermayer <michael@niedermayer.cc>
Mon, 2 Nov 2015 18:15:32 +0000 (19:15 +0100)
commitc6c801d993bb18e8cc67b43a1aa94e28ee4d3cd9
tree177898c5c7ec8014baa9f2539039af11bff820cb
parentaa34146e41b74d1db42239d0860537f55fca95b9
avutil/file_open: avoid file handle inheritance on Windows

Avoids inheritance of file handles on Windows systems similar to the
O_CLOEXEC/FD_CLOEXEC flag on Linux.

Fixes file lock issues in Windows applications when a child process
is started with handle inheritance enabled (standard input/output
redirection) while a FFmpeg transcoding is running in the parent
process.

Links relevant to the subject:

https://msdn.microsoft.com/en-us/library/w7sa2b22.aspx

Describes the _wsopen() function and the O_NOINHERIT flag. File handles
opened by _wsopen() are inheritable by default.

https://msdn.microsoft.com/en-us/library/windows/desktop/ms682425%28v=vs.85%29.aspx

Describes handle inheritance when creating new processes. Handle
inheritance must be enabled (bInheritHandles = TRUE) e.g. when you want
to pass handles for stdin/stdout via lpStartupInfo.

Signed-off-by: Tobias Rapp <t.rapp@noa-audio.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 474665346616e446ecd1407002fdf5f88201bf72)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavutil/file_open.c