Re: [FFmpeg-devel] [PATCH v3 5/5] fftools: Enable long path support on Windows (fixes #8885)
> 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. ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH v3 5/5] fftools: Enable long path support on Windows (fixes #8885)
On Wed, 16 Feb 2022, nihil-admirari wrote: --- fftools/Makefile | 5 + fftools/long_paths_utf8.manifest | 12 fftools/long_paths_utf8.rc | 3 +++ 3 files changed, 20 insertions(+) create mode 100644 fftools/long_paths_utf8.manifest create mode 100644 fftools/long_paths_utf8.rc diff --git a/fftools/Makefile b/fftools/Makefile index da42078..53438b6 100644 --- a/fftools/Makefile +++ b/fftools/Makefile @@ -11,6 +11,11 @@ ALLAVPROGS_G = $(AVBASENAMES:%=%$(PROGSSUF)_g$(EXESUF)) OBJS-ffmpeg+= fftools/ffmpeg_opt.o fftools/ffmpeg_filter.o fftools/ffmpeg_hw.o +# Windows resource files +OBJS-ffmpeg-$(HAVE_GNU_WINDRES) += fftools/long_paths_utf8.o +OBJS-ffplay-$(HAVE_GNU_WINDRES) += fftools/long_paths_utf8.o +OBJS-ffprobe-$(HAVE_GNU_WINDRES) += fftools/long_paths_utf8.o + define DOFFTOOL OBJS-$(1) += fftools/cmdutils.o fftools/$(1).o $(OBJS-$(1)-yes) $(1)$(PROGSSUF)_g$(EXESUF): $$(OBJS-$(1)) diff --git a/fftools/long_paths_utf8.manifest b/fftools/long_paths_utf8.manifest new file mode 100644 index 000..d1ac1e4 --- /dev/null +++ b/fftools/long_paths_utf8.manifest @@ -0,0 +1,12 @@ + + + + + +http://schemas.microsoft.com/SMI/2016/WindowsSettings"; + xmlns:ws2019="http://schemas.microsoft.com/SMI/2019/WindowsSettings";> + true + UTF-8 Generally UTF-8 codepage should not be needed, because unicode windows functions should be used everywhere, right? I'd perfer if you enable UTF8 codepage in a separate patch. 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. Thanks, Marton + + + diff --git a/fftools/long_paths_utf8.rc b/fftools/long_paths_utf8.rc new file mode 100644 index 000..f33de76 --- /dev/null +++ b/fftools/long_paths_utf8.rc @@ -0,0 +1,3 @@ +#include + +CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "long_paths_utf8.manifest" -- 2.32.0 ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".