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.
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.
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
IP*PKTINFO is defined by the Mingw-w64 headers but the structs
(eg. msghdr or cmsghdr) as defined in RFC 3542 seem to be called
differently (WSAMSG, WSACMSGHDR).
So the compat will be perhaps still required unless PCP adds support
for Win structure names. The other changes are just fixing Win-specific
headers (which may be fixed in PCP upstream eventually).
Also moved dummy Git identity setting to enfironment.sh (is now needed
also for MSW).
Added additional number validitiy check (to newly created parse_number
function). Mainly to cover inputs like '1something' where it should
not be parsed correctly as being 1.
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
Sort sampling rates for poraudio playback that are tested if the device
doesn't support natively the received sample rate.
Use lowest higher or equal sampling rate if possible, if not, use the
highest usable sampling rate.
Also remove note in qsort_s.h (no longer valid - can be included where
approopriate, not only before first inclusion of stdlib.h).
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.
- setup_firejail was not passed the whole command-line as the fucnction
(and subsequently called ones) expected
- 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
This reverts commit 91b56cddab.
The ppa:savoury1/ffmpeg4 repo is no longer used with ubuntu-22.04
runner but FFmpeg currently needs Vulkan v1.3.277 ibut the distro has
only 1.3.204.
The commit b785c3d8 from 2024-08-05 changed the default unconditionally
to PCM, but this has been true just for UltraGrid RTP, not RTSP or SDP
that used MP3, so this change reverts it back.
If the input is already compressed, try to pass it further. Initialize
the compression just if receiving uncompressed data.
This is implemented in the same way as it already is in vrxtx/sdp.
refers to GH-433