From: Soft Works <softworkz@hotmail.com> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Subject: Re: [FFmpeg-devel] [PATCH v13 2/4] libavformat/avisynth.c: Remove MAX_PATH limit Date: Sun, 12 Jun 2022 04:24:09 +0000 Message-ID: <DM8P223MB0365EAA52569001B4E6BEF37BAA89@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM> (raw) In-Reply-To: <47f70332-09d2-91a2-87f2-e2bea69275e3@gmail.com> > -----Original Message----- > From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of > Stephen Hutchinson > Sent: Sunday, June 12, 2022 4:15 AM > To: ffmpeg-devel@ffmpeg.org > Subject: Re: [FFmpeg-devel] [PATCH v13 2/4] libavformat/avisynth.c: > Remove MAX_PATH limit > > On 6/11/22 1:01 PM, nil-admirari@mailo.com wrote: > >> Why not use the AviSynth mechanism that allows to supply a UTF-8 > string? > >> > >> > https://github.com/AviSynth/AviSynthPlus/blob/c377916aa4146d2f4386852 > d91dc177d49103c16/avs_core/core/parser/script.cpp#L477-L481 > > > > Was not aware such a mechanism exists. > > > > Commit dates back to 10 April 2017, first release supporting it is, > apparently, Avisynth+ r2487-MT: > https://github.com/pinterf/AviSynthPlus/releases/tag/r2489-MT. > > > > A remark in > https://github.com/FFmpeg/FFmpeg/blob/master/libavformat/avisynth.c#L > 844 says: > > > > /* On Windows, FFmpeg supports AviSynth interface version 6 or > higher. > > * This includes AviSynth 2.6 RC1 or higher, and AviSynth+ r1718 > or higher, > > * and excludes 2.5 and the 2.6 alphas. */ > > > > Support for plain AviSynth will have to be dropped. > > Presumably, the original manifest idea, parsed down to only using it > to > force FFmpeg into UTF-8, would be sufficient for this, right? As This is a change that would affect ffmpeg behavior at a global level, just for the sake of accommodating for a single 3rd party library (and even: only some ancient versions of it). > as AviSynth inherits that from FFmpeg, UTF-8 strings would be > pervasive > and both A) the utf8 parameter would not need to be used and B) 2.6 > would work just fine with it, transparently. > The Windows API does have a SetConsoleCP function. If that > accomplishes > the same effect as the manifest idea, that would be simpler, but it > probably would need to be located somewhere *other* than the AviSynth > demuxer. ffmpeg does not interact with AviSynth via console interface. AFAIU, it uses AviSynth in-process loading it via an API instead: val = avs_library.avs_invoke(avs->env, "Import", arg, 0); Those functions like SetConsoleCP and SetConsoleOutputCP, have no effect on the current process, it's only about console pipe communication with child (cli) processes. The manifest approach is too invasive IMO, as laid out before. At least with regards to AviSynthPlus versions since two years ago, we're not talking about long paths anymore. AviSynthPlus is using the same prefixing approach for long paths that we have employed in ffmpeg as well, now. The only question is whether we supply the script/path argument to AviSynthPlus as Ansi or UTF-8 string. It will handle long paths in both cases. The only difference is that when we're converting a UTF-8 path to an Ansi codepage, it might become an invalid path when the projection would be ambiguous. It's been like that all the time before - nothing new about it. There are functions available to check the version: avs_get_version, avs_check_version, So - in case that requiring AviSynthPlus from 2020 as a minimum would be undesirable, it should be possible to find out at runtime whether the loaded AviSynth supports the UTF8 parameter or not and set the invoke parameters accordingly. Best regards, softworkz _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
next prev parent reply other threads:[~2022-06-12 4:24 UTC|newest] Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-06-09 19:04 [FFmpeg-devel] [PATCH v13 1/4] libavutil/wchar_filename.h: Add whcartoutf8, wchartoansi and utf8toansi Nil Admirari 2022-06-09 19:04 ` [FFmpeg-devel] [PATCH v13 2/4] libavformat/avisynth.c: Remove MAX_PATH limit Nil Admirari 2022-06-10 12:56 ` Soft Works 2022-06-11 17:01 ` nil-admirari 2022-06-12 2:15 ` Stephen Hutchinson 2022-06-12 4:24 ` Soft Works [this message] 2022-06-13 16:53 ` nil-admirari 2022-06-09 19:04 ` [FFmpeg-devel] [PATCH v13 3/4] compat/w32dlfcn.h: Remove MAX_PATH limit and replace LoadLibraryExA with LoadLibraryExW Nil Admirari 2022-06-10 18:50 ` Michael Niedermayer 2022-06-13 16:47 ` nil-admirari 2022-06-09 19:04 ` [FFmpeg-devel] [PATCH v13 4/4] fftools/cmdutils.c: Remove MAX_PATH limit Nil Admirari
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=DM8P223MB0365EAA52569001B4E6BEF37BAA89@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM \ --to=softworkz@hotmail.com \ --cc=ffmpeg-devel@ffmpeg.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel This inbox may be cloned and mirrored by anyone: git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \ ffmpegdev@gitmailbox.com public-inbox-index ffmpegdev Example config snippet for mirrors. AGPL code for this site: git clone https://public-inbox.org/public-inbox.git