Changes
* VLC 2.0 support was removed, VLC 2.1 is at least required to use the
backend
* CMake requirement aligned with libphonon (2.6.2 => 2.8.9)
* Muting is now implemented asynchronously
Bug Fixes
* Restore build support with Qt <= 5.2 in the Qt 5 build.
* Fixed building videowidget for OSX.
* Fixed schemeless URLs
VLC 2.2 API Pickup
* New device listing API used for listing devices without PulseAudio
enabled
* New internal signals for muting, corking, and volume changes (these
directly relate to new AudioOutputInterface49 API in libphonon providing
these new libvlc features with appropriate frontend control in libphonon)
* This partially improves PulseAudio integration as at least volume and
mute control is now working correctly again via libvlc natively.
PulseAudio Limitations
* PulseAudio support is still not fully backed via libvlc and cannot be
correctly intercepted by libphonon. As a result the following features
continue to not work correctly:
* runtime-device-rerouting: changing the device order in the Phonon
configuration at runtime cannot force libvlc to use the correct
device, if a device was manually set before it will not automatically
migrate to a new device
* runtime-device-selection: selecting a device at runtime is not possible
(see above), as a result applications wanting to do this will get no
result and a warning will be shown. This also means that the
configuration module's Test button does not actually play a sound for
anything but the primary device.
* stream-category: setting a stream category (pulesaudio role) is not
possible, all streams are always category Video
* Restore build support with Qt <= 5.2 in the Qt 5 build.
* VLC 2.2 compatibility - VLC 2.2 changed the time when PulseAudio streams
are constructed, rendering the Phonon PulseSupport non-functional as it
injects stream-dependent properties through the environment which needs
to happen close to stream creation to avoid timing issues. The changed
stream creation time makes it impossible to provide high-level PulseAudio
control while also allowing Phonon applications to construct multiple
AudioOutputs in a very short time frame. To allow core functionality from
working under these circumstances Phonon PulseSupport integration is
disabled when built against VLC >= 2.2 leading to the following known
regressions:
* Changing the volume through the PulseAudio stream itself is not
propagated to Phonon AudioOutputs, meaning the application can not
reflect volume changes done through other applications (e.g. a volume
mixer).
* Changing the muteness through the PulseAudio stream is not propagated
either.
* The PulseAudio media.role property (as well as derived properties) is
always set to 'video' making all Phonon application use the video
category for output device selection (e.g. as seen in the Phonon KCM).
* Revised the logic used to come up with an icon name for libvlc. If the
application has QApplication::windowIcon set with an QIcon constructed
through QIcon::fromTheme(string) the actual icon name will be used.
Otherwise the lower-case version of QCoreApplication::applicationName is
used.
* Setting the libvlc app id is now only dependent on
QCoreApplication::applicationName being set (previously it was also
dependent on QCoreApplication::applicationVersion). This change was made
to accomodate the fact that most applications neglect to set a version.
Code style improvements.
VLC 2.2 compatibility
Changing the volume through the PulseAudio stream itself is not propagated
to Phonon AudioOutputs, meaning the application can not reflect volume
changes done through other applications (e.g. a volume mixer).
Changing the muteness through the PulseAudio stream is not propagated
either.
The PulseAudio media.role property (as well as derived properties) is
always set to 'video' making all Phonon application use the video category
for output device selection (e.g. as seen in the Phonon KCM).
Revised the logic used to come up with an icon name for libvlc.
Setting the libvlc app id is now only dependent on
QCoreApplication::applicationName being set (previously it was also
dependent on QCoreApplication::applicationVersion). This change was made to
accomodate the fact that most applications neglect to set a version.
Prevent cross-thread pause attempts on unpausable media as libvlc
internally will call stop when a player can not be paused. This could cause
a deadlock when using the paused-play feature with internet streams.
* Initialize libvlc with appropriate arguments on OS X
* Prevent libvlc 2.2 argument warnings by not using the deprecated
--album-art argument when building against 2.2. This argument will be
removed entirely in a future feature release as its presence only
reflected the libvlc default behavior anyway.
* Ensure playback is terminated when encountering an invalid queued
MediaSource.
* Prevent a crash when when GUIs call setCdTrack on a not-yet-ready
MediaPlayer.
When cmake fails to detect the LibVLC version via pkg-config, it will
now try to look it up through the header.
Support for Intel compilers on Windows was added.
MetaObject compliation will now reliably pick the correct interface API
version to build against preventing features being unavailable or unused.
* Support VLC 2.1.0's upcoming appid API setting more application
information for PulseAudio.
* Reduce performance overhead in audio/video-less setups by not loading
dummy plugins at all and removing unnecessary dynamic loading logic.
* Internal API redesign to ensure important abstract code is executed.
* Partially backed new MediaController subtitle API (explicit font setting
is not working as expected in VLC 2.0)
* Implement equalizer Effect support. This is only going to appear in
VLC 2.2, so the feature remains not present when built against lower
versions.
* When building against VLC 2.1 the new video title API is used to disable
displaying the video title when a video starts to play. This is going to
replace the manually set argument for libvlc_new in the long run.
* Phonon VLC is now the highest rated backend due to its high quality.
This means that whenever an additional backend is installed and the user
did not choose a preferred backend Phonon VLC will be used by default.
Bug Fixes
* Stride calculation for surface painting is done correctly now (affects
VideoWidget inside QProxyWidget)
* Queued tracks are now correctly played when the current track is about
to end.
* DirectSound and CoreAudio are no longer marked as advanced devices. This
makes auto-selection of devices work on Windows and OSX.
* Track selection on AudioCds via the MediaController is now working as
intended.
* Prevent libpa crashes due to empty user-agent information.
* Reduce scope of non-reentrant PulseAudio envrionment setup. Limited due
to missing API backing in libvlc.
* Subtitle selection now uses correct index mapping preventing off-by-one
issues.
to address issues with NetBSD-6(and earlier)'s fontconfig not being
new enough for pango.
While doing that, also bump freetype2 dependency to current pkgsrc
version.
Suggested by tron in PR 47882