Rafał Dzięgiel d7221846bd clapper: Reworked infinite nested playlists detection
Instead of doing this inside player, logic was reworked and moved into playlist demuxer
itself. It uses GstQueries to communicate with upstream elements. This way we can post
an error from running pipeline which helps keep this logic in single place and have it
shared with other pipelines (like the one used in Media Scanner Enhancer).

As part of the rework, nested playlist limit was added and set to 10 redirects.
Seems like a safe/optimal number and this simplifies stuff a lot. Instead of
keeping a list of strings with previous redirected URIs, we can just store the
one most recent in media item.
2025-11-22 20:44:16 +01:00
2022-05-06 18:57:12 +02:00
2020-10-31 16:43:27 +01:00
2024-04-09 20:02:31 +02:00
2024-04-05 21:18:39 +02:00
2020-10-15 10:45:57 +02:00
2024-06-30 21:38:29 +02:00

Clapper

Flatpak Flatpak Nightly Crowdin Matrix Donate

Clapper is a modern media player designed for simplicity and ease of use. Powered by GStreamer and built for the GNOME desktop environment using GTK4 toolkit, it has a clean and stylish interface that lets you focus on enjoying your favorite videos.

This application aim is to offer all the essentials features you'd expect from a video player in a simple form.

Clapper uses a playback queue where you can add multiple media files. Think of it like a playlist that you can build. You can easily reorder items or remove them from the queue with a simple drag and drop operation.

Components

Clapper's codebase consists of 2 libraries using which main application is built:

Both libraries support GObject Introspection bindings. A simple application example can be found here.

Above libraries are licensed under LGPL-2.1-or-later. You are free to use them in your own projects as long as you comply with license terms. Please note that until version 1.0 they should be considered as an unstable API (some things may change without prior notice).

Clapper Vala bindings are part of this repo, while Rust bindings can be found here.

Installation from Flatpak

The Flatpak package includes all required dependencies and codecs. Additionally it also has a few patches, thus some functionalities work better in Flatpak version (until my changes are accepted upstream). List of patches used in this version can be found here.

Download on Flathub

Packages in Linux Distributions

Packaging status

Pre-built RPM packages are also available in my repo (see status).
Those are automatically built on each git commit, thus are considered unstable.

Installation from Source Code

meson setup builddir
cd builddir
meson compile
sudo meson install

If you want to compile app as Flatpak, remember to clone this repo with --recurse-submodules option.

Questions?

Feel free to ask me any questions. Come and talk on Matrix: #clapper-player:matrix.org

Translations

Preferred translation method is to use Clapper Crowdin web page.

Crowdin does not require any additional tools and translating can be done through web browser. You can login using GitHub account or create a new one. Only I can add new languages to this project, so if your language is not available, please contact me first.

Special Thanks

Many thanks to sp1ritCS for creating and maintaining package build files. Big thanks to bridadan and Uniformbuffer3 for helping with testing V4L2 and NVDEC hardware acceleration methods. Also words of appreciation for JanGernert who made and is sharing Clapper Rust bindings.

Thanks a lot to all the people who are supporting the development with their anonymous donations through Liberapay. I ❤️ U.

Description
Level up your video experience with a modern and user-friendly media player.
Readme 28 MiB
Languages
C 96.8%
Meson 2.8%
CSS 0.4%