When we're not building vulkan-loader the .pc file may not be found at all or
it may contain the C++ runtime export. To properly use libplacebo from C code
we need to link with the C++ runtime of vulkan-loader.
It's not a good idea to rebuild vulkan-loader on behalf of the system which
contains it with its own settings. So we set the C++ runtime in the library
that uses it.
It is needed when libplacebo links with vulkan-loader.
We use the libplacebo link parameter from the pkg-config file.
The vulkan-loader link parameters are propagated through the Requires part
of the libplacebo.pc.
The vulkan dependency was added since 5e41228e76
And vulkan-loader generates the proper C++ runtime links since
f61b89f46e
That's since 1.1.77 from 2018.
The current mechanism was made to limit the number of lock/wait from an
audio callback.
Nevertheless, it makes the input/decoder.c code more complex, preventing
the merge of the 2 mutexes, that could help fix#26915. Indeed, you
can't use the same lock for the audio callback and for calling
aout_stream functions.
This commit make the following change: vlc_clock_Update() will be called
directly from aout_TimingReport().
Here are the potential mutexes that can be held when calling
vlc_clock_Update():
- The clock mutex
- The player will likely listen to clock events, and thus, hold a
player_timer mutex (but not the player "global" mutex).
- A gui module or libVLC will likely listen to player timer events, and
send these events to the main thread asynchronously (likely one more
mutex)
All operations that are executed with theses mutexes held are fast
(there is no wait, I/0, big calculation).
first_pts will be read directly from the timing callback. Therefore set
it before the first play (since timing are reported only after the first
play).
afterRendering is emitted before the frame is presented, on
afterRendering signal we update the x11 compositor but the frame is not
presented yet, so the compositor paints the old frame instead of new one
fixes#27188
The mode can never be NULL. If it was, autodetect is set to false so we never
reach this code.
We can optimize the strlen() calls with a single strnlen() call that will only
test up to 5 chars to check we don't have 3 or 4 chars.
We provide the proper C++ runtime in our pkg-config files. If it comes from the
system it should either be a dynamic library (likely) or a static library that
should do it as well. Otherwise it's the problem of the system maintainers.
It is currently unspecified what happens if the process does not exit
cleanly, so clarify that. Since this can actually happen, the
documentation ought to state what the result is to some extent.
In some cases the tarballs are corrupted. If the extraction of the tarball
fails the build will fail (or may use part of an old extraction).
The `-` was introduced in 5d2ed11e91.
This fixes a misleading 'fatal error' message that appears when make
is invoked for contribs.
Since cppcheck only used stdout of $(CC) to begin with, suppressing
stderr in this manner should not change its overall behavior.
Given vlc was launched on macOS with `-Iqt` arg, a segmentation fault appeared.
When Qt interface initialised, it unexpectedly called `-[VLCLibraryWindowController restoreWindowWithIdentifier:state:completionHandler:]` with the wrong identifier.
This was mainly due to the macOS window restoration mechanism.