[FFmpeg-devel] [PATCH v3 5/5] fftools: Enable long path support on Windows (fixes #8885)

nil-admirari at mailo.com nil-admirari at mailo.com
Fri Feb 18 21:03:59 EET 2022


> Generally UTF-8 codepage should not be needed, because unicode windows 
functions should be used everywhere, right?

No. FFmpeg does not seem to use WinAPI ANSI functions explicitly, but it still uses ordinary stdlib functions (fopen etc.) instead of their wide equivalents. See https://ffmpeg.org/pipermail/ffmpeg-devel/2022-February/293169.html.

> And use simple fftools/fftools.manifest and fftools/manifest.rc as filenames, because 
later other things might be put there, not only utf8/longpath support.

Done in https://ffmpeg.org/pipermail/ffmpeg-devel/2022-February/293204.html.

> I'd perfer if you enable UTF8 codepage in a separate patch.

Done in https://ffmpeg.org/pipermail/ffmpeg-devel/2022-February/293207.html.

Actually, UTF-8 codepage was already absent in the fourth version of this patch: https://ffmpeg.org/pipermail/ffmpeg-devel/2022-February/293168.html. Microsoft documentation (https://docs.microsoft.com/en-us/windows/win32/sbscs/application-manifests) says that manifests can be added to DLLs too, and does not say whether longPathAware and activeCodePage apply to the process or to individual DLLs loaded into it. Thus I wasn't sure whether ANSI-encoded strings passed to external APIs will be decoded correctly. Unfortunately, if it were that longPathAware is per DLL, manifests would need to be added to avformat.dll etc., so I decided to test how things actually work. It turned out that longPathAware and activeCodePage are applied per process, which means that all externally loaded libraries will have CP_ACP set to CP_UTF8, which means that there should be no problem in using activeCodePage in FFmpeg.

For some reason, fifth version of patches ended up being sent as separate messages. Only the second part (https://ffmpeg.org/pipermail/ffmpeg-devel/2022-February/293206.html) is a reply to the first (https://ffmpeg.org/pipermail/ffmpeg-devel/2022-February/293205.html). It's a strange email glitch. I swear I used git send-email to send these patches.





More information about the ffmpeg-devel mailing list