fixed log_level shadowing
The vulkan_sdl mapped log_level shadows the global log_level variable,
so that automatic variable log_level is compared to itself (always true).
Fixes the UG crashes caused by the multiplication of
"@executable_path/../libs/" caused by replacing multiple (originally
distinct) LC_RPATH values with this one.
+ removed invalid comment from Makefile (actually was related to
"bundle-nolib" target that is no longer present)
closes GH-436
The development in PCP seem to be very turbulent these days and it breaks
Win builds often so pin a commit in Windows CI until the situation calms
down a bit.
Do not use positional references to printf format string, which is a
POSIX extension and not supported by Windows C library.
+ write the optarg string (in case that is only partionally parsed -
atoi stopped at first non-number)
refers to GH-437
This complements the previous commit - add the device default rate to
list of rates, that are tested if work (obviously this one should work
by definition so that now testing the remaining sample rates shouldn't
take place).
For VP9, libsvt_vp9 is preferrd (if built-in, which is in Linux builds),
but it compiles with AVX2 by default, so prefer libvpx if CPU doesn't
support that.
Omit adding --read-only=/tmp fixed - now paths are "-enclosed, handle
eventual mutliplied leading / and evental trailing one and don't assume
space after (not needed now, " delimits that).
PortAudio/ASIO drivers seem refuse initialization if
CoInitilizeEx initialized as COINIT_MULTITHREADED but they do for
COINIT_APARTMENTTHREADED.
Windows devices that could be affected by this change tested and seem
to work, namely:
- DeckLink
- DirectShow
- WASAPI
refer to GH-430
The mutibyte to wide character conversion was (perhaps since the
beginning) wrong - mbtowc converts just one character - it should have
beem mbstowcs but using rather mbsrttowcs (thread-safe).
The pitch for planar pixel formats is the pitch of the first plane,
most likely =width. This yield wrong data_len for I420 if just multiplied
by the height.
this fixes the change made by 107e3e30 (2024-09-02)
v0.26 is slightly more chatty even in GPUJPEG_LL_STATUS mode (new between
INFO and VERBOSE) while the status/verbose mode maps more to debug than
UG verbose so adjust the modes as such.
It is not uncommon for swapchain image acquire to fail multiple times in
a row e.g. when the user is continuously resizing the windown with the
mouse cursor. There is really no need to raise an exception and crash
the whole process.
When vkAcquireNextImage() returns VK_SUBOPTIMAL_KHR it means that a valid
usable image was still acquired and that means that the
acquire_samaphore is pending and signalled as normal.
This means we cannot just recreate the swapchain and reuse it to acquire
an image from the new swapchain as VulkanDisplay::display_queued_image()
was doing, because the spec states that the semaphore must be unsignaled
and not pending.
The fix here is to render and display the suboptimal image as normal and
set a flag to immediately return swapchain_image_out_of_date to trigger
a swapchain recreation on the next frame.
needed for DELTACAST, otherwise manpage generation fails with:
```
dyld[40232]: Library not loaded: @rpath/VideoMasterHD.framework/Versions/A/VideoMasterHD
Referenced from: <3D8A8CBA-1094-3538-9770-331DE9A2D6D2> /Users/runner/work/UltraGrid/UltraGrid/bin/uv
Reason: tried: '/usr/local/lib/VideoMasterHD.framework/Versions/A/VideoMasterHD' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/lib/VideoMasterHD.framework/Versions/A/VideoMasterHD' (no such file), '/usr/local/lib/VideoMasterHD.framework/Versions/A/VideoMasterHD' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/lib/VideoMasterHD.framework/Versions/A/VideoMasterHD' (no such file)
Could not obtain data from UG/reflector output!
```
The file name has changed and --enable-deltacast was used just if the
download succeeded (which didn't).
Fixes the commit 98d4969b (2024-05-24) that disabled deltacast, because
the archive was not downloaded due to wrong name.
The documentation in header for
NDIlib_video_frame_v2_t.line_stride_in_bytes says that if set to 0,
default value (size of pixel * bpp) will be used.
However, this doesn't seem to work for P216 and PA16 in Windows. It does
in Linux, also 8-bit formats do not require that. However in Windows,
it causes "No data received.".
see also GH-148
Allow the MOD_NAME to be a variable (like (constexpr const char *)). Using
non-standard extension, the standard one would be __VA_OPT__. Although
it is supported with MSVC 2019/2022, it requires the compiler flag
/Zc:preprocessor.
This version doesn't require that so use it for now. The MSVC is used to
compile the CUDA code and AJA wrapper so not to complicate the things now.
This syntax is supported for both GNU and MSVC:
1. https://stackoverflow.com/a/78185169
2. https://gcc.gnu.org/onlinedocs/cpp/Variadic-Macros.html
refer to GH-375
incorrectly braced
Actually not obvious until 2f450060 (2024-09-24) in master because the
chroma x1.5 was used but clamped, which has somehow hidden that.
the build fails after switch to macos-13 on manual page generation:
```
dyld[39415]: Symbol not found: _glfwCreateWindow
Referenced from: <2CA04B35-6318-3824-91FA-664E963F3C86> /Users/runner/work/UltraGrid/UltraGrid/bin/uv
Expected in: <no uuid> unknown
Could not obtain data from UG/reflector output!
```
Please note that the corresponding error in master (from which was this
commit cherry-picked) was the following, which seems to be the same issue:
```
dyld[41003]: Symbol not found: __Z11IsRGBFormat21NTV2FrameBufferFormat
Referenced from: <2945C378-5453-3610-9AA4-63E2723BBA5D> /Users/runner/work/UltraGrid/UltraGrid/bin/uv
Expected in: <no uuid> unknown
Could not obtain data from UG/reflector output!
make: *** [uv.1] Error 3
make: *** Waiting for unfinished jobs....
```
which tries to run bin/uv with --fullhelp.
(this fails only if run within the script data/make_man.sh, not when run directly)
macOS 12 is no longer supported and as Homebrew has a policy, that it
compiles packages from sources on unsupported macOSes, it is needed to
switch to newer macOS to keep reasonable build times.
pkg.m4 macro from pkgconf since 2.3.0 aborts by default if PKG_CONFIG
is not found, which check implicitly for pkg-config. Thus set
ACTION-IF-NOT-FOUND to allow fallback check for pkgconf.