Message ID | 20220208110240.4179-4-qyot27@gmail.com |
---|---|
State | Accepted |
Commit | da9cc25c88b3fa1882ac9d0e4727ed8b465f95cf |
Headers | show |
Series | avformat/avisynth: support frame properties | expand |
Context | Check | Description |
---|---|---|
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
andriy/make_ppc | success | Make finished |
andriy/make_fate_ppc | success | Make fate finished |
On 2/8/22 6:02 AM, Stephen Hutchinson wrote: > The headers from version 3.7.1 are needed in order to support > parsing of frame properties. avs/version.h has been generated > as part of the AviSynth+ build process for a long time, but was > never installed with the includes until version 3.7.1a. Checking > for the presence of avs/version.h might have been sufficient, > but a version check mechanism might be useful in the future. > > This does not change the version compatibility with the library > itself; previous 3.x versions of AviSynth+ as well as AviSynth 2.6 > can still be used with the demuxer. > > Signed-off-by: Stephen Hutchinson <qyot27@gmail.com> > --- > configure | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/configure b/configure > index 493493b4c5..544d341b49 100755 > --- a/configure > +++ b/configure > @@ -6508,7 +6508,9 @@ for func in $COMPLEX_FUNCS; do > done > > # these are off by default, so fail if requested and not available > -enabled avisynth && require_headers "avisynth/avisynth_c.h" > +enabled avisynth && { require_headers "avisynth/avisynth_c.h avisynth/avs/version.h" && > + { test_cpp_condition avisynth/avs/version.h "AVS_MAJOR_VER >= 3 && AVS_MINOR_VER >= 7 && AVS_BUGFIX_VER >= 1 || AVS_MAJOR_VER >= 3 && AVS_MINOR_VER > 7 || AVS_MAJOR_VER > 3" || > + die "ERROR: AviSynth+ header version must be >= 3.7.1"; } } > enabled cuda_nvcc && { check_nvcc cuda_nvcc || die "ERROR: failed checking for nvcc."; } > enabled chromaprint && require chromaprint chromaprint.h chromaprint_get_version -lchromaprint > enabled decklink && { require_headers DeckLinkAPI.h && Pushed.
On 2022-02-14 05:04 am, Stephen Hutchinson wrote: > On 2/8/22 6:02 AM, Stephen Hutchinson wrote: >> The headers from version 3.7.1 are needed in order to support >> parsing of frame properties. avs/version.h has been generated >> as part of the AviSynth+ build process for a long time, but was >> never installed with the includes until version 3.7.1a. Checking >> for the presence of avs/version.h might have been sufficient, >> but a version check mechanism might be useful in the future. >> >> This does not change the version compatibility with the library >> itself; previous 3.x versions of AviSynth+ as well as AviSynth 2.6 >> can still be used with the demuxer. >> >> Signed-off-by: Stephen Hutchinson <qyot27@gmail.com> >> --- >> configure | 4 +++- >> 1 file changed, 3 insertions(+), 1 deletion(-) >> >> diff --git a/configure b/configure >> index 493493b4c5..544d341b49 100755 >> --- a/configure >> +++ b/configure >> @@ -6508,7 +6508,9 @@ for func in $COMPLEX_FUNCS; do >> done >> # these are off by default, so fail if requested and not available >> -enabled avisynth && require_headers "avisynth/avisynth_c.h" >> +enabled avisynth && { require_headers >> "avisynth/avisynth_c.h avisynth/avs/version.h" && >> + { test_cpp_condition >> avisynth/avs/version.h "AVS_MAJOR_VER >= 3 && AVS_MINOR_VER >= 7 && >> AVS_BUGFIX_VER >= 1 || AVS_MAJOR_VER >= 3 && AVS_MINOR_VER > 7 || >> AVS_MAJOR_VER > 3" || >> + die "ERROR: AviSynth+ header >> version must be >= 3.7.1"; } } >> enabled cuda_nvcc && { check_nvcc cuda_nvcc || die "ERROR: >> failed checking for nvcc."; } >> enabled chromaprint && require chromaprint chromaprint.h >> chromaprint_get_version -lchromaprint >> enabled decklink && { require_headers DeckLinkAPI.h && The advice for AVS+ dlopen consumers is to only build and install AVS+ headers. That does not install version.h and arch.h which are only built with the binary artifacts, not with -DHEADERS_ONLY. For my Windows build, I just manually copied and renamed the template files to make configure succeed. Regards, Gyan
On 2/14/22 6:56 AM, Gyan Doshi wrote: > > > On 2022-02-14 05:04 am, Stephen Hutchinson wrote: >> On 2/8/22 6:02 AM, Stephen Hutchinson wrote: >>> The headers from version 3.7.1 are needed in order to support >>> parsing of frame properties. avs/version.h has been generated >>> as part of the AviSynth+ build process for a long time, but was >>> never installed with the includes until version 3.7.1a. Checking >>> for the presence of avs/version.h might have been sufficient, >>> but a version check mechanism might be useful in the future. >>> >>> This does not change the version compatibility with the library >>> itself; previous 3.x versions of AviSynth+ as well as AviSynth 2.6 >>> can still be used with the demuxer. >>> >>> Signed-off-by: Stephen Hutchinson <qyot27@gmail.com> >>> --- >>> configure | 4 +++- >>> 1 file changed, 3 insertions(+), 1 deletion(-) >>> >>> diff --git a/configure b/configure >>> index 493493b4c5..544d341b49 100755 >>> --- a/configure >>> +++ b/configure >>> @@ -6508,7 +6508,9 @@ for func in $COMPLEX_FUNCS; do >>> done >>> # these are off by default, so fail if requested and not available >>> -enabled avisynth && require_headers "avisynth/avisynth_c.h" >>> +enabled avisynth && { require_headers >>> "avisynth/avisynth_c.h avisynth/avs/version.h" && >>> + { test_cpp_condition >>> avisynth/avs/version.h "AVS_MAJOR_VER >= 3 && AVS_MINOR_VER >= 7 && >>> AVS_BUGFIX_VER >= 1 || AVS_MAJOR_VER >= 3 && AVS_MINOR_VER > 7 || >>> AVS_MAJOR_VER > 3" || >>> + die "ERROR: AviSynth+ header >>> version must be >= 3.7.1"; } } >>> enabled cuda_nvcc && { check_nvcc cuda_nvcc || die "ERROR: >>> failed checking for nvcc."; } >>> enabled chromaprint && require chromaprint chromaprint.h >>> chromaprint_get_version -lchromaprint >>> enabled decklink && { require_headers DeckLinkAPI.h && > > The advice for AVS+ dlopen consumers is to only build and install AVS+ > headers. > That does not install version.h and arch.h which are only built with the > binary artifacts, not with -DHEADERS_ONLY. > > For my Windows build, I just manually copied and renamed the template > files to make configure succeed. > > Regards, > Gyan Should be fixed in https://github.com/AviSynth/AviSynthPlus/commit/0e583378116c857372232e9886c599df2fb8da85 with the caveat (noted in AviSynth+'s README.md) that the `make install` step now needs to explicitly invoke the VersionGen target, `make VersionGen install`. I fiddled with it for a while, but I couldn't get the install process to invoke it automatically. Related, the older GNUmakefile method is not set up to generate version.h and arch.h (especially considering both of those use *.cmake scripts), so it's now pretty clearly deprecated.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 On 2022-02-14 17:03, Stephen Hutchinson wrote: > Should be fixed in > https://github.com/AviSynth/AviSynthPlus/commit/0e583378116c857372232e9886c5 99df2fb8da85 > > with the caveat (noted in AviSynth+'s README.md) that the `make install` step > now needs to explicitly invoke the VersionGen target, `make VersionGen > install`. I fiddled with it for a while, but I couldn't get the install > process to invoke it automatically. > > Related, the older GNUmakefile method is not set up to generate version.h > and arch.h (especially considering both of those use *.cmake scripts), so > it's now pretty clearly deprecated. What is the solution? I am compiling ffmpeg with AviSynthPlus-3.5.1 and my configure just errored out with ERROR: avisynth/avisynth_c.h avisynth/avs/version.h not found Which makes sense because I don't have a version.h Do I have to use the latest git version of AviSynthPlus. Is there a fix coming for configure so that I can compile it as I did 2 days ago? Cheers, K. C. - -- regards Helmut K. C. Tessarek KeyID 0x172380A011EF4944 Key fingerprint = 8A55 70C1 BD85 D34E ADBC 386C 1723 80A0 11EF 4944 /* Thou shalt not follow the NULL pointer for chaos and madness await thee at its end. */ -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEE191csiqpm8f5Ln9WvgmFNJ1E3QAFAmIMIu0ACgkQvgmFNJ1E 3QCIRBAAt2kUYvy3+rMfskOBLISsDQm0epV4/RYWROqfUfzdn7ZWyUbshEGzEfSP EuxYSgAXcvHhNYKhdgCLPFPTD5dqmxHR/9xYagelCEoEDY898DSOw0LFWyrBpak4 qvBtZP7Xt7bzFTvtoDAr+J4yrQCZN4M8gmQLhNqsh4nOawvmYlhONjXZ1eHX49Ki 9R3XFvm8jbdUqrvsil5+SNHtrf0734HYcZ5wcXNgulcfzdGDxvuGw1wS+XI9USQv lyyom9AjgQaKZK/Kv68pVY4wLpkpVyO0KPYrfv3isNctwP69bNupRMc1BKKAPnhT 48FfSwZpU5d3CETdIXve/oX7VyWtYvNxbhqDCexlQICQgZEoWWgmUncxhVrQkMbF e5N0mYhKTd2kJ3/31qaV/OfHqCznh2/BFzz3yeM+sH1NLj/bkAQQtCQ0I4jlW2jc 3sDxhtGmLtLXen1hnvAQLsEreT+jnlilhs1kTV8j4zZZ0rZexn7q6MFGMCR8Bmsb 7YZv0gY/1evuIvcjeviuPU9eYtbKqIeWqhIg+cRvmAJkqu1f2As0jl34Uuvw2agX JdpfQ+x4R16wXlOYKTVu8hiX9l4pNvmeeNxUFLQSFs+Vz+bPVW9me4VCbVzbV+Dc MwjxnhEOnarIcozsslvJLrQIwXnN+98RSpZJFmwRAM56w6QvZ1A= =mifW -----END PGP SIGNATURE-----
On 2/15/22 5:02 PM, Helmut K. C. Tessarek wrote: > > What is the solution? > > I am compiling ffmpeg with AviSynthPlus-3.5.1 and my configure just errored > out with > > ERROR: avisynth/avisynth_c.h avisynth/avs/version.h not found > > Which makes sense because I don't have a version.h > > Do I have to use the latest git version of AviSynthPlus. Is there a fix > coming for configure so that I can compile it as I did 2 days ago? > > Cheers, > K. C. > git clone --recursive -b 3.7 https://github.com/AviSynth/AviSynthPlus [build/install as usual] -b 3.7 is equal to the tarball for 3.7.1a (which has the fix for the case of building the entire library), --recursive pulls in the submodule needed for the default AppleClang on 10.13 & 10.14. Unfortunately, Github doesn't put submodules in the tarballs. The fix on latest git was specifically for those that want to use the HEADERS_ONLY option when configuring.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 On 2022-02-15 18:55, Stephen Hutchinson wrote: > > git clone --recursive -b 3.7 https://github.com/AviSynth/AviSynthPlus > [build/install as usual] > > -b 3.7 is equal to the tarball for 3.7.1a (which has the fix for the case > of building the entire library), --recursive pulls in the submodule > needed for the default AppleClang on 10.13 & 10.14. Unfortunately, > Github doesn't put submodules in the tarballs. > > The fix on latest git was specifically for those that want to use the > HEADERS_ONLY option when configuring. Unfortunately this didn't work. Building the new AviSynthPlus results in the following errors: [ 10%] Building CXX object avs_core/CMakeFiles/AvsCore.dir/core/FilterGraph.cpp.o /Users/Shared/ffmpeg/compile/AviSynthPlus/avs_core/core/FilterGraph.cpp:510:27 : error: 'path' is unavailable: introduced in macOS 10.15 return fs::absolute(fs::path(f).lexically_normal()).generic_string(); ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain /usr/bin/../include/c++/v1/filesystem:739:24: note: 'path' has been explicitly marked unavailable here class _LIBCPP_TYPE_VIS path { ^ /Users/Shared/ffmpeg/compile/AviSynthPlus/avs_core/core/FilterGraph.cpp:510:23 : error: 'path' is unavailable: introduced in macOS 10.15 return fs::absolute(fs::path(f).lexically_normal()).generic_string(); ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain /usr/bin/../include/c++/v1/filesystem:773:3: note: 'path' has been explicitly marked unavailable here path(const _Source& __src, format = format::auto_format) { ^ /Users/Shared/ffmpeg/compile/AviSynthPlus/avs_core/core/FilterGraph.cpp:510:23 : error: '~path' is unavailable: introduced in macOS 10.15 return fs::absolute(fs::path(f).lexically_normal()).generic_string(); ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain /usr/bin/../include/c++/v1/filesystem:791:3: note: '~path' has been explicitly marked unavailable here ~path() = default; ^ /Users/Shared/ffmpeg/compile/AviSynthPlus/avs_core/core/FilterGraph.cpp:510:35 : error: 'lexically_normal' is unavailable: introduced in macOS 10.15 return fs::absolute(fs::path(f).lexically_normal()).generic_string(); ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain /usr/bin/../include/c++/v1/filesystem:1110:8: note: 'lexically_normal' has been explicitly marked unavailable here path lexically_normal() const; ^ /Users/Shared/ffmpeg/compile/AviSynthPlus/avs_core/core/FilterGraph.cpp:510:35 : error: '~path' is unavailable: introduced in macOS 10.15 return fs::absolute(fs::path(f).lexically_normal()).generic_string(); ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain /usr/bin/../include/c++/v1/filesystem:791:3: note: '~path' has been explicitly marked unavailable here ~path() = default; ^ /Users/Shared/ffmpeg/compile/AviSynthPlus/avs_core/core/FilterGraph.cpp:510:14 : error: 'absolute' is unavailable: introduced in macOS 10.15 return fs::absolute(fs::path(f).lexically_normal()).generic_string(); ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain /usr/bin/../include/c++/v1/filesystem:1477:39: note: 'absolute' has been explicitly marked unavailable here inline _LIBCPP_INLINE_VISIBILITY path absolute(const path& __p) { ^ /Users/Shared/ffmpeg/compile/AviSynthPlus/avs_core/core/FilterGraph.cpp:510:10 : error: '~path' is unavailable: introduced in macOS 10.15 return fs::absolute(fs::path(f).lexically_normal()).generic_string(); ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain /usr/bin/../include/c++/v1/filesystem:791:3: note: '~path' has been explicitly marked unavailable here ~path() = default; ^ /Users/Shared/ffmpeg/compile/AviSynthPlus/avs_core/core/FilterGraph.cpp:510:55 : error: 'generic_string' is unavailable: introduced in macOS 10.15 return fs::absolute(fs::path(f).lexically_normal()).generic_string(); ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain /usr/bin/../include/c++/v1/filesystem:1019:15: note: 'generic_string' has been explicitly marked unavailable here std::string generic_string() const { return __pn_; } ^ 8 errors generated. make[2]: *** [avs_core/CMakeFiles/AvsCore.dir/core/FilterGraph.cpp.o] Error 1 make[1]: *** [avs_core/CMakeFiles/AvsCore.dir/all] Error 2 make: *** [all] Error 2 - -- regards Helmut K. C. Tessarek KeyID 0x172380A011EF4944 Key fingerprint = 8A55 70C1 BD85 D34E ADBC 386C 1723 80A0 11EF 4944 /* Thou shalt not follow the NULL pointer for chaos and madness await thee at its end. */ -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEE191csiqpm8f5Ln9WvgmFNJ1E3QAFAmIMVGoACgkQvgmFNJ1E 3QDPqQ//RMgo35KAXz9XJqNzQ1oaQAcgyt1a84g3Je8MLBAjpdWhCeGHxPzbAP+O EPtG0ODLpnVwggPzFf2qPwpz8Q85qqGg0uEftH3xCG3HoyqRIR12OFJkXq0kI4KD mbKplHQPRnr4Fvo1jpT0jOhGXzTpEX6n3G1rV8nhC5PH+GoZ292JgfPXeLCdiWNW epk5qK4t1pzapjNSo1FCy5v6qt4s6YqzomgidjsJCXekKu2ATgPeqamiUKMerpcp zVBG3dp8GJ/StebbLPVpO+J6NzsY8dSwlpjx2hKD8TrknzvHu/W1acG3JEMKF1vF 1abpexSvg5DRaoA1P1QMf5Yr19LWkW+b7nkwjQSTgeGlZ+7mMGDhJGo+rJDyPbK4 G+HJbRwNaDHB7++9vtk0RTnTVaLseLNldVCiM/fvOzB4ONMVQEwClxVOnE/1r+1W /F7FMZCTc/npBGaDyiTjgNJjcMl8LZ10S2S85tVTjeS8GP4AAdx6Ilvz6wqslmva pHxgUjQU7Aci/G14ZBcuclpRJjfM/voaUzbpZB5188z5Ht6A6xL3aIBTTyG0t6TC Ly+sA+zvxbmMvemGeNl+uc1llddg3bF9jZ1rjx4lgMxd+48cpo8pbp3KSuz5peEL ML3VuIliQUSVqWScbQ8Z91RES881xWYnlw4dZNgDFjMSrt6AjEE= =5YwB -----END PGP SIGNATURE-----
On 2/15/22 8:33 PM, Helmut K. C. Tessarek wrote: > Unfortunately this didn't work. > > Building the new AviSynthPlus results in the following errors: > Those errors would indicate you're not on the 3.7 branch, because if the filesystem submodule isn't present, it doesn't emit those errors, it stops dead because of the missing <ghc/filesystem> header. If the submodule is there, it compiles as it should. Is the filesystem subdirectory empty?
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 On 2022-02-15 22:50, Stephen Hutchinson wrote: > Those errors would indicate you're not on the 3.7 branch, because if the > filesystem submodule isn't present, it doesn't emit those errors, it > stops dead because of the missing <ghc/filesystem> header. If the > submodule is there, it compiles as it should. Is the filesystem > subdirectory empty? Nope, I used the git command you posted. I also checked the filesystem dir: [tessus@epsilon3 0 ~/data/ext/ffmpeg/compile/AviSynthPlus/filesystem :3f1c185|✔]$ ll total 76 drwxr-xr-x 18 tessus wheel 576 2022-02-15 20:23 . drwxr-xr-x 16 tessus wheel 512 2022-02-15 20:31 .. - -rw-r--r-- 1 tessus wheel 2842 2022-02-15 20:23 .appveyor.yml drwxr-xr-x 4 tessus wheel 128 2022-02-15 20:23 .ci - -rw-r--r-- 1 tessus wheel 313 2022-02-15 20:23 .cirrus.yml - -rw-r--r-- 1 tessus wheel 576 2022-02-15 20:23 .clang-format - -rw-r--r-- 1 tessus wheel 795 2022-02-15 20:23 .drone.yml - -rw-r--r-- 1 tessus wheel 35 2022-02-15 20:23 .git drwxr-xr-x 3 tessus wheel 96 2022-02-15 20:23 .github - -rw-r--r-- 1 tessus wheel 32 2022-02-15 20:23 .gitignore - -rw-r--r-- 1 tessus wheel 4141 2022-02-15 20:23 .travis.yml - -rw-r--r-- 1 tessus wheel 1937 2022-02-15 20:23 CMakeLists.txt - -rw-r--r-- 1 tessus wheel 1086 2022-02-15 20:23 LICENSE - -rw-r--r-- 1 tessus wheel 35982 2022-02-15 20:23 README.md drwxr-xr-x 4 tessus wheel 128 2022-02-15 20:23 cmake drwxr-xr-x 5 tessus wheel 160 2022-02-15 20:23 examples drwxr-xr-x 3 tessus wheel 96 2022-02-15 20:23 include drwxr-xr-x 11 tessus wheel 352 2022-02-15 20:23 test I'm building AviSynth like this: [tessus@epsilon3 0 ~/data/ext/ffmpeg/compile/AviSynthPlus] mkdir avisynth-build && cd avisynth-build cmake -DCMAKE_INSTALL_PREFIX:PATH=${TARGET} -DBUILD_SHARED_LIBS=OFF .. make VersionGen install - ---- Until 2 days ago I could compile ffmpeg with AviSynth 3.5.1 just fine. So something must have made my configure to fail. - -- regards Helmut K. C. Tessarek KeyID 0x172380A011EF4944 Key fingerprint = 8A55 70C1 BD85 D34E ADBC 386C 1723 80A0 11EF 4944 /* Thou shalt not follow the NULL pointer for chaos and madness await thee at its end. */ -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEE191csiqpm8f5Ln9WvgmFNJ1E3QAFAmIMhzEACgkQvgmFNJ1E 3QDprg/+NckvpYpfWeq6jPKKjGmJQazTxFpE0PyyZAngEx9Du6UP49iitT4UefJH 5hOnm7Ps6gkmdNK5WZaeUHL87Vyarya6WIzdNAymzwERsapRfxdsc4YyEbh26bK6 eMf7Qz+4kZ2tfqSGvdTfCDqoYybr/nmR4W/T06jEbeV4v2OmZZieNrDPsel+BUjU 2pSSSCmglJ5qDXcDKfaqCXUtXI5TGJGKm0299yHcZq6Y+OOQGGTCz6f2JbMo0QL/ 9X9CNUXxGkCuMgJ4fsOfSq1GkhFQt0eVAIBY9/vIcXKdAPnw+qHgi/Y6OVh6FUc2 S8Y5BEcE73jkjuakimje4DV5h/TfAe6vlavM1MCuHhMblQKYstsrYaRoEkYidb2E sPp87KadqxCveYW7sTuNs0TxBuUJjWef/7NeShoBAsJTlgGgqM7Iel7ctEZz9gD7 TMOAwSqGy+B2OVXeQvQA5oLJf7I4a4WoVCUgSySKTRNh8Dq52X9wfmJPMD5iGz6K eAR0Z4jlZ3ihZ9NgrjHBqVaSNwbGsrvOlpdrNptxKwFV3ob2VFGuIw5rSJy53y++ e+WI+beujsNc1KX/oU+2CEDX5M1jua6+xBMW08gOpawB4YRxMyx3NfcJjgNwdNZq PWix846IxGDfd9O0pP7KAEmzX00Cld6b9k417ql/0m5zF1LMYw0= =NM4f -----END PGP SIGNATURE-----
On 2/16/22 12:10 AM, Helmut K. C. Tessarek wrote: > On 2022-02-15 22:50, Stephen Hutchinson wrote: >> Those errors would indicate you're not on the 3.7 branch, because if the >> filesystem submodule isn't present, it doesn't emit those errors, it >> stops dead because of the missing <ghc/filesystem> header. If the >> submodule is there, it compiles as it should. Is the filesystem >> subdirectory empty? > > Nope, I used the git command you posted. I also checked the filesystem dir: > > [tessus@epsilon3 0 ~/data/ext/ffmpeg/compile/AviSynthPlus/filesystem > :3f1c185|✔]$ ll > total 76 > drwxr-xr-x 18 tessus wheel 576 2022-02-15 20:23 . > drwxr-xr-x 16 tessus wheel 512 2022-02-15 20:31 .. > -rw-r--r-- 1 tessus wheel 2842 2022-02-15 20:23 .appveyor.yml > drwxr-xr-x 4 tessus wheel 128 2022-02-15 20:23 .ci > -rw-r--r-- 1 tessus wheel 313 2022-02-15 20:23 .cirrus.yml > -rw-r--r-- 1 tessus wheel 576 2022-02-15 20:23 .clang-format > -rw-r--r-- 1 tessus wheel 795 2022-02-15 20:23 .drone.yml > -rw-r--r-- 1 tessus wheel 35 2022-02-15 20:23 .git > drwxr-xr-x 3 tessus wheel 96 2022-02-15 20:23 .github > -rw-r--r-- 1 tessus wheel 32 2022-02-15 20:23 .gitignore > -rw-r--r-- 1 tessus wheel 4141 2022-02-15 20:23 .travis.yml > -rw-r--r-- 1 tessus wheel 1937 2022-02-15 20:23 CMakeLists.txt > -rw-r--r-- 1 tessus wheel 1086 2022-02-15 20:23 LICENSE > -rw-r--r-- 1 tessus wheel 35982 2022-02-15 20:23 README.md > drwxr-xr-x 4 tessus wheel 128 2022-02-15 20:23 cmake > drwxr-xr-x 5 tessus wheel 160 2022-02-15 20:23 examples > drwxr-xr-x 3 tessus wheel 96 2022-02-15 20:23 include > drwxr-xr-x 11 tessus wheel 352 2022-02-15 20:23 test > > I'm building AviSynth like this: > > [tessus@epsilon3 0 ~/data/ext/ffmpeg/compile/AviSynthPlus] > > mkdir avisynth-build && cd avisynth-build > cmake -DCMAKE_INSTALL_PREFIX:PATH=${TARGET} -DBUILD_SHARED_LIBS=OFF .. > make VersionGen install > > ---- > > Until 2 days ago I could compile ffmpeg with AviSynth 3.5.1 just fine. So > something must have made my configure to fail. > > I can't reproduce under the 10.14 VM. BUILD_SHARED_LIBS or not, if filesystem isn't present, it stops with a missing header error, and if it was properly '--recursive'ly cloned, the build succeeds. The only thing I can think of at this point is that the default Command Line Developer Tools fetch the utilities from Xcode 10, which are blissfully unaware of things Apple might have tried getting clever about in Xcode 11. That repeated 'error: <blank> is unavailable: introduced in macOS 10.15' message seems like something is new enough to *know* about it being present in 10.15, and might be interfering with it somehow. There is another option, basically what Gyan suggested earlier: grab the release build of 3.7.1, fetch the extra headers from the Github repo, then copy either all the contents of the tarball's /usr directory into the system /usr directory (or wherever your working ${prefix} is), or just the 'avisynth' directory into ${prefix}/include. Then try FFmpeg again. curl -L -O https://github.com/AviSynth/AviSynthPlus/releases/download/v3.7.1/AviSynthPlus_3.7.1_macOS_10.13_._10.14_x64-filesonly.tar.xz tar -xJvf AviSynthPlus_3.7.1_macOS_10.13_._10.14_x64-filesonly.tar.xz cd avisynthplus_3.7.1_macOS_10.13_\&_10.14_x64-filesonly/usr/include/avisynth/avs curl -L -o arch.h https://raw.githubusercontent.com/AviSynth/AviSynthPlus/master/avs_core/core/arch.h.in curl -L -o version.h https://raw.githubusercontent.com/AviSynth/AviSynthPlus/master/avs_core/core/version.h.in cd ../../../ sudo cp -R * /usr or cd ../../ sudo cp -R avisynth /usr/include The first option will at least allow you to test that AviSynth works when trying to use it with FFmpeg, because it'll make sure libavisynth.dylib is present.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 On 2022-02-16 02:37, Stephen Hutchinson wrote: > There is another option, basically what Gyan suggested earlier: grab the > release build of 3.7.1, fetch the extra headers from the Github repo, > then copy either all the contents of the tarball's /usr directory into > the system /usr directory (or wherever your working ${prefix} is), or > just the 'avisynth' directory into ${prefix}/include. Then try FFmpeg > again. This does not work. I compile static binaries. The filesonly tarball only has dylibs. As I mentioned nefore:. 3 days ago everything worked fine. Now the ffmpeg builds are broken and I can no longer compile ffmpeg. Is there any chancf you can add something to make it work again with 3.5.1 which compiled withtout issues on macOS 10.14 and which I've been using since it was released. - -- regards Helmut K. C. Tessarek KeyID 0x172380A011EF4944 Key fingerprint = 8A55 70C1 BD85 D34E ADBC 386C 1723 80A0 11EF 4944 /* Thou shalt not follow the NULL pointer for chaos and madness await thee at its end. */ -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEE191csiqpm8f5Ln9WvgmFNJ1E3QAFAmINQXwACgkQvgmFNJ1E 3QAphA//aAu21aLcSYXTtFdb2DlW/lAdN3y7MhIftRXuy3zqTy7BnPOpiWwm6jtw lq7Ck4IJMtFSbtH2Xh7RHqYKk1UVNZiwjIiPHhx/mBDxr+40wRdV44u00NPuQaGl 3ZHHqVSlODr0TSR9HjsW1ywM5BcxX4+FiilFHyM0JVlxTpEp6kqyisN8pRsL3Zyk o00DVvTvTQD2GDd/eN+TRVl39d+8HD0DU16PzKF6ptuQs7Xyehoh/gt89fIhv5om 7/JWhJY9ritGQYyjzZq8J7vUrQ4dB7dLQMHbULnDaRC+7XQLdeTw5IU5NuNxqw4C IUh4PbuYiiVLK0cE5HpvlPs6LwbkVvbw6Er9QtOUAtWEIys+d0sQxS5STm4NqUrB 92MXmkPqwDE8MgW5QJGo2n+vT1N4zDT49ot9aIa5NGb7PJ3WLRmqcx6RUbUKPPXn JxtM1JYaVGHQIkqzxXh1Y8nWaMX5ynkXXj/TqIL8qjOuGgpaaqX9+mo6Uj7ZU3Vp 94AvAofrTXL6t7ZvnQGR53GNwroXsmy9/ffxZLhQSRQZj7oUasIeXRgDWkuJFaPd CDvda7MXBw2A3v1Z60GhIYwZe2rbpsCL61lHFX0SmcIjy8eLk0ZbucwapnpCit0Y IVtRbJCoDDrSCEwXgmXGkrlQ/KXGlCAX35C4Rw8T5hJLKqShE58= =oTu0 -----END PGP SIGNATURE-----
> On 2022-02-16 02:37, Stephen Hutchinson wrote: > > There is another option, basically what Gyan suggested earlier: grab the > > release build of 3.7.1, fetch the extra headers from the Github repo, > > then copy either all the contents of the tarball's /usr directory into > > the system /usr directory (or wherever your working ${prefix} is), or > > just the 'avisynth' directory into ${prefix}/include. Then try FFmpeg > > again. > > This does not work. I compile static binaries. The filesonly tarball only > has dylibs. > > As I mentioned nefore:. 3 days ago everything worked fine. Now the ffmpeg > builds are broken and I can no longer compile ffmpeg. > > Is there any chancf you can add something to make it work again with 3.5.1 > which compiled withtout issues on macOS 10.14 and which I've been using > since it was released. > > - -- > regards Helmut K. C. Tessarek KeyID 0x172380A011EF4944 Hello. This probably will not help you, since I cross-compile under Ubuntu for target Win10. However, for the record I did this, not quite according to the git instructions, and it did not abort: # Changed dir from /home/u/Desktop/_working/workdir/x86_64/AviSynthPlus_git to subfolder avisynth-build cmake .. -DCMAKE_TOOLCHAIN_FILE="/home/u/Desktop/_working/workdir/mingw_toolchain.cmake" -G"Ninja" -DCMAKE_INSTALL_PREFIX=/home/u/Desktop/_working/workdir/toolchain/x86_64-w64-mingw32/x86_64-w64-mingw32 -DHEADERS_ONLY:bool=on ninja VersionGen -j 6 ninja install -j 6 Cheers
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 On 2022-02-16 18:04, hydra3333@gmail.com wrote: > This probably will not help you, since I cross-compile under Ubuntu for > target Win10. However, for the record I did this, not quite according to > the git instructions, and it did not abort: > > # Changed dir from > /home/u/Desktop/_working/workdir/x86_64/AviSynthPlus_git to subfolder > avisynth-build > > cmake .. > -DCMAKE_TOOLCHAIN_FILE="/home/u/Desktop/_working/workdir/mingw_toolchain.cma ke" > -G"Ninja" > -DCMAKE_INSTALL_PREFIX=/home/u/Desktop/_working/workdir/toolchain/x86_64-w64 - -mingw32/x86_64-w64-mingw32 > -DHEADERS_ONLY:bool=on > > ninja VersionGen -j 6 > > ninja install -j 6 The file you are referencing is not even in the AviSynthPlus source tree. Also a mingw cmake file would not be very useful on macOS. But thanks anyway. - -- regards Helmut K. C. Tessarek KeyID 0x172380A011EF4944 Key fingerprint = 8A55 70C1 BD85 D34E ADBC 386C 1723 80A0 11EF 4944 /* Thou shalt not follow the NULL pointer for chaos and madness await thee at its end. */ -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEE191csiqpm8f5Ln9WvgmFNJ1E3QAFAmINhS4ACgkQvgmFNJ1E 3QDtrBAAr+DFCh6UXswzSlJ7lE6J8GX7FxofZgq7H97L5SgCOBS7azjuF9isM6d1 OrY2WqGPsBiK6NnTvlDUtaPmtxJkZQ8OEc2YwfsX1K0lSdjWmtBlbjIoWNZTiwja H1xydX+XueWeb6Gm5c4NEXNyxsIquFW8nGTX2q8mZ8w54K3nFZhNhbPTtskzS0k6 GUyFYf8RxMICyXO1EcJhsHLu1zWTXDV72yVEIiHcyg4SNjggkJv9f4lnJSTZ9Igd FzZAWT+Z7tLg8laAftFUDeEWj1vjbUF007ldvBUl6lbg5aWfLdvsau3eEn4EKeSQ Sspl5mieo/XKljdqOugfaPRNdaK4BNv9Q/oX6gxXJ9jYacU5HhHwo8FekKXP+wbn VNvB9sYdzp/NaAlPjQE71e/jdQHMA74ETb3duV3fjaWCPehnxX0iOWhBPfhPzM0O RerC+6rCoYEJoD30jHuYDPB029Z/jdU0Y6BUCWt03MSG2M1bknsKxTcrYjRJFJ+V Rzrnh34iRwTU5sBwoevG6oI6aojHSjXY9aY4sfHmttVbkpPbVpEVpyO8/QRaysBI 0r908qY3Q1GjTBX8iNKiGyp4E0DUbtVBb7oki/7X7ZR7klSuM2jyRt+Fj7OlQCsA 4NMB3iXwMODo/OwAQ1AYVdF0j6vl+auwxo9gDMcrlHstNRehOGI= =hF9U -----END PGP SIGNATURE-----
On 2/16/22 1:25 PM, Helmut K. C. Tessarek wrote: > > On 2022-02-16 02:37, Stephen Hutchinson wrote: >> There is another option, basically what Gyan suggested earlier: grab the >> release build of 3.7.1, fetch the extra headers from the Github repo, >> then copy either all the contents of the tarball's /usr directory into >> the system /usr directory (or wherever your working ${prefix} is), or >> just the 'avisynth' directory into ${prefix}/include. Then try FFmpeg >> again. > > This does not work. I compile static binaries. The filesonly tarball only > has dylibs. > > As I mentioned nefore:. 3 days ago everything worked fine. Now the ffmpeg > builds are broken and I can no longer compile ffmpeg. > > Is there any chancf you can add something to make it work again with 3.5.1 > which compiled withtout issues on macOS 10.14 and which I've been using > since it was released. > > FFmpeg dlopens AviSynth, it only needs the headers and doesn't try to link it. It has never linked to AviSynth. If 3.5.1 is working (and by that I assume you mean you're opening a Version() script in FFplay and it's showing you the video clip with the version and copyright information), then libavisynth.dylib is somewhere on your DYLD_LIBRARY_PATH, and you could just as easily set DYLD_LIBRARY_PATH to the /usr/lib directory in the -filesonly package and that Version() script will start reporting 3.7.1 instead. After fetching the extra headers in that sequence of commands, copy the fixed-up /usr/include/avisynth in the -filesonly package to wherever it is on your system you point FFmpeg's configure to to see AviSynth's headers, whether that's the default /usr/local/include or /usr/include or somewhere in your build root. You can completely omit copying the .dylibs and it won't care. At this point, just use latest git, since that's where the HEADERS_ONLY fix resides: git clone https://github.com/AviSynth/AviSynthPlus cd AviSynthPlus mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX:PATH=${TARGET} -DHEADERS_ONLY=ON ../ make VersionGen install And HEADERS_ONLY is exactly what it says on the tin: it only sets CMake to install the headers, and stops it from building the library, which wouldn't get linked to anyway. This all did expose a major problem with the version detection inside the frame properties initialization area in the demuxer, so that check needs to be simplified and not try to be so clever. Between HEADERS_ONLY from AviSynth+-git and the simplifying patch*, which I'll need to push sometime in the next day or so, that should completely resolve the problem. *http://ffmpeg.org/pipermail/ffmpeg-devel/2022-February/293128.html
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 On 2022-02-16 19:55, Stephen Hutchinson wrote: > FFmpeg dlopens AviSynth, it only needs the headers and doesn't try to > link it. It has never linked to AviSynth. This I find strange. dlopen is rather useless when you create static binaries unless you want to ship X diffreent dylibs or SOs with the binary. There's also no static version of frei0r. Very annoying. > If 3.5.1 is working (and by that I assume you mean you're opening a > Version() script in FFplay and it's showing you the video clip with the > version and copyright information), then libavisynth.dylib is somewhere > on your DYLD_LIBRARY_PATH, and you could just as easily set > DYLD_LIBRARY_PATH to the /usr/lib directory in the -filesonly package and > that Version() script will start reporting 3.7.1 instead. It's definitely not working, since I don't ship any dylibs. I always thought 3.5.1 li9nked a static lib, but I checked. It does not. Even if I wanted to I couldn't ship any dylibs, since I can't build AviSynthPlus on macOS 10.14. > At this point, just use latest git, since that's where the HEADERS_ONLY > fix resides: And HEADERS_ONLY is exactly what it says on the tin: it only > sets CMake to install the headers, and stops it from building the > library, which wouldn't get linked to anyway. Ok, this worked. I was able to compile ffmpeg again. At least now I know that avisynth won't work with static banaries unless people install dylibs themselves. - -- regards Helmut K. C. Tessarek KeyID 0x172380A011EF4944 Key fingerprint = 8A55 70C1 BD85 D34E ADBC 386C 1723 80A0 11EF 4944 /* Thou shalt not follow the NULL pointer for chaos and madness await thee at its end. */ -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEE191csiqpm8f5Ln9WvgmFNJ1E3QAFAmIOyeMACgkQvgmFNJ1E 3QDS7g//VMqsrxTK7uC/N65ydY4MvEOhqZJcAJqTtmyDStqWrgLOr1zeTutu359I G3ah7M9/BYnZVwiVDypLgvRBNLR9F7bgv4CdG+VaV2M5Ljuv8yqiLG4ohbY6BcC3 6Da+CV2X7ylDunnGuI+jFQ2+E/DrP6lJRvMweotsLZvluTU3PCGNIpOHxt6SLq1S eN9V9UluOZT/+YYk4XOWiWpYucDBvZbRUCfcZtckKESRwpRrZCMRO9ExJXdRvNRr gyy0EIIDqAHhoEyP7RkadFuHOco4Beppalru4+UEvSwWae2B2pr8pwfFh8RUvXk6 75SNWOzfQoyndvEQR4jDv3PLFswWMv8upeGoGJHsb0NcOY31Uk0Y58kMzbzDC/eT uK8Jp5+5Gx+uOG8k/dvKQK5TllnelApSFaVbyeuzrcRnphVi6ad6OtdSPBaWKjdD BljKMkAr/plpCsfuJ9THdXIo3Q0qwoXC4l/fL8Q35uiqYcOOa8Ax/FePe/srMDnp vxtDBBzo+8nA2305OUtErEAq0XhgCnSvOyfzoXx4fWxF39N15tU2VKTDoPAkjx9A 5dx/753wos5HewC5WeESzKCALXWu5l9r/sV/Jih8rf+8YXzJweMjso+Ca2B8e7bv 2nWvPMAcqtByklBnsVpkV3QTGDaxb2c1E4XhEoTchKjVKeFzrQo= =5yaK -----END PGP SIGNATURE-----
On 2/17/22 5:19 PM, Helmut K. C. Tessarek wrote: > > It's definitely not working, since I don't ship any dylibs. I always thought > 3.5.1 li9nked a static lib, but I checked. It does not. > > Even if I wanted to I couldn't ship any dylibs, since I can't build > AviSynthPlus on macOS 10.14. > It's really the same situation as Windows: users get the FFmpeg build from whoever builds it with AviSynth support enabled, and if they want to use that functionality, they can install the official release of AviSynth+ that we provide upstream. The .dll situation on Windows is one of several reasons for the use of dlopen, as well. That's why with 3.7.0 I started providing macOS builds in the releases in both installer .pkg and -filesonly tarball form, since I know some people prefer doing it that way.
diff --git a/configure b/configure index 493493b4c5..544d341b49 100755 --- a/configure +++ b/configure @@ -6508,7 +6508,9 @@ for func in $COMPLEX_FUNCS; do done # these are off by default, so fail if requested and not available -enabled avisynth && require_headers "avisynth/avisynth_c.h" +enabled avisynth && { require_headers "avisynth/avisynth_c.h avisynth/avs/version.h" && + { test_cpp_condition avisynth/avs/version.h "AVS_MAJOR_VER >= 3 && AVS_MINOR_VER >= 7 && AVS_BUGFIX_VER >= 1 || AVS_MAJOR_VER >= 3 && AVS_MINOR_VER > 7 || AVS_MAJOR_VER > 3" || + die "ERROR: AviSynth+ header version must be >= 3.7.1"; } } enabled cuda_nvcc && { check_nvcc cuda_nvcc || die "ERROR: failed checking for nvcc."; } enabled chromaprint && require chromaprint chromaprint.h chromaprint_get_version -lchromaprint enabled decklink && { require_headers DeckLinkAPI.h &&
The headers from version 3.7.1 are needed in order to support parsing of frame properties. avs/version.h has been generated as part of the AviSynth+ build process for a long time, but was never installed with the includes until version 3.7.1a. Checking for the presence of avs/version.h might have been sufficient, but a version check mechanism might be useful in the future. This does not change the version compatibility with the library itself; previous 3.x versions of AviSynth+ as well as AviSynth 2.6 can still be used with the demuxer. Signed-off-by: Stephen Hutchinson <qyot27@gmail.com> --- configure | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)