It's now using CMake and integrates some of our patches.
We don't need to flag the version as patched anymore since 2.10.1.
Disabling DRC in now a build option.
The 7.1 PCE mapping patch has been applied and is available since 2.10.1 [^1].
We can detect whether we build with 2.10.1 or newer by checking the presence of
the FAAD2_VERSION define in faad.h [^2]. Unfortunately it's a string so we can't
use the value.
[^1]: b9bd2eba31
[^2]: bc533c9043
The same what meson does, and what distributions like openSUSE Leap
(used to) ship.
Fixes commit 4b2c2a7bd0
Signed-off-by: Olaf Hering <olaf@aepfle.de>
This fixes vlc_player_GetTime() reporting input time when paused, that
could be more than 1 seconds behind the last polled timing.
Improve 46214fdceb
Really fixes#28353
(still no problem with Qt as it use the timer API directly).
It's a metadata. If the buffer dimensions changed or the visible area changed
we will still create a new pool.
We still need to ensure the pictures coming out of the pool match the format
set during decoder_UpdateVideoOutput().
When running make clean, 20 shader files were deleted that were tracked
by the repo, and trying to run the build afterwards fails because of
those missing files.
Make's suffix substitution $(var:.frag=.frag.qsb) only replaces entries
ending in .frag, while .vert remain unchanged (and vice versa), which
caused all .frag and .vert files to be included in BUILT_SOURCES, and
get deleted.
Fixed by defining separate .frag and .vert lists (libqt_plugin_la_SHADER_FRAG and libqt_plugin_la_SHADER_VERT) and
applying the suffix substitution on each independently. Also removed
shaders/shaders.qrc from BUILT_SOURCES since it is a tracked source
file, not a generated one, and added it to CLEANFILES so its build
directory copy is cleaned up during distclean.
Variadics might not know about std::optional<> since it triggers C code
and it might be undefined depending on the representation of optional<>.
Since we set the std::optional<> right before, ensure it returns the
wrapped value.
Add a test script that verifies all plugins listed in vlc_modules_list
exist at their specified paths. This catches issues like incorrect
library extensions on different platforms.
Move the vlc_modules_list generation logic to a shared modulelist.mk file
that can be included by both modules/Makefile.am and modules/gui/qt/Makefile.am.
Now each directory generates its own vlc_modules_list using LTLIBRARIES,
and the parent concatenates lists from SUBDIRS.
Change vlc_modules_list format from just plugin names to name:path pairs.
This allows plugins built in SUBDIRS (like the Qt plugin) to specify
their actual location, enabling copy_plugins.sh to find them.
New format: plugin_name: relative/path/to/plugin.dylib
The path is relative to the top build directory as it also inject
$(subdir) in the path from Makefile.am.
We want to fetch the vlc_modules_list from subdirectories but they must
have already processed their files so that we can include our.
Fix this by reordering SUBDIRS so that "." is processed last instead of
first. This way SUBDIRS (like gui/qt) generate their vlc_modules_list
before the parent directory tries to concatenate them.
We don't need the lock for that.
However the semaphore will keep being signal after the initial phase as
we don't have a way in MMSession() to tell if DEVICE_PENDING means the initial
phase or a change of device.
We require mingw-w64 v8 since e5725fe5cd which
has it properly defined.
And HAVE___X_ABI_CWINDOWS_CSTORAGE_CIAPPLICATIONDATA2 was not defined in meson.
These functions use the same code on both variants of Windows:
- config_GetSysPath()
- config_GetLibDir()
These functions are not the same:
- platform_GetUserDir()
They are all internal to the core.
It should return the folder where private executables are.
For an installed/packaged VLC on Windows that's the root of the VLC folder,
where vlc-cache-gen.exe is, which is the same folder as vlc.exe. For libvlc
users that should be the same although it's not guaranteed.
The only known variable is $(SUBLIBS) in LIBS which is a variable that doesn't exist in the
makefile. It's only found when Qt is compiled as dynamic libraries.
We just skip the variable.
Without this $(SUBLIBS) is passed to the Makefile with the other libs.
This is fine with autotools which ignores the undefined variable.
But meson doesn't like it.
Ref. #29585
Although it is not as rapid as size change (layer resize case), comparison key
may still change often. Now that we have a property to enable notify all
changes, we can make comparison key changes not notified by default.
When `true` (by default `false`), all properties are notified on change.
This property may be set to `true` when the source is a static texture.
It is strongly discouraged to set it `true` for rapidly changing cases,
such as when the source is a layer, since if the connections are queued,
they can easily backlog when the texture changes rapidly (such as with
resize).
`onNextTextureChange` was meant for effective change, not necessarily
if the texture actually changes. This means that if both the previous
and the next textures the same but differ in sub-rect (such as, being
different parts of the atlas), an update should be scheduled.
The parameter is renamed to `onNextEffectiveTextureChange` to reflect
the changed behavior.
This was not considered before, because the use case in `Player.qml`
requests the texture to be mipmapped, which means that the texture
would not be placed in the atlas and normal rect would remain
(0.0, 0.0, 1.0, 1.0) while the actual texture changes. The problem
is that there is no guarantee that the texture is going to be mip-
mapped, even if explicitly requested.
This fixes background blur effect not updated on track change in
the player page.
Previously, vlc_process_Spawn unconditionally passed STDERR_FILENO (2)
to the spawner.
The code was missing validation for this descriptor. As a result, it
passed an invalid handle when stderr was not associated with a stream,
which caused process creation to fail.
This failure was observed in the logs as:
> main libvlc error: Fail to create Process in process_pool
To safely pass a file descriptor, we must use _get_osfhandle to
validate that it points to a real handle. On Windows, this function
returns the special value -2 (indicating no associated stream). This
patch adds the missing check ensuring we only pass STDERR_FILENO if
the underlying handle is valid (neither -1 nor -2).