Regression from d9c9482b25.
This fixes linking on macOS with static Qt from contribs:
Undefined symbols for architecture x86_64:
"_BZ2_bzDecompress", referenced from:
_ft_bzip2_file_fill_output in libfreetype.a(ftbzip2.c.o)
"_BZ2_bzDecompressEnd", referenced from:
_ft_bzip2_stream_io in libfreetype.a(ftbzip2.c.o)
_ft_bzip2_stream_close in libfreetype.a(ftbzip2.c.o)
"_BZ2_bzDecompressInit", referenced from:
_FT_Stream_OpenBzip2 in libfreetype.a(ftbzip2.c.o)
_ft_bzip2_stream_io in libfreetype.a(ftbzip2.c.o)
ld: symbol(s) not found for architecture x86_64
It is built, but not installed. This causes problems on macOS when
linking our libqt_plugin:
clang: error: no such file or directory: '/vlc/contrib/x86_64-apple-darwin19/lib/libQt5PrintSupport.a'
Since we don't use any of the printer related functionality, disable it
altogether.
For input items without a know type (imem access for example) preparsing
is not possible. With this option we allow forcing the preparsing in that
case, optionally. By default the current behavior remains the same.
For users of libvlc with manual DLL loading (especially languages not
compatible with C that have to recode the access to the libvlc DLL) it is
important to know the ABI version of the DLL, in case of API/ABI changes the
wrapper need to be updated and know when the provided DLL package matches or
not. This is especially critical for VLC 4.0 which has not changed version in
4 years and yet the libvlc API keeps changing.
This is similar to the versions of libavcodec/libavformat/etc. When the API is
changed the version values should be updated as well, and hopefully documented
as well.
One should avoid loading the DLL of a mismatching libvlc major ABI version.
Since it's likely to not be usable in the end, it's better not to load it at
all.
This should also be backported to VLC 3.0.
It is very unlikely that AudioUnitGetProperty(kAudioUnitProperty_Latency) can
change midstream (contrary to [AVInstance outputLatency]), so only fetch
this latency when starting the AudioUnit.
This fixes a deadlock between the render callback and AudioUnitStop().
Fixes#27591
This reverts commit cee6cee6aa.
Unfortunately, removing create_libtool from CONFIG in the toolchain file
gets overridden when it is added to CONFIG again in qt_module.prf.
Qt itself adds it to CONFIG for "!lib_bundle:unix", indeed in the
Windows contrib archive, libQt5Bootstrap.la can be spotted (as this is
for the native build only). Also, when building for Debian, all Qt
modules will install .la files, like libQt5Core.la.
As qt_module.prf is the only place in the whole of Qt where this is
added to CONFIG, it should be sufficient to patch it here.
This pupnp release address some win32 issues reported after we bumped to
1.14.
Removed patches:
- 0001-ThreadPool-[...].patch -> Fixed upstream by d4cfec4674c6877bad350
- win32-remove-wro[...].patch -> Fixed upstream by d86f4159e13d00a9eb59a
This release also fixes an XML descriptor parsing error:
<https://github.com/pupnp/pupnp/issues/412>
This fixes a possible (but unlikely) assert, from
vlc_aout_stream_Drain():
assert(atomic_load_explicit(&stream->drain_deadline,
memory_order_relaxed) == VLC_TICK_INVALID);
It can happen when vlc_aout_stream_Drain() is called more than time in a
row, that is illegal: Drain should be the last command or can be
cancelled by a Flush to continue the playback.
If drain and flush are called in that order
- vlc_input_decoder_Drain()
- vlc_input_decoder_Flush()
- vlc_input_decoder_Drain()
It was possible that vlc_aout_stream_Flush() was called before the first
vlc_input_decoder_Drain().
To fix this issue, cancel the draining state when flushing the decoder
and do check that the decoder is still draining after unlocking/locking
(after draining the decoder module).
Regression from 34a548cc02Fixes#27499
Because AVAudioSessionRouteChangeNotification is not triggered when
switching Speaker <-> Airplay2 (but it is triggered for BT <-> Anything).
Fixes A/V sync with AirPlay2 when Airplay is changed during playback.
Fixes delay with bluetooth devices.
Pretty sure I tested it in the past and it was producing worst results.
Now we match the QuickTime player regarding A/V sync (tested with a
Sync-One2 device).
Fixes#27512
Code written by me few years ago but quite hard to understand (even by
the author), rework it by taking inspiration from the AAudio plugin.
Don't use both mach host time and vlc_tick_t but transform immediatly
the host_time to a delay (in ticks) and always use ticks.
The OpenGL resources are removed when the EAGLContext is destroyed, so
there is no need destroying them ourselves, which avoids one callsite
where we're making a context current and avoid listing the resources.
Fix a crash where the destructor of the VLCOpenGLES2VideoView
(.cxx_destruct) is calling the destructor of the EAGL context, which
leads into unknown stacktraces in the EAGLContext_setDebugLabel symbol.
The setup of the crash needs using CVPixelBuffer backed by an IOSurface,
so typically a filter using the VLCCVOpenGLProvider offscreen OpenGL
implementation, which seems to imply some live-binding is still in use
if we don't close the context soon enough.