[FFmpeg-devel] [PATCH v2 2/2] avformat/os_support: Support long file names on Windows
softworkz
ffmpegagent at gmail.com
Mon May 16 01:17:51 EEST 2022
From: softworkz <softworkz at hotmail.com>
Signed-off-by: softworkz <softworkz at hotmail.com>
---
libavformat/os_support.h | 26 +++++++++++++++++++++-----
1 file changed, 21 insertions(+), 5 deletions(-)
diff --git a/libavformat/os_support.h b/libavformat/os_support.h
index 5e6b32d2dc..bd8c89568f 100644
--- a/libavformat/os_support.h
+++ b/libavformat/os_support.h
@@ -49,7 +49,23 @@
# ifdef stat
# undef stat
# endif
-# define stat _stati64
+# define stat win32_stat
+
+ struct win32_stat
+ {
+ _dev_t st_dev;
+ _ino_t st_ino;
+ unsigned short st_mode;
+ short st_nlink;
+ short st_uid;
+ short st_gid;
+ _dev_t st_rdev;
+ __int64 st_size;
+ __time64_t st_atime;
+ __time64_t st_mtime;
+ __time64_t st_ctime;
+ };
+
# ifdef fstat
# undef fstat
# endif
@@ -153,7 +169,7 @@ static inline int win32_##name(const char *filename_utf8) \
wchar_t *filename_w; \
int ret; \
\
- if (utf8towchar(filename_utf8, &filename_w)) \
+ if (get_extended_win32_path(filename_utf8, &filename_w)) \
return -1; \
if (!filename_w) \
goto fallback; \
@@ -177,7 +193,7 @@ static inline int win32_##name(const char *filename_utf8, partype par) \
wchar_t *filename_w; \
int ret; \
\
- if (utf8towchar(filename_utf8, &filename_w)) \
+ if (get_extended_win32_path(filename_utf8, &filename_w)) \
return -1; \
if (!filename_w) \
goto fallback; \
@@ -199,9 +215,9 @@ static inline int win32_rename(const char *src_utf8, const char *dest_utf8)
wchar_t *src_w, *dest_w;
int ret;
- if (utf8towchar(src_utf8, &src_w))
+ if (get_extended_win32_path(src_utf8, &src_w))
return -1;
- if (utf8towchar(dest_utf8, &dest_w)) {
+ if (get_extended_win32_path(dest_utf8, &dest_w)) {
av_free(src_w);
return -1;
}
--
ffmpeg-codebot
More information about the ffmpeg-devel
mailing list