* Make multiple MacOS variants targeting different Metal versions
Different MacOS versions support different maximum Metal versions. As we build on MacOS 14, it's
likely that when embedding the Metal shaders into the Metal backend they're being built for
Metal 3.1, the maximum supported version on MacOS 14. This may be why users are seeing crashes
when trying to use Metal on older versions of MacOS
This will also allow users of MacOS 15 and newer to take advantage of improvements from Metal 3.2
* Fix checking incorrect env var for MacOS version
* Update Whispercpp deps to 0.0.12
Updates Vulkan on Windows to 1.4.328.1 and fixes ROCm/HIP by building for all available GPU architectures
* Reorder acceleration options alphabetically for Windows and Linux
Makes life easier when updating checksums for whisper deps updates
* Update Whisper.cpp and add Linux acceleration (source builds only)
Update Whisper.cpp from v1.6.2 to v1.8.1
Supported Linux acceleration methods:
* CUDA
* hipblas
* Vulkan
* OpenCL
If suitable development libraries are installed for any of the above when building from source, then support for them
will be built into both whisper.cpp and the LocalVocal plugin
* Test behaviour with combinations of multiple backends
* Use found dependencies to decide which acceleration features to enable
Also try to build Whispercpp from source on Windows with acceleration (not working)
* Add GPU device selection option in plugin settings
Allows the selection of which GPU backend to use if more than one is
available, as well as disabling GPU backends in case the only
available ones don't work or are somehow slower than the CPU alone
* Add OpenCL support for Linux source build
* Comment out seemingly unused DISABLE_ONNX_RUNTIME_GPU option
* Update prebuilt Whisper deps to 0.0.9 (Whisper 1.8.2) and refactor cmake file
* Handle new GGML IGPU device type
* Bump whisper deps to 0.0.9-1 to fix hipblas
* Try to avoid running apt in CI when packages are cached
* Add option to enable/disable flash attention
* Install Vulkan SDK properly for CI build and try adding OpenCL and hip dev libs
* Build with shared libs on linux and allow use of dynamic backends
* Update deps to 0.0.10 (runtime module linking/importing is likely broken)
* Update deps to 0.0.10-2; try to fix linking & other platform specific issues
* Bump version number to 0.5.0
* Fix Ubuntu packaging
* Fix dynamic linking on MacOS
* Update README
* Cleanup CMake files a bit and make prebuilt build on Linux the default over full source build
* Fix Linux full source build
* Download CoreML models on MacOS if possible
When using CoreML with Whispercpp, it needs additional encoder models so attempt to download the appropriate model and
symlink it to the location where whisper expects it to be
* Try fix windows build
* Remove erroneous entry in models registry
* Try caching ICU build prefix to speed up CI times
* Don't bother with Linux ICU cache
The Linux build spends most of its time installng packages with apt not building ICU
* Reduce ICU cache size by not including src dir
* Try caching linux apt packages
* Find cached ICU correctly
* Use specific version of cache-apt-packages-action
* Format CMakeLists.txt
* Fix checking of find_library vars
* Empty commit to check improved build times after caching
* Add qt base dev packages to cached CI packages
* Fix crash when using translations with buffered output
When using buffered output with the output type set to character, split strings by unicode characters instead of bytes
to avoid causing a crash by trying to send invalid UTF-8 strings to the text output source
* Windows has to be special v.v
* Update buffer thread output sources when changed
* Format
* Fix local translation being overwritten by transcription
* Refactor
* Make custom translation API placeholders match default config
* Clear translation text sources when changed
* Format code
* Add token buffer thread for cloud translations
* Temporarily disable buffered output for translations
It causes a crash v.v
* Enable some CT2 backends on Linux
* Might as well enable OpenBLAS for whisper too
* Format cmake files
* Update README to add info about OpenBLAS now being a required dependency
* Fix OpenBLAS dependencies and linking for Ubuntu package
* Downgrade ONNX runtime to 1.20.1 for MacOS 12 compatibility
Later versions than this removed support for MacOS 12, but as we support the same MacOS versions as OBS which supports
MacOS 12, we want to keep supporting it too.
Also bump the minimum required version when using a system installed ONNX runtime, for consistency.
Fixes: #248
* Fix CMake formatting
* Remove ONNX error codes added in later versions of the lib
Revert changes to Windows CMake helpers from #231
I missed that I'd broken the copying of data files to the correct dir for Windows when trying to fix the builds for OBS v32
Apparently whisper.cpp has the ability to set a callback function that is called when there's an error in the GGML
processing. It's poorly (not at all) documented, and seems to take a string argument, though the parameter is always
`null` when it's been called, but having it set seems to prevent some crashes... somehow?? I guess it expects there to
be one, so if there isn't we get a null pointer exception
* Squashed 'deps/c-webvtt-in-video-stream/' changes from 5579ca6..3d44cbd
3d44cbd Add h265 support
7f96bcf Extract various bits of h264 functionality to prepare for h265 support
698793a Prepare `h264::NalUnitWrite` for reuse with h265
git-subtree-dir: deps/c-webvtt-in-video-stream
git-subtree-split: 3d44cbd5039e3ea247972f44f73a66e08cea6e71
* Add h265 support
* Squashed 'deps/c-webvtt-in-video-stream/' changes from 3d44cbd5..d599f6f0
d599f6f0 Add av1 support
11693f6a Extract header writing semantics
e7eb1894 Convert h264/h265 header writing to bitwriters
git-subtree-dir: deps/c-webvtt-in-video-stream
git-subtree-split: d599f6f0142e24ba9a7daeee252da9f055aa39c4
* Add av1 support
* Fix subtitle track name lookup