Open wbtcpip2 opened 1 year ago
Haven't had time to test it yet, but I suspect it's due to FFmpeg ddc1cd5cdd2570bf3d6ab807ee0ecfacdf09431d
I am compiling a 64bit only version of the script and have the same error.
02:16:13 Running git update for ffmpeg...
02:16:14 ┌ ffmpeg git ............................... [Recently updated]
02:16:14 ├ Changing options to comply to nonfree...
CUDA_PATH environment variable not set or directory does not exist.
02:16:19 ├ Compiling static FFmpeg...
02:16:19 ├ Running configure...
Likely error (tail of the failed operation logfile):
CXXFLAGS: -fstack-protector-strong -mtune=generic -O2 -pipe -mthreads
LDFLAGS: -pipe -static-libgcc -fstack-protector-strong -static-libstdc++ -L/local64/lib -L/mingw64/lib
../configure --prefix=/local64 --bindir=/local64/bin-video --pkg-config=pkgconf --pkg-config-flags=--keep-system-libs --keep-system-cflags --static --cc=ccache gcc --cxx=ccache g++ --ld=ccache g++ --extra-cxxflags=-fpermissive --extra-cflags=-Wno-int-conversion --disable-autodetect --enable-amf --enable-bzlib --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-iconv --enable-lzma --enable-nvenc --enable-zlib --enable-sdl2 --enable-ffnvcodec --enable-nvdec --enable-cuda-llvm --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libdav1d --enable-libaom --disable-debug --enable-libfdk-aac --enable-fontconfig --enable-libass --enable-libbluray --enable-libfreetype --enable-libmfx --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libwebp --enable-libxml2 --enable-libzimg --enable-libshine --enable-gpl --enable-avisynth --enable-libxvid --enable-libopenmpt --enable-version3 --enable-librav1e --enable-libsrt --enable-libgsm --enable-libvmaf --enable-libsvtav1 --enable-chromaprint --enable-decklink --enable-frei0r --enable-libaribb24 --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfribidi --enable-libgme --enable-libilbc --enable-libsvthevc --enable-libsvtvp9 --enable-libkvazaar --enable-libmodplug --enable-librist --enable-librtmp --enable-librubberband --enable-libtesseract --enable-libxavs --enable-libzmq --enable-libzvbi --enable-openal --enable-libcodec2 --enable-ladspa --enable-libglslang --enable-vulkan --enable-libdavs2 --enable-libxavs2 --enable-libuavs3d --enable-libplacebo --enable-libjxl --enable-opencl --enable-opengl --enable-libopenh264 --enable-openssl --extra-cflags=-DLIBTWOLAME_STATIC --extra-libs=-lstdc++ --extra-cflags=-DCACA_STATIC --extra-cflags=-DMODPLUG_STATIC --extra-cflags=-DCHROMAPRINT_NODLL --extra-libs=-lstdc++ --extra-cflags=-DZMQ_STATIC --extra-libs=-lpsapi --extra-cflags=-DLIBXML_STATIC --extra-libs=-liconv --disable-w32threads --extra-cflags=-DKVZ_STATIC_LIB --enable-nonfree --extra-cflags=-DAL_LIBTYPE_STATIC --extra-cflags=-IE:/ffmpeg_compile/local64/include --extra-cflags=-IE:/ffmpeg_compile/local64/include/AL --extra-version=g7e246a5db5+3
ERROR: dxva2 requested, but not all dependencies are satisfied: dxva2api_h DXVA2_ConfigPictureDecode ole32 user32
Haven't had time to test it yet, but I suspect it's due to FFmpeg ddc1cd5cdd2570bf3d6ab807ee0ecfacdf09431d
It is. It breaks the ole32 check, since defining WIN32_LEAN_AND_MEAN so early purposely skips including a bunch of headers, notably the one containing CoTaskMemFree() (which is what the ole32 test looks for). The upstream change is meant to address a conflict, though, so just reverting it may not be a great idea either.
I would hate to see the project become overladen with options, but possibly one solution is to limit the build versions to a specific known stable release rather than the most recent bleeding edge release. https://ffmpeg.org/download.html#releases
One recent problem introduced was fixed in a similar manner (see https://github.com/m-ab-s/media-autobuild_suite/issues/2497)
possibly one solution is to limit the build versions to a specific known stable release rather than the most recent bleeding edge release. https://ffmpeg.org/download.html#releases
You can already do this by using either an _extra.sh script or editing media-suite_deps.sh. I use quite a few _extra scripts locally to apply my own patches to certain encoders/ffmpeg as well as changing env variables like CFLAGS for specific projects, so I just create/add lines to _extra scripts to avoid having to edit media-suite_compile.sh every time something changes or goes wrong. Once upstream fixes something, it's as easy as just deleting the line (or script if it's the only thing in there).
the script can be configured to use an older version of ffmpeg apparently
in the following .ini \build\media-autobuild_suite.ini
change this entry to the following ffmpegPath=https://git.ffmpeg.org/ffmpeg.git#tag=n5.1.3
I don't know if this breaks anything, use at your own risk
You can already do this by using either an _extra.sh script or editing media-suite_deps.sh. I use quite a few _extra scripts locally to apply my own patches to certain encoders/ffmpeg as well as changing env variables like CFLAGS for specific projects, so I just create/add lines to _extra scripts to avoid having to edit media-suite_compile.sh every time something changes or goes wrong. Once upstream fixes something, it's as easy as just deleting the line (or script if it's the only thing in there).
ooh, that is exciting ! could you please provide an example of _extra.sh script for changing env variables like CFLAGS for specific projects ? thank you
There's a patch upstream - https://patchwork.ffmpeg.org/project/ffmpeg/patch/20230819211246.51724-1-martin@martin.st/
ooh, that is exciting ! could you please provide an example of _extra.sh script for changing env variables like CFLAGS for specific projects ? thank you
I only really added options to CFLAGS in those, so it was pretty much a "save and restore" sequence (just assign the current val to a temp var, set/use a new CFLAGS, then restore the temp var's value to CFLAGS). Be sure to look at what media-suite_compile.sh is doing for that directory first, though, since it may be adding back stuff at compile time that you don't want. If that's the case, you probably need to edit media-suite_compile.sh directly.
These days, I actually don't do any environment changes in _extras.sh scripts, though. I patch the same encoders/ffmpeg for other things anyway, so I just add CFLAGS changes to my patches for portability reasons. Here's a simplified version of my aom_extras.sh that applies a patch to enable lto-related options to aom:
#!/bin/bash
_post_vcs() {
patch -p1 -i "$LOCALBUILDDIR/aom_lto-enable.patch"
}
Here's a snippet you could include to alter the reference/tag if you want to pull a specific version of a repo (this was from back when I compiled vulkan-loader, so it's an admittedly old ref):
_pre_vcs() {
ref=sdk-1.3.236
}
Bear in mind, I have not used that snippet since the addition of the media-suite_deps.sh bits, so I'm not sure how nicely it'll play with vcs urls that already include a tag or ref. I assume it should still work, but I haven't test it.
This has been fixed upstream.
my final goal is to build libmpv 32 bit but i'm stuck with this error. Any help to bypass it?
logs.zip