This fixes a bug where the NVIDIA NVAFX filters are migrated but not
kept in their original order, with respect to other filters.
Signed-off-by: pkv <pkv@obsproject.com>
The code that checked frame types was used by both the MSDK < 1.7 code
and by the debug code afterward that was conditionally enabled with a
preprocessor check. Since the frame type checks are no longer used by
user code, move it to the debug/dev code.
The old MSDK 1.6 code paths were for older devices which we no longer
support. Typically, version 1.0 is reported when QSV fails to
initialize. The lowest version that should be supported is 1.35, so we
should not need code that covers versions 1.0 to 1.6.
Multiple APIs may be set up to capture without being initialized in
graphics-hook when multiple threads are sending present calls. This just
prevents those invalid captures from completing.
This warning is already enabled for Clang which causes issue for things
that are usually built with MSVC or GCC (e.g. non-macOS plugins).
obs-nvenc switch warning is also fixed in this commit.
obs-qsv11 has switch warning set to not become errors.
Clang 19 has become more strict about mixing different enum types, which
resulted in an error building multimedia/obs-studio on FreeBSD:
/wrkdirs/usr/ports/multimedia/obs-studio/work/obs-studio-30.2.3/plugins
/obs-outputs/flv-mux.c:659:37: error: bitwise operation between
different enumeration types ('enum multitrack_type_t' and 'enum
packet_type_t') [-Werror,-Wenum-enum-conversion]
MbedTLS changed a lot of internals with their LTS version 3.6.0, which
are incompatible with the find module currently shipped with
OBS Studio.
The solution requires several changes to be applied at once:
* Rename the generated target name to MbedTLS::mbedtls to match the
name used by MbedTLS' own CMake package
* Update find module to use the updated target name(s)
* Set CMAKE_FIND_PACKAGE_PREFER_CONFIG to TRUE before trying to find
MbedTLS to ensure that CMake package files are used with priority
(Those are shipped only with MbedTLS 3.6.0 in obs-deps).
* A deprecation warning is emitted if the find module is used with
MbedTLS 3.6.0 available
We check that mids is a nullptr which may not be the case if this
remains uninitialized. Earlier attempt to fix this assumed we faulted on
the response itself.
fixes#11221
At some point NVIDIA started using NV_ENC_ERR_INCOMPATIBLE_CLIENT_KEY
instead of NV_ENC_ERR_OUT_OF_MEMORY to signal that the session limit
has been exceeded.
If speex and rnnoise are disabled but nvafx is enabled, the noise
reduction filter still needs to be built. This fixes the issue.
Co-authored-by: Ryan Foster <ryan@obsproject.com>
Signed-off-by: pkv <pkv@obsproject.com>