Commit Graph

1410 Commits

Author SHA1 Message Date
Rafał Dzięgiel
e35d04a742 clapper-app: Fix internal functions visibility
We have to export functions that are used from UI files, otherwise they are
not accessible. For this reason add a special internal visibility header.
2025-01-18 15:59:12 +01:00
Rafał Dzięgiel
f017b23798 Merge pull request #518 from Rafostar/win-installer
Provide Windows installer
2025-01-18 11:50:42 +01:00
Rafał Dzięgiel
3513c37f97 clapper-app: Fix declaration-after-statement warning 2025-01-17 21:57:34 +01:00
Rafał Dzięgiel
2225cc68c4 workflows: windows: Add cleanup step
Removal of things that will not be used in an installed app
2025-01-17 21:57:11 +01:00
Rafał Dzięgiel
228ef3e556 workflows: windows: Create installer instead of portable
It makes things much easier for the user, such as automatically associating
video files with Clapper, makes menu entries, optional desktop icon and takes
care of eventual uninstall and/or update later.
2025-01-17 21:53:36 +01:00
Rafał Dzięgiel
21417a1ae7 pkgs: Generate Inno Setup based Windows installer 2025-01-17 21:53:20 +01:00
Rafał Dzięgiel
5906d1b78e clapper-app: Add Windows icon 2025-01-17 21:51:16 +01:00
Rafał Dzięgiel
b7b33172fe New Crowdin updates (#514)
* New translations clapper-gtk.pot (Romanian)

* New translations clapper-app.pot (Romanian)

* New translations clapper-gtk.pot (French)

* New translations clapper-app.pot (French)

* New translations clapper-gtk.pot (Spanish)

* New translations clapper-app.pot (Spanish)

* New translations clapper-gtk.pot (Afrikaans)

* New translations clapper-app.pot (Afrikaans)

* New translations clapper-gtk.pot (Arabic)

* New translations clapper-app.pot (Arabic)

* New translations clapper-gtk.pot (Catalan)

* New translations clapper-app.pot (Catalan)

* New translations clapper-gtk.pot (Czech)

* New translations clapper-app.pot (Czech)

* New translations clapper-gtk.pot (Danish)

* New translations clapper-app.pot (Danish)

* New translations clapper-gtk.pot (German)

* New translations clapper-app.pot (German)

* New translations clapper-gtk.pot (Greek)

* New translations clapper-app.pot (Greek)

* New translations clapper-gtk.pot (Basque)

* New translations clapper-app.pot (Basque)

* New translations clapper-gtk.pot (Finnish)

* New translations clapper-app.pot (Finnish)

* New translations clapper-gtk.pot (Hebrew)

* New translations clapper-app.pot (Hebrew)

* New translations clapper-gtk.pot (Hungarian)

* New translations clapper-app.pot (Hungarian)

* New translations clapper-gtk.pot (Italian)

* New translations clapper-app.pot (Italian)

* New translations clapper-gtk.pot (Japanese)

* New translations clapper-app.pot (Japanese)

* New translations clapper-gtk.pot (Korean)

* New translations clapper-app.pot (Korean)

* New translations clapper-gtk.pot (Lithuanian)

* New translations clapper-app.pot (Lithuanian)

* New translations clapper-gtk.pot (Dutch)

* New translations clapper-app.pot (Dutch)

* New translations clapper-gtk.pot (Norwegian)

* New translations clapper-app.pot (Norwegian)

* New translations clapper-gtk.pot (Polish)

* New translations clapper-app.pot (Polish)

* New translations clapper-gtk.pot (Portuguese)

* New translations clapper-app.pot (Portuguese)

* New translations clapper-gtk.pot (Russian)

* New translations clapper-app.pot (Russian)

* New translations clapper-gtk.pot (Slovak)

* New translations clapper-app.pot (Slovak)

* New translations clapper-gtk.pot (Serbian (Cyrillic))

* New translations clapper-app.pot (Serbian (Cyrillic))

* New translations clapper-gtk.pot (Swedish)

* New translations clapper-app.pot (Swedish)

* New translations clapper-gtk.pot (Turkish)

* New translations clapper-app.pot (Turkish)

* New translations clapper-gtk.pot (Ukrainian)

* New translations clapper-app.pot (Ukrainian)

* New translations clapper-gtk.pot (Chinese Simplified)

* New translations clapper-app.pot (Chinese Simplified)

* New translations clapper-gtk.pot (Chinese Traditional)

* New translations clapper-app.pot (Chinese Traditional)

* New translations clapper-gtk.pot (Vietnamese)

* New translations clapper-app.pot (Vietnamese)

* New translations clapper-gtk.pot (Portuguese, Brazilian)

* New translations clapper-app.pot (Portuguese, Brazilian)

* New translations clapper-gtk.pot (Persian)

* New translations clapper-app.pot (Persian)

* New translations clapper-gtk.pot (Croatian)

* New translations clapper-app.pot (Croatian)

* New translations clapper-gtk.pot (Hindi)

* New translations clapper-app.pot (Hindi)

* New translations clapper-gtk.pot (Asturian)

* New translations clapper-app.pot (Asturian)

* New translations clapper-gtk.pot (Occitan)

* New translations clapper-app.pot (Occitan)
2025-01-13 18:32:37 +01:00
Rafał Dzięgiel
d4d82034a4 Merge pull request #515 from Rafostar/win-hi-clock
clapper-app: Support high resolution clock on MS Windows
2025-01-12 20:47:59 +01:00
Rafał Dzięgiel
09b3ef8f39 clapper-app: Do not enforce GSK renderer on Windows 2025-01-12 17:12:33 +01:00
Rafał Dzięgiel
d9b20dcc18 clapper-app: Support Windows high resolution clock
Windows high resolution clock improves accuracy of various Windows
timer APIs and precision of GstSystemClock during playback
2025-01-12 17:12:24 +01:00
Rafał Dzięgiel
60e7d56611 clapper-app: Update POT file 2025-01-11 15:24:07 +01:00
Rafał Dzięgiel
e3bc87ba11 clapper-app: Add "Clear Queue" menu option
An option to clear playback queue from UI. This is quckier
and easier than manually dragging every item to bin.

Closes #434
2025-01-11 15:17:50 +01:00
Rafał Dzięgiel
b542aa1e76 clapper: Wait with flush after streams are selected
Instead flushing right after select streams request, wait until
they are selected before doing a flush.

This fixes a hang when changing audio language with hlsdemux2.
2025-01-10 23:54:29 +01:00
Rafał Dzięgiel
6534fb1e22 clapper-app: Update LINGUAS file 2025-01-07 19:22:15 +01:00
Rafał Dzięgiel
c8b3e28299 clapper-gtk: Update LINGUAS file 2025-01-07 19:21:58 +01:00
Rafał Dzięgiel
35424bf8cf clapper-app: Update POT file 2025-01-07 19:06:11 +01:00
Rafał Dzięgiel
6989b86249 clapper-gtk: Update POT file 2025-01-07 19:05:57 +01:00
Rafał Dzięgiel
fed0c0a972 clapper-app: Add do not translate desktop app name comment 2025-01-07 19:03:10 +01:00
Rafał Dzięgiel
496cc60272 Merge pull request #512 from Rafostar/video-placeholder
clapper-gtk: Add video placeholder widget
2025-01-02 14:18:52 +01:00
Rafał Dzięgiel
a91ce5b0ab clapper-gtk: Add video placeholder widget
A simple placeholder to be shown when "ClapperGtkVideo" is used with a video
sink that cannot be embedded in it (with a text explaining that).
2025-01-02 13:34:36 +01:00
Rafał Dzięgiel
93b1be3147 New Crowdin updates (#503)
* New translations clapper-app.pot (Turkish)

* New translations clapper-gtk.pot (Spanish)

* New translations clapper-app.pot (Spanish)
2024-11-22 22:41:54 +01:00
Rafał Dzięgiel
cca4b002b6 Merge pull request #492 from danialbehzadi/i18n
Make dektop file i18n.
2024-11-22 22:40:50 +01:00
Rafał Dzięgiel
8e6599ae81 Merge pull request #508 from Rafostar/nightly-fix
Update Flatpak Nightly
2024-11-16 22:33:31 +01:00
Rafał Dzięgiel
77ee519f8c flatpak-nightly: Update manifest
Use 24.08 for ffmpeg and switch to Rust stable with added recommended env vars
2024-11-16 17:25:49 +01:00
Rafał Dzięgiel
c42e12d2be workflows: Update nightly extensions to 24.08
Also change to Rust stable to fix build failing
2024-11-16 17:25:03 +01:00
Rafał Dzięgiel
2b916ef856 Merge pull request #506 from Rafostar/adaptive
Add adaptive streaming bitrate control to Clapper API
2024-11-16 16:15:19 +01:00
Rafał Dzięgiel
303bda4d65 clapper: Do not reset "adaptive-bandwidth" to zero
When new instance of adaptive demuxer is created (different video is played)
this prop value would become zero. We want to avoid that and instead report
only bandwidth after fragment is downloaded, so when video will be unplayable,
next one will not start from lowest quality.
2024-11-16 15:26:24 +01:00
Rafał Dzięgiel
22430620a8 clapper-app: Apply "adaptive-start-bitrate" on startup
Watch for "adaptive-bandwidth" changes during adaptive streaming, use these to
set "adaptive-start-bitrate" player property, so we do not always start streaming
from some constant bitrate value which might not be the best for everyone.

Additionally, store last value in GSettings on app exit and also add a command
line arg to set this too.
2024-11-15 23:39:00 +01:00
Rafał Dzięgiel
e4045b98b3 clapper: Add "adaptive-bandwidth" readable property
Apps can use it to determine and set an optimal value for
start bitrate instead of starting at some constant value.
2024-11-15 23:38:50 +01:00
Rafał Dzięgiel
aa819cf2d3 flatpak: Update runtime to 47 2024-11-14 23:19:38 +01:00
Rafał Dzięgiel
a065b81846 flatpak: Add GStreamer 1.24 for testing
We do not yet have GStreamer 1.24 in Flathub repo, so for testing purposes add it here temporarily
2024-11-14 23:18:16 +01:00
Rafał Dzięgiel
9fbba4d66a meson: Bump min required GStreamer version
Setting "start-bitrate" property requires at least GStreamer 1.24.

We do not want to introduce APIs that work only if user has a certain
dependency version, thus this bump instead of version check.

Related work on GStreamer side:
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3894
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3895

Since these were contributed to GStreamer almost 2 years ago with the intention
of using them in Clapper, I think its about time to start do so.
2024-11-14 22:28:21 +01:00
Rafał Dzięgiel
ab659d0951 clapper: Use playbin3 by default
New GStreamer adaptive demuxers work only within playbin3. In order to not
introduce new APIs (setting adaptive bitrate) that do not work by default
and to have the whole "clapper-enhancers" concept working correctly, its
about time to move on to playbin3.
2024-11-13 20:06:34 +01:00
Rafał Dzięgiel
bd3ce28716 clapper: Ability to request adaptive bitrates
Add APIs to allow apps to select start, min and max bitrates for adaptive streaming.

Combining min+max values can allow to implement a video quality selector,
although possible bitrates/qualities are not communicated with an app yet.
2024-11-13 20:00:59 +01:00
Rafał Dzięgiel
0a15e70d02 Merge pull request #501 from Rafostar/libpeas
Support libpeas based plugin system
2024-11-11 13:22:10 +01:00
Rafał Dzięgiel
d42b17a749 workflows: Add libpeas to windows build
Required for enhancers loader
2024-11-11 12:49:23 +01:00
Rafał Dzięgiel
719a4043b5 workflows: Disable "enhancers-loader" for docs build
Not needed to build the docs, so disable it
2024-11-11 12:49:19 +01:00
Rafał Dzięgiel
ee3d07b158 flatpak: Replace gtuber with Clapper enhancers
Also add all required dependencies
2024-11-11 12:49:17 +01:00
Rafał Dzięgiel
c8ef0f891d clapper: Support libpeas based plugin system
Allow loading external plugins called "Enhancers" that as the name suggests,
enhance Clapper library capabilities.

Currently implemented is a "ClapperExtractable" interface meant to extract
an actual media that GStreamer can later play from an initial input URI.
Additionally, an internal GStreamer elements that work with it are ported/moved
here from "gtuber" library that this functionality replaces.
2024-11-11 12:49:07 +01:00
Rafał Dzięgiel
220913de14 Merge pull request #499 from Rafostar/esc-unfullscreen
clapper-app: Add unfullscreen keyboard shortcut
2024-10-15 19:53:32 +02:00
Rafał Dzięgiel
2d1f6f471b clapper-app: Add unfullscreen keyboard shortcut
Unfullscreen with Escape key

Closes #494
2024-10-15 19:32:48 +02:00
Rafał Dzięgiel
af4a876edc New Crowdin updates (#473)
* New translations clapper-gtk.pot (Hindi)

* New translations clapper-app.pot (Russian)

* New translations clapper-gtk.pot (Czech)

* New translations clapper-gtk.pot (Persian)

* New translations clapper-gtk.pot (Norwegian)
2024-10-10 20:23:28 +02:00
Danial Behzadi
e81bcb2f9a Update src/bin/clapper-app/data/meson.build
Co-authored-by: Rafał Dzięgiel <40623528+Rafostar@users.noreply.github.com>
2024-09-28 13:02:29 +03:30
Danial Behzadi
ba64ff224e Make dektop file i18n. 2024-09-28 03:37:21 +03:30
Rafał Dzięgiel
14cdbef81c clapper-gtk: Fix metadata ignore for different languages
Since missing plugin string is translated, word describing its type
(e.g. Decoder) might come before plugin name itself, so we need to
check whole text to find substring instead of checking only prefix.

Fixes #477
2024-08-02 17:22:27 +02:00
Rafał Dzięgiel
931dc255c1 clapper-gtk: Fix some video props not being writable
They should have been writable as we even have setters for them
2024-07-23 17:55:11 +02:00
Rafał Dzięgiel
2f39fef47b readme: Update screenshots 2024-06-30 21:38:29 +02:00
Rafał Dzięgiel
c05a6361b7 clapper-app: metainfo: Add captions to screenshots 2024-06-30 21:29:26 +02:00
Rafał Dzięgiel
c152f3d791 clapper-app: Update LINGUAS file 2024-06-29 18:24:40 +02:00