Rafał Dzięgiel
4375077dbc
Decode custom video title from info
...
The values in JSON info are URI encoded with "+" signs, add custom decode function that decodes them.
2021-03-11 18:49:08 +01:00
Rafał Dzięgiel
fceb8ff70a
YouTube support. Closes #46
2021-03-11 17:34:54 +01:00
Rafał Dzięgiel
6dc37088cf
Fix error when playback finishes during controls reveal animation
2021-03-08 10:37:40 +01:00
Rafostar
4e85f6b749
API: set some common user agent
...
Some internet sites might prevent us from access unless some sort of a user agent is set
2021-03-07 21:37:01 +01:00
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