Commit Graph

720 Commits

Author SHA1 Message Date
Rafostar
0cd82b1b8a API: remove video sink plugin selection
Clapper only has and supports one video sink. I would rather replace it than forcing support for multiple plugins.
2021-03-06 22:09:27 +01:00
Rafostar
39da52dd62 Sink: unlock widget before setting queue
Let GTK handle setting queue resize/render on the widget. We are not accessing widget values at this time, so it can be unlocked. It will be locked back during the render.
2021-03-06 19:16:28 +01:00
Rafał Dzięgiel
9c12afbf80 Sink: rename into GstClapperGLSink
The customized GTK4 sink version has few differences from the one shipped as part of GStreamer. Rename custom sink to GstClapperGLSink to avoid confusion.
2021-03-06 00:24:31 +01:00
Rafał Dzięgiel
e3c9b112e2 Sink: remove gtkconfig header
Remove another leftover meant for GTK3 compatibility
2021-03-05 23:27:08 +01:00
Rafał Dzięgiel
13d675beff Sink: merge gtkwidget into single class
Same as with video sink. Clapper uses only one so no need for subclassing.
2021-03-05 23:23:34 +01:00
Rafał Dzięgiel
95c3845398 Sink: merge gstsink into single class
Clapper only uses single video sink. No need for subclassing it.
2021-03-05 21:06:03 +01:00
Rafał Dzięgiel
93549a67af Sink: remove ignore_alpha property
GTK4 no longer supports ignoring alpha
2021-03-05 19:26:29 +01:00
Rafał Dzięgiel
07fb0a9a46 Sink: remove GTK4 if-defs
Clapper works with GTK4, so reduce codebase by removing GTK3 leftovers
2021-03-05 19:02:14 +01:00
Rafał Dzięgiel
fe3fd32932 Sink: keep track of widget allocation size
Instead of obtaining allocation size on each frame draw, keep track of its current size and update value on its change.
2021-03-05 18:41:26 +01:00
Rafał Dzięgiel
637212f7e8 Sink: move GL drawing logic into single function
No need having it in another function with additional call if it is used only from single place.
2021-03-05 18:10:35 +01:00
Rafał Dzięgiel
8b2e63ac48 Update README.md 2021-02-28 14:56:19 +01:00
Rafał Dzięgiel
f4968e28ab 0.1.0 0.1.0 2021-02-26 10:19:03 +01:00
Rafał Dzięgiel
68e10f1af4 Revert "Flatpak: update GStreamer to 1.18.3"
This reverts commit b3b0371c76.

It seems that newer GStreamer version has more new bugs then noticeable fixes.
2021-02-25 21:02:34 +01:00
Rafał Dzięgiel
2f3fac7d81 Flatpak: add broadway variable type fix patch 2021-02-25 09:51:24 +01:00
Rafał Dzięgiel
6b4521c49a Make video chapter popover easier to read when fullscreen 2021-02-25 09:27:07 +01:00
Rafał Dzięgiel
a0cd05fbe3 Workaround GTK4 revealers transition switch bug
Changing transition in middle or when not fully revealed has dire consequences, seems to be a GTK4 bug. Workaround this bug by switching top revealer transition type only when fully revealed.
2021-02-25 09:24:02 +01:00
Rafał Dzięgiel
d2d43db2c9 Do not update time if top grid is invisible 2021-02-24 18:27:40 +01:00
Rafał Dzięgiel
b7b1dad81c Allow adjusting playback speed with scroll 2021-02-24 17:29:24 +01:00
Rafał Dzięgiel
e859f5d518 Fix opening files from web application
It was trying to send GioFiles over WebSocket. The idea of doing that seems so dumb, that I do not know why I did not notice this issue earlier.
2021-02-24 17:05:49 +01:00
Rafał Dzięgiel
53ad4da7c6 Remove useless run method override 2021-02-24 16:46:25 +01:00
Rafał Dzięgiel
db8d060841 Mark as optimized for Phosh
Player window is considered mobile friendly with its transitions and touch/swipes gestures implemented. The only missing part now is preferences window that needs moving to libadwaita. Due to video playback being mobile friendly, mark this app as Purism Mobile compatible which will allow the app to appear on mobile app store and show the app icon in app launcher.
2021-02-24 15:58:37 +01:00
Rafał Dzięgiel
e2bd8a827c Mention in metainfo description that Wayland+vah264dec works best 2021-02-24 15:48:30 +01:00
Rafał Dzięgiel
0fe1cf5f0d Make volume restore more reliable
Instead setting value to volume scale, set value to the player itself. Scale will be updated due to bidirectional binded property. This fixes cases where slider did not emit value-changed notify as it was being set to the same value as initial one.
2021-02-24 14:26:34 +01:00
Rafał Dzięgiel
0a8e25d27b Prevent adding "fine-tune" class to position scale on TV mode
When scale enters "fine-tune", slider changes position a little. We do not want that to cause seek time change on TV mode.
2021-02-24 13:41:05 +01:00
Rafał Dzięgiel
af6a5ea1b9 Check widget existence when top revealer finishes reveal
Prevent errors when app was closed during top revealer animation.
2021-02-24 12:40:28 +01:00
Rafał Dzięgiel
632fcd34cc Fix overlay buttons not unrevealed when leaving window from bottom side
Bottom revealer motion controller was causing timeout to be cleared. Prevent that by making it child invisible when windowed, which will remove its allocated height and motion events will not be emitted.
2021-02-24 12:34:57 +01:00
Rafał Dzięgiel
186c63bf04 Set unreveal timeout after reveal finishes
Instead of setting hide controls timeout immediately when starting revealing, make the time controls are revealed constant by setting timeout after animation finishes.
2021-02-24 12:04:26 +01:00
Rafał Dzięgiel
68bd65c225 API: snap at nearest keyframe when doing fast seek
GStreamer needs to perform a seek when changing playback rate. Snapping at next keyframe causes viewer to lose few seconds of video when changing playback speed (and ugly fast forward effect when dragging speed slider). Prevent all those issues by seeking to the nearest keyframe instead.
2021-02-24 11:41:40 +01:00
Rafał Dzięgiel
199a8f1931 Bind volume scale with player volume prop
Now that player API itself is operating on a cubic scale (no value conversion required), the volume slider can be bind to the volume property. Thanks to that, player volume scale will correctly reflect Clapper volume set via external applications e.g. gnome-settings.
2021-02-24 11:09:42 +01:00
Rafał Dzięgiel
775ec8a780 API: fix volume functions descriptions 2021-02-24 10:44:26 +01:00
Rafał Dzięgiel
66d201dc3e Flatpak: update GTK to 4.1.1
GTK4 now has new GL renderer. If you wish to test it with Clapper, use GSK_RENDERER=ngl
2021-02-24 10:38:03 +01:00
Rafał Dzięgiel
dbd3e536b2 Limit bottom fullscreen controls panel width
Fullscreen bottom controls panel does not look good when progress bar is too long (especially on "ultrawide" displays), so limit its max width to 1720 application-pixels. This should make it still long enough for convenient chapter seeking.
2021-02-24 10:11:12 +01:00
Rafał Dzięgiel
bfdc85e3e3 Merge pull request #44 from Rafostar/gstclapper-volume
API: use cubic volume
2021-02-24 08:45:38 +01:00
Rafał Dzięgiel
86d365872a API: operate on cubic volume scale
Instead converting volume inside GJS, simplify things by making API operate on cubic volume scale.
2021-02-24 08:42:27 +01:00
Rafostar
b3b0371c76 Flatpak: update GStreamer to 1.18.3 2021-02-23 17:37:39 +01:00
Rafostar
7d79aa97bb Use rounded corners with every theme
AFAIK there is no way to detect theme rounded corners. Having 2/4 corners rounded in floating mode is not good.
2021-02-23 16:18:26 +01:00
Rafał Dzięgiel
6130ffa6c0 API: limit max linear volume to 3.375 (150% in cubic)
Clapper UI does not support volume overamp higher than 150%. Anything higher can lead to audio distortion or damaging your audio equipment.
2021-02-23 13:27:42 +01:00
Rafał Dzięgiel
ddc4030a30 Decrease min allowed video window size
Make sure the app can fit every mobile device by decreasing min window size to 320x180 application-pixels (16:9 aspect).
2021-02-23 12:52:45 +01:00
Rafał Dzięgiel
886dad97c5 WebApp: get active window prop only once 2021-02-23 12:37:33 +01:00
Rafał Dzięgiel
a309ef6099 Make remote app minimize, maximize and close buttons affect Clapper 2021-02-23 11:56:02 +01:00
Rafał Dzięgiel
6950cf1bbb Do not import GstClapper for remote app
No need to import and initialize whole GStreamer for web application if the only thing needed there is a single enum.
2021-02-22 16:34:08 +01:00
Rafał Dzięgiel
8df5c38357 Fix missing headerbar menu in Flatpak build 2021-02-22 13:14:49 +01:00
Rafał Dzięgiel
0ce851b514 Debug headerbar layout info 2021-02-22 12:41:44 +01:00
Rafał Dzięgiel
848fcf892b Merge pull request #43 from Rafostar/gnome4000
GNOME 40 design changes
2021-02-22 11:39:41 +01:00
Rafał Dzięgiel
8407a325af Increase delay of hiding controls when fullscreen 2021-02-22 11:29:26 +01:00
Rafał Dzięgiel
5e66a2bb5a Wait for top revealer transition to finish before changing it
Changing transition in middle can have dire consequences, so change only when not in transition.
2021-02-22 11:27:20 +01:00
Rafał Dzięgiel
61ae543cf9 Separate top revealer title and time 2021-02-22 10:22:05 +01:00
Rafostar
8b254de151 Modern fullscreen UI 2021-02-22 10:22:05 +01:00
Rafostar
edde84f0fc Performance: reduce amount of top shadow offscreen rendering 2021-02-22 10:22:05 +01:00
Rafostar
46103e169f Update current time on top overlay reveal
Previously current hour might not have been updated if someone entered fullscreen without moving mouse cursor or with a touch
2021-02-20 11:12:50 +01:00