Rafostar / clapper

Level up your video experience with a modern and user-friendly media player.
https://rafostar.github.io/clapper/
GNU General Public License v3.0
773 stars 36 forks source link

Include GStreamer dav1ddec in Flatpak #326

Closed kdwk closed 1 year ago

kdwk commented 1 year ago

Problem

The default decoder for AV1 videos in Clapper, av1dec, is slow and inefficient, resulting in stuttering when playing back 1080p24 AV1 videos on my Intel i7-10510U.

Proposal

Support dav1ddec from VideoLAN, a fast and efficient software AV1 decoder, to decode AV1 videos by default.

Rafostar commented 1 year ago

There is no support this or that GStreamer element in this case, if you have it installed it will work.

You did not say what package you are using, but in case of Flatpak container (where everything needs to be included) it is missing because its part of plugins written in Rust that runtime does not include. And compiling them as part of every Flatpak media app you might have does not seem plausible to me (its gonna pull a ton of the same Rust stuff for every package).

kdwk commented 1 year ago

Thanks for clearing this up. Is it possible for the org.gnome.Platform runtime to include this instead?

Rafostar commented 1 year ago

Thanks for clearing this up. Is it possible for the org.gnome.Platform runtime to include this instead?

My reasoning here is that it would be best if it was included as part of freedesktop runtime (repo link: freedesktop-sdk) the same way as all other GStreamer plugins are there. Then all apps would benefit from it. Dunno if this was asked/requested there earlier.

2nd best choice (if they disagree for some reason) would be to have someone make it into a Flatpak extension on Flathub. Then apps that need it could include it in their build manifest.

@kdwk If you want to test dav1ddec right now, then Flatpak Nightly x86_64 packages build by GitHub Actions here includes it. Bear in mind that those are highly unstable builds with things possibly broken/not working correctly only meant for testing. They do what I would rather not do for stable release, so pull all Rust deps and build it from scratch, thus doubling build time and tripling package size.

kdwk commented 1 year ago

https://gitlab.com/freedesktop-sdk/freedesktop-sdk/-/issues/1502 Ah, I see there's a plan for that. Thanks for your help.

Rafostar commented 1 year ago

https://gitlab.com/freedesktop-sdk/freedesktop-sdk/-/issues/1502 Ah, I see there's a plan for that. Thanks for your help.

Good that GStreamer guys opened themselves an issue there about it. Hopefully it will be moving forward.

kdwk commented 1 year ago

Screenshot from 2023-01-25 14-43-59 I saw this in the Gstreamer 1.22 release notes. Does that mean dav1d will work out of the box now?

Rafostar commented 1 year ago

I already answered your question on Clapper matrix channel, but will leave a comment here too in case someone else will have the same question while browsing issues.

In case of Flatpak as mentioned in freedesktop-sdk issue you linked above, they plan to include it in next runtime release, so 23.08. Clapper flatpak nightlies from GitHub actions (x86_64) includes it, but remember that those are highly unstable.