phonon5 phonon4 phonon4qt5

Harald Sitter sitter at kde.org
Tue Oct 22 12:34:54 UTC 2013


since sebas asked me to bring up the phonons as he fears that lack of
actual source compat in phonon5 could compromise the frameworks effort

there will be the following libraries:

=== phonon5 ===
 (current five branch) will *not* be 100% source compatible because
pieces of the architecture disappear entirely (namely the concept of a
mediagraph where you can arbitrarily link nodes).

Changes done or planned as of right now:
* MediaNode gets renamed to Frontend
* MediaObject gets renamed to Player
* Arbitrary connectability (pathing) of Frontend/Nodes is replaced by
fixed point linking on the respective objects. Such that Outputs are
added using Player::addOutput(...); Effects on outputs are added using
Output::addEffect(...); Controls are added to Sources via
Source::addControl(...) [pending discussion on final Source API]
* MediaSource gets renamed to Source to fall in line with the rest of
the classes
* MediaController gets split into multiple control units either manipulating the
* Queuing/Playlist capability is moved out of the Player into a
separate class allowing more precise API rather than having it mushed
in with playback control and whatnot.
* Pulseaudio API gets largely removed as its use case (which primarily
was working around broken backends) desolved.
* Device order and configuration gets removed or reduced as during the
lifetime of kdelibs4 it gradually moved out of the feature scope of
Phonon (which is why right now usually the Phonon KCM is in fact
controlling PulseAudio and not Phonon).
* ObjectDescriptions [QHash<QBA, QVariant>] is being replaced by
concrete classes describing multimedia types (SubtitleDescription,
DeviceDescription, MenuDescription, EffectDescription....)

for all of the 'tiny' phonon users (playing notifications or what not)
simple typdef compat could/can be introduced as the core ability
(playback) does not go away or change.
making phonon5 defacto scource compatible for the majority of applications.

actual MM applications such as tomahawk or amarok will have to do
porting to accommodate for changes to advanced features like the
MediaController removing. however as the changes actually make their
life easier and allow them to write nicer code they do not seem
particularly bummed out about that.

=== phonon4qt5 ===
 is a build of phonon4 against qt5 making it a 100% source and runtime
compatible library that allows phonon4 applications to easily access
qt5.

last this was discussed I think the conclusion was that this library
will have the same support/maintenance duration as phonon4, seeing as
they are the same codebase nothing else would make sense anyway.

=== phonon4 ===
 (aka phonon) is the thing that is considered part of kdelibs4

=== support considerations ===
phonon5 is the thing moving forward, phonon4 won't get continuing
feature development. from a support POV I do not see any reason to
drop phonon4 maintenance any time soon since it's next to nothing.
generally speaking however support and maintenance effort happens in
the backends and not the library so since the library does not change
there ought not be much going on in the backends either. except of
course for when the underlying frameworks (gstreamer/vlc) decide to
break their API support for a new version would probably have to
arise. which IMO is a feature, and since phonon4 doesn't get feature
development picking up SC breaks from gstreamer/vlc is outside the
support scope.

===
 various threads on various things phonon5:
- Description replacement [1]
http://lists.kde.org/?l=kde-multimedia&m=138122108822375&w=4
- Source proposal [2]
http://lists.kde.org/?l=kde-multimedia&m=138193356706265&w=4
- Interface handling
http://lists.kde.org/?l=kde-multimedia&m=136966480112022&w=4
- p4q5 announcement [3]
http://lists.kde.org/?l=kde-multimedia&m=136983687004557&w=4
- Phonon5 API as originally created in 2012
http://lists.kde.org/?l=kde-multimedia&m=134857119810668&w=4

HS


More information about the Kde-frameworks-devel mailing list