Port from phonon to qtmultimedia
AbandonedPublic

Authored by meven on Jun 23 2019, 3:13 PM.

Details

Reviewers
elvisangelaccio
Group Reviewers
Dolphin
Summary

Phonon has some issues that prevents good user experience.
This includes the feature to jump to a position in the video with the slider.

Test Plan

Test video preview feature

Diff Detail

Repository
R318 Dolphin
Branch
multimedia
Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 13228
Build 13246: arc lint + arc unit
meven created this revision.Jun 23 2019, 3:13 PM
Restricted Application added a project: Dolphin. · View Herald TranscriptJun 23 2019, 3:13 PM
Restricted Application added a subscriber: kfm-devel. · View Herald Transcript
meven requested review of this revision.Jun 23 2019, 3:13 PM

Then maybe fix phonon? This is a more generic discussion. Let's not patch stuff here and there.

meven edited the summary of this revision. (Show Details)Jun 23 2019, 3:25 PM

Isn't that a plugin-specific issue?

imho fixing Phonon is a lost case. +1 on using QtMultimedia. (haven't reviewed the code yet though)

Can we have a global discussion about this, then? Normally I would agree on moving on something provided by Qt, but from what I heard, it's not that QtMultimedia is such a happy and working software whose future is nice and shiny.

meven added a comment.Jun 23 2019, 3:56 PM

Then maybe fix phonon? This is a more generic discussion. Let's not patch stuff here and there.

When phonon was conceived, Qt::Multimedia didn't exist : we didn't have the alternative.
Fixing phonon would be possible but it has been, I believe, little maintained over the years, I wouldn't expect it to be better anytime soon.
And since now we have a viable alternative maintained by Qt, I'd say let's save manpower and sunset phonon usage.

Porting to Qt Multimedia isn't perfect though.
Its performance is on par with phonon-gstreamer, which is not great on Linux anyway.
And dolphin might be the first to introduce a dependency on Qt-multimedia in KDE ecosystem which could cause a burden on our dear packagers.
But those drawbacks are not showstoppers.

Isn't that a plugin-specific issue?

Do you mean engine backend ?
Currently we have only phonon-gstreamer in good shape, I believe.
AFAIK phonon-vlc has more issues than phonon-gstreamer, and according to my tests does not come with much performance gain or benefits.

Can we have a global discussion about this, then? Normally I would agree on moving on something provided by Qt, but from what I heard, it's not that QtMultimedia is such a happy and working software whose future is nice and shiny.

Sure, I am not opinionated here, neither am I in a hurry.
I would be curious about opinions of phonon maintainers/commiters, perhaps I make wrong assumptions here.

When phonon was conceived, Qt::Multimedia didn't exist : we didn't have the alternative.
Fixing phonon would be possible but it has been, I believe, little maintained over the years, I wouldn't expect it to be better anytime soon.
And since now we have a viable alternative maintained by Qt, I'd say let's save manpower and sunset phonon usage.

+1, in general I think it makes more sense to use upstream components wherever possible rather than rolling our own and being on the hook for ongoing maintenance.

When phonon was conceived, Qt::Multimedia didn't exist : we didn't have the alternative.
Fixing phonon would be possible but it has been, I believe, little maintained over the years, I wouldn't expect it to be better anytime soon.
And since now we have a viable alternative maintained by Qt, I'd say let's save manpower and sunset phonon usage.

+1, in general I think it makes more sense to use upstream components wherever possible rather than rolling our own and being on the hook for ongoing maintenance.

As I already wrote, I totally agree and support with this, in general. I simply heard not so nice stories about the status of QtMultimedia itself, and this may be a scenario of choosing between the fire and the frying pan. If it's not the case, the better, but it could be useful to hear from people who QtMultimedia status upstream.

sitter added a subscriber: sitter.Jun 24 2019, 10:37 AM

I would be curious about opinions of phonon maintainers/commiters, perhaps I make wrong assumptions here.

What bugs are there?

phonon vlc has 8 open bugs and none of them should affect dolphin.

meven added a comment.EditedJul 1 2019, 10:32 AM

I would be curious about opinions of phonon maintainers/commiters, perhaps I make wrong assumptions here.

What bugs are there?

The main bug affecting my work is that when a player playback is paused, the content of the video widget turns to black (no image just a black rectangle).
I believe dragon player had the same bug, but it does not have it anymore. There could be a workaround I don't know.

I have opened two reviews D22183 and D22051, allowing to click the reviews or video player to play or pause the media.
The first uses phonon and demonstrates this bug, while the later one uses qt multimedia and does not present the bug.

phonon vlc has 8 open bugs and none of them should affect dolphin.

I have tested phonon-vlc engine in dolphin and indeed it seems ok (on the play/pause front), although the performance is not better than phonon-gstreamer which is what I would have hoped to achieve with phonon-vlc.

BTW on the same video played in vlc or dolphin, I have a 10x CPU usage difference between the two, with either phonon-vlc or phonon-gstreamer or qt multimedia for that matter. Totem video player that uses gstreamer has even worth decoding performance on my system.

sitter added a subscriber: dvratil.Jul 1 2019, 11:04 AM

Well, I mean, you might want to file a bug report about that? And maybe poke @dvratil about it as well, he is maintaining the backend.

phonon-vlc is the recommended backend btw ;)

Also, the CPU usage will in all cases be dependent on where/how the pipelines actually render to screen. This can be wildly different even within the same software, which I guess is why you see different load between VLC and phonon-vlc (i.e. libvlc). They simply may not use the same output and one may be better or worse depending on the underlying libraries or the driver even I suppose.

meven added a comment.Jul 1 2019, 11:46 AM

I have opened "When pausing video playback the video output can turn black" https://bugs.kde.org/show_bug.cgi?id=409363 in phonon-gstreamer

I didn't know phonon-vlc was the recommended one.
I believe distros mostly ship phonon-gstreamer. At least debian/ubuntu do https://packages.debian.org/stretch/phonon
We might want to suggest them to change the situation.

I have opened "When pausing video playback the video output can turn black" https://bugs.kde.org/show_bug.cgi?id=409363 in phonon-gstreamer

I didn't know phonon-vlc was the recommended one.
I believe distros mostly ship phonon-gstreamer. At least debian/ubuntu do https://packages.debian.org/stretch/phonon

What you linked to is the Qt4 package, Qt5 correctly prefers VLC https://packages.debian.org/stretch/phonon4qt5

We might want to suggest them to change the situation.

That was done numerous times in various venues. Do feel free to remind them of the ramifications of their choice not to listen to me though ;)

Fix for the blanking on pause when using the X11Renderer in phonon-gstreamer: D22254

meven abandoned this revision.Jul 9 2019, 12:22 PM

I have opened "When pausing video playback the video output can turn black" https://bugs.kde.org/show_bug.cgi?id=409363 in phonon-gstreamer

I didn't know phonon-vlc was the recommended one.
I believe distros mostly ship phonon-gstreamer. At least debian/ubuntu do https://packages.debian.org/stretch/phonon

What you linked to is the Qt4 package, Qt5 correctly prefers VLC https://packages.debian.org/stretch/phonon4qt5

Ah, thanks for correcting me.

We might want to suggest them to change the situation.

That was done numerous times in various venues. Do feel free to remind them of the ramifications of their choice not to listen to me though ;)

I am sad to learn that.

And since D22254 and its associated bug 409363 is fixed, this port is not relevant anymore.
Thanks @dvratil for this fast bug fix.