pr-ffstaging-28/softworkz/submit_long_filenames-v8
tagged this
26 May 09:28
This patchset adds support for long file and directory paths on Windows. The implementation follows the same logic that .NET is using internally, with the only exception that it doesn't expand short path components in 8.3 format. .NET does this as the same function is also used for other purposes, but in our case, that's not required. Short (8.3) paths are working as well with the extended path prefix, even when longer than 260. Successfully tested: * Regular paths wth drive letter * Regular UNC paths * Long paths wth drive letter * Long paths wth drive letter and forward slashes * Long UNC paths * Prefixed paths wth drive letter * Prefixed UNC paths I have kept the individual functions separate on purpose, to make it easy to compare with the .NET impl. (compilers should inlinie those anyway) v2 * wchar_filename: Improve comments and function documentation * os_support: adjust defines to use win32_stat v3 * removed length check in path_is_extended() * added path_is_device_path() check in add_extended_prefix() * add_extended_prefix(): clarified doc and add checks * clarified string allocation length calculation * replaced 260 with MAX_PATH * removed redundant checks after normalization v4 * rebased. no changes v5 * resolved the ugly struct duplication * compatible with _USE_32BIT_TIME_T v6 * wchar_filename.h: added links to .NET source code * wchar_filename.h: free allocations on error * os_support.hs: use clean and safe way to redirect stat() calls v7 * os_support.h: remapped fstat with win32_stat structure * os_support.h: use int64_t for some members * avformat/file: remove _WIN32 condition v8 * os_support.h: documented win32_stat structure * os_support.h: renamed function parameters softworkz (3): avutil/wchar_filename,file_open: Support long file names on Windows avformat/os_support: Support long file names on Windows avformat/file: remove _WIN32 condition libavformat/file.c | 4 - libavformat/os_support.h | 116 ++++++++++++++++++------ libavutil/file_open.c | 2 +- libavutil/wchar_filename.h | 180 +++++++++++++++++++++++++++++++++++++ 4 files changed, 272 insertions(+), 30 deletions(-) base-commit: 6076dbcb55d0c9b6693d1acad12a63f7268301aa Submitted-As: https://master.gitmailbox.com/ffmpegdev/pull.28.v8.ffstaging.FFmpeg.1653557330.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.28.ffstaging.FFmpeg.1652435595.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.28.v2.ffstaging.FFmpeg.1652653071.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.28.v3.ffstaging.FFmpeg.1652736203.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.28.v4.ffstaging.FFmpeg.1653305371.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.28.v5.ffstaging.FFmpeg.1653381808.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.28.v6.ffstaging.FFmpeg.1653400709.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.28.v7.ffstaging.FFmpeg.1653430851.ffmpegagent@gmail.com
Assets 2
-
2022-05-26T09:28:50Z -
2022-05-26T09:28:50Z -