New: FFmpeg 8+, CUDA, OpenCL, Vulkan, ShaderC, libplacebo, libVPL#88
New: FFmpeg 8+, CUDA, OpenCL, Vulkan, ShaderC, libplacebo, libVPL#88softworkz wants to merge 12 commits intoShiftMediaProject:masterfrom
Conversation
It was simply compiled by cl.exe ffbuild/bin2c.c (no params) Signed-off-by: softworkz <softworkz@hotmail.com>
Latest FFmpeg has resources which need similar treatment like .cu files. Signed-off-by: softworkz <softworkz@hotmail.com>
The $(Project) variable is not always available, causing intermediate outputs from all projects going into the same directory
…omp) - Add support for shaderc - Add support for shader (.comp) file conversion to C strings - Add support for OpenCL (.cl) file conversion to C strings - Add support for CUDA PTX compile via NVCC and conversion to C strings Signed-off-by: softworkz <softworkz@hotmail.com>
|
This all looks very nice. Thanks for the contribution! To help test and review can you split this into multiple PRs per change (e.g. libvpl, cl+spirv, libplacebo, resources, common_props, cuda, tesseract etc.). They can build off each other if that makes it easier for you, but splitting them makes it easier to get some of the simple changes in quick. The way youve actually split the commits would work fine to create a PR for each of those (Although if you can split the cuda/opencl+spirv that would amke it easier to) |
|
That's a bit tedious because it causes merge/rebase conflicts when adjacent lines are changing (like in template.rc) - this has bitten me already when preparing the PR, reshaping the commits. They are pretty much building up upon previous ones. Can't you review commit-by-commit? I have actually 5 more commits that I haven't pushed yet (to not overwhelm you). The current PR gets all working for FFmpeg 8, but for the current master, additional changes are needed which I can push as well: Adapt for new config_components.asm file All this doesn't make it easier to separate - I can split out a few simple ones. Not sure whether that makes sense, but I can try to get some of of the history. |
What this specifically means is: When I would separate all those commits with resource updates, the following would happen:
|
|
For libplacebo there are quite some adaptions required, do you want to create a repo for it (fork of libplacebo), then I could push/PR those changes there? For libvpl, I've just used Visual Studios CMake support to build it, then copied libs and headers manually, but we could create a repo for this as well with adaptions (to auto-copy). I don't think it makes sense trying to turn this into a VS solution. |
|
As noted: This PR is working with FFmpeg up to version 8 (894da5ca7d742e4429ffb2af534fcda0103ef593). |




Major Update - Supports FFmpeg 8.x and beyond
Changes
(supersedes Add support for fftools/resources #83)
smp_common.propsfileThis is imported by all projects and allows to apply changes easily and in a persistent way - i.e. your modifications do not get lost when regenerating the projects
This is the new dispatcher for Intel QSV hardware acceleration, which replaces libmfx
(supersedes Add support for CUDA compilation via NVCC #82)
(tesseract library naming is messy)
The generator doesn't work properly when configure has been run in the FFmpeg source dir.
Added detection for this case and warning will be shown
A repo will be provided with an adapted libplacebo which can be compiled on Windows without MSYS2
Supersedes #82
Supersedes #83
Closes #67
Closes #79
Closes #29
Closes #86