Skip to content

Releases: Rafostar/clapper

0.6.1

01 Jul 17:56
0.6.1
86898d0
Compare
Choose a tag to compare

A bug-fix release in 0.6 series.

  • Updated metainfo summary and colors (thanks @bertob)
  • Complemented metainfo categories (thanks @1Maxnet1)
  • Fixed wrong MARKER_NO_END value in Clapper API GIR (thanks to @jangernert for noticing)
  • Fixed GtkWindowControls style when used within ClapperGtkVideo as OSD (noticed in NewsFlash, thanks @jangernert)
  • Fixed crashes after GL context is destroyed (noticed in Tuba Clapper-enabled builds, thanks @GeopJr)
  • Fixed missing signals disconnections after dispose of ClapperGtkVideo (also noticed in Tuba, thanks @GeopJr)
  • Fixed playback of media with missing plugins for metadata
  • Few small documentation fixes
  • Fixed problems building clapper-gtk documentation on a clean system
  • Fixed info window not closing when pressing "Esc" key
  • Fixed opened file content type detection (used for determining subtitle files)
  • Few fixes and additional checks for meson build script
  • Ensured private types before template init in ClapperGtk API
  • Enabled audio pitch correction for non-normal speed in ClapperGtkVideo (use "scaletempo" audio filter by default)
  • Fixed invisible status message in ClapperGtkVideo when used in light theme apps
  • Made transitions time in ClapperGtkBillboard widget a tad faster
  • Added Occitan translation (thanks @Mejans)
  • Updated translations

Also while not 0.6.1 only, but happened after 0.6.0 release, so worth mentioning: There are now Rust language bindings available for Clapper 0.6.X APIs. For anyone interested, repo can be found here (credit to @jangernert for making them).

0.6.0

22 Apr 21:34
f0f4801
Compare
Choose a tag to compare

In this release Clapper code was basically rewritten from scratch. Now split into two libraries and an application built on top of them. These are:

The aim of this was to have a much cleaner and easier to maintain code that better integrates with GTK toolkit while also being able to share it with other apps if/when I decide to make another application that needs to play video as part of it. Of course anyone else is free to use them in his/her own projects too as long as he/she comply with license terms (licensed under LGPL-2.1-or-later). Just please note that until version 1.0 they should be considered as an unstable API (some things may change without prior notice).

In new implementation of Clapper API, playback operates upon a media queue which implements GListModel interface, making it very easy to integrate with GTK4. All media items are refcounted items and Clapper API automatically takes care of serializing events/signal from GStreamer into main application thread making it compatible as-is with GTK toolkit. It also integrates GstDiscoverer API, so you will see actual media titles whenever possible once enqueued. Additionally it exposes common features that can be easily added to the implementation like MPRIS without need of implementing all that on the app side.

As for ClapperGtk - it extends what main Clapper API does into the world of GTK widgets. The main concept here is to provide a premade widgets that can be simply added as overlays on top of the main ClapperGtkVideo widget. Once that is done, they automatically control playback without need to implement all their logic on the app side. For convenience, the video widget takes care of automatically revealing them when interacting with the player and hiding later.

Both libraries support GObject Introspection bindings. A simple application example that was done for testing purposes can be found here.

During this rewrite, all JavaScript code was dropped and we no longer use GJS for UI logic. For consistency of managing monorepo, everything was redone in pure C.

Most significant changes to the Clapper application itself include:

  • Brand new, simplified and consistent UI
  • Player now operates on playback queue model
  • Multiple queue progression modes to choose from (consecutive, repeat item, carousel, shuffle)
  • New media info window (shows media information and GStreamer elements used to play it)
  • More dialogs and windows use libadwaita
  • Multiple new status/info overlays showing what is going and other messages
  • Added video buffering animation
  • Clapper will now inform users about missing GStreamer plugins needed for playback
  • Video chapters now appear throughout the seek bar on hover and while dragging slider
  • Vastly expanded MPRIS implementation
  • Integrated media discovery (see titles of queued items instead of URIs)
  • Expanded WebSocket server functionality (for remote playback control)
  • Increased maximum volume amplification level to 200%
  • Added some new keyboard shortcuts
  • In addition to volume, now also speed and queue progression mode are restored on launch
  • Fixed keyboard shortcuts not being reversed (e.g. seek) in RTL languages
  • Toggle play moved to left mouse button, right one now opens context menu (which was previously hard to access)
  • Many bug fixes and QoL improvements

Info for package maintainers: Clapper no longer uses GJS, please remove it from package dependencies and descriptions. The "OpenGL rendering" part should now also be removed. In overall please try to make description more universal. From this point onward stable versions will use even numbers in minor version place and odd numbers for development releases. Sorry for all inconveniences.

0.5.2

24 Jun 08:16
23bb253
Compare
Choose a tag to compare

Fixes:

  • Fix time labels display on RTL languages
  • Improved GL/GLES context automatic selection

New translations:

  • Hebrew

0.5.1

29 May 12:29
e5723cd
Compare
Choose a tag to compare

A quick hotfix release. Fixes problems with new video sink on displays with non-100% scaling applied.
See 0.5.0 version release notes for full recent changelog.

0.5.0

28 May 18:49
8f22b36
Compare
Choose a tag to compare

This is the first release (out of probably 2) that aims mainly at reworking app internals. Here is what got changed:

Clapper now includes an all new and improved GStreamer video sink. With it, we are moving away from GLArea into using GdkPaintable. This already gives us slight performance improvement in some cases and opens new possibilities to improve it further at a later time. New sink now also handles overlaying and displaying subtitles on the GTK side of things (as a separate GdkTextures instead of drawing them into framebuffer). Old, now called "legacy" sink is still included. If there are any problems with the new one, you can set CLAPPER_USE_LEGACY_SINK=1 env to use the old one.

Also worth mentioning, is that new plugin (consisting of clappersink element) is installed like any other GStreamer plugin, thus it can also be used outside of Clapper or with gst-launch-1.0/gst-play-1.0 app for testing.

Networking was ported into libsoup3. The built-in, unfinished web application was removed. All WebSocket functionality that web application used to talk with the player remains intact. I will likely do an improved web interface at a later point in time, separately from the player.

Previously Clapper included built-in support for YouTube web service for playing videos within the player. The code doing that was ugly and broken for quite a while, so it was removed. From this point forward we will leave handling such "extra" features to GStreamer plugins. To compensate, Flatpak version of the app includes another GStreamer plugin that handles not only YT, but also few other popular websites. An older version was already included there for some time, now its gonna get updated to a newer version that also uses libsoup3.

Additionally, app now supports D-Bus launching (DBusActivatable).

Some other misc fixes and few small UI changes were also done.

New translations:

  • Arabic
  • Basque
  • French
  • Japanese
  • Swedish
  • Turkish

0.4.1

20 Dec 10:37
7a508fe
Compare
Choose a tag to compare

Fixes:

  • Compatibility with more recent libadwaita versions
  • Toggle mute with M button alone
  • Allow handling YouTube with external GStreamer plugins
  • Fix catching errors when reading clipboard
  • Fix missing translator-credits
  • Fix missing gio-unix-2.0 dep
  • Fix playback pausing when entering fullscreen with touchscreen
  • Fix GST_PLUGIN_FEATURE_RANK env usage
  • Fix video/audio decoder change detection
  • Merge global video tags instead replacing them
  • Few other misc bug fixes

New translations:

  • Chinese Simplified
  • Czech
  • Hungarian
  • Portuguese
  • Portuguese, Brazilian
  • Russian
  • Spanish

0.4.0

12 Sep 15:11
a62483f
Compare
Choose a tag to compare

Changes:

  • Now uses libadwaita
  • New and adaptive preferences window
  • Improved open URI dialog
  • Few small tweaks to fullscreen UI design
  • Show current video and audio decoders in popovers (easy way to check if HW accel is used)
  • Enabled NVDEC hardware acceleration by default (requires Nvidia proprietary drivers)
  • Added option to use PipeWire for audio output (experimental)
  • Added option to use playbin3 element (experimental)
  • New PiP icon from icon development kit
  • Improved performance on devices running OpenGL ES
  • Translations support
  • Various bug fixes

New keyboard shortcuts:

  • Leave fullscreen with Escape key
  • Toggle mute with Ctrl+M

More touchscreen gestures:

  • Toggle playback with a long press
  • Switch playlist items via double tap on screen side

New translations:

  • Catalan
  • Dutch
  • German
  • Italian
  • Polish

0.3.0

18 Jun 13:52
37d2f7a
Compare
Choose a tag to compare

Changes:

  • Added MPRIS support
  • Added repeat modes: single video, whole playlist and shuffle
  • Support opening folders with media files
  • Append playlist items by holding Ctrl while doing Drag and Drop
  • Improved handling of keyboard shortcuts
  • Added more keyboard shortcuts
  • Added window that shows available keyboard shortcuts
  • Show black screen by default after playback (make showing last frame optional instead)
  • Added ability to export playlist to file
  • Improve handling of changing displays with different resolutions
  • Added support for EGL under x11 with GTK 4.3.1 or later
  • Added missing symbolic app icon (thanks to @SeaDve)
  • Some misc bug fixes and code cleanups

0.2.1

19 Apr 11:17
0ab0b66
Compare
Choose a tag to compare

Player:

  • Fix missing top left menu buttons on some system configurations
  • Fix potential video sink deadlock
  • Do not show mobile controls transition on launch
  • Show tooltip with full playlist item text on hover

YouTube:

  • Auto select best matching resolution for used monitor
  • Added some YouTube related preferences
  • Added support for live HLS videos
  • Added support for non-adaptive live HLS streaming

0.2.0

13 Apr 11:04
4766efb
Compare
Choose a tag to compare

New features:

  • YouTube support - drag and drop videos from youtube or use open URI dialog to play them
  • Added convenient ways of opening external subtitles:
    • select and open both video+subs from file chooser/manager
    • drop subtitles file on player window
    • open subtitles from file chooser/manager while video plays to add them
    • send their file path/uri to player via WebSocket message

Changes:

  • Few GUI layout improvements
  • Simplified video sink code
  • Fixed missing Ctrl+O common keybinding
  • Fixed error when playback finishes during controls reveal animation
  • Fixed startup window size on Xorg
  • Fixed top time not showing up on fullscreen startup
  • Fixed missing file extensions in online URIs
  • Fixed some error messages not being displayed