Commit Graph

37 Commits

Author SHA1 Message Date
Rafostar
7cf86e92eb YT: resolve redirects on the Clapper side
Instead of providing URIs directly to GStreamer, follow redirects and provide that final URI. With this change souphttpsrc will not have to go through redirects from the beginning for each video segment.
2021-04-11 14:46:08 +02:00
Rafał Dzięgiel
8d7fb761f7 Always reset auto fullscreen boolean value
Otherwise we would keep checking the settings with each playlist file and accidentally entered fullscreen when that setting value was changed in middle of playback.
2021-04-09 19:58:33 +02:00
Rafał Dzięgiel
aec2166c11 Only auto fullscreen with new playlist
This fixes a bug when player would enter fullscreen when changing playlist item
2021-04-09 19:34:17 +02:00
Rafał Dzięgiel
c21b214477 Tweak how auto fullscreen option works
When auto fullscreen is enabled, enter fullscreen on each media load
unless player is in floating mode in which probably user wants it to remain.
2021-04-09 19:11:34 +02:00
Rafał Dzięgiel
d9939a94c2 Fix some error messages not being displayed 2021-04-09 18:49:44 +02:00
Rafał Dzięgiel
a39c67e5e7 Check if local subtitle file exists before loading it
Otherwise GStreamer will error out and playback will stop. Non-existing subtitle file is common on Flatpak when user tries to open/drop a file from a folder that container does not have access to.
2021-04-09 10:55:06 +02:00
Rafał Dzięgiel
b15b94fc90 Convenient ways of opening external subtitles
Play video with external subtiles by:
* selecting and opening both video+subs from file chooser/manager
* dropping subtitles file on player window
* opening subtiles from file chooser/manager while video plays
* send their file path/uri to player via WebSocket message
2021-04-07 16:33:21 +02:00
Rafał Dzięgiel
7f69bee11c Move all file operations code to single file 2021-04-01 21:58:50 +02:00
Rafał Dzięgiel
e89b3599c9 Remove "escape" key handler
It was conflicting with GTK build-in escape key functionality for closing popovers
2021-03-19 10:29:44 +01:00
Rafał Dzięgiel
c89d488c30 Prefetch YouTube video info on hover
Speed up loading of YouTube videos by downloading and parsing their info before video is dropped into player.
2021-03-12 13:05:58 +01:00
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
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
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
834a690903 Tweak overlay revealers show/hide logic 2021-02-18 17:13:38 +01:00
Rafał Dzięgiel
12591e106f Move event controllers to widget and add them to top revealer 2021-02-17 16:31:37 +01:00
Rafał Dzięgiel
e79ce58b26 Rename "fullscreenMode" boolean to "isFullscreenMode" 2021-02-17 12:28:45 +01:00
Rafał Dzięgiel
887f189b60 Save window size only when windowed and not in floating mode 2021-02-17 12:20:44 +01:00
Rafał Dzięgiel
91703cf7cf Hide both cursor and overlays with a single timer
Simplify hide controls logic code by using single timer to hide both cursor and video overlays at once
2021-02-14 14:07:38 +01:00
Rafał Dzięgiel
8064bab6a2 Remove old floating mode leftovers
Clapper has now much simpler floating mode. This overcomplicated code is not needed anymore.
2021-02-13 20:19:08 +01:00
Rafał Dzięgiel
1d16d3e2ac Add OSD headerbar and transition to floating mode 2021-02-13 17:19:03 +01:00
Rafał Dzięgiel
a597de5481 Swipe when fullscreen to seek or adjust volume 2021-02-10 23:11:46 +01:00
Rafał Dzięgiel
1ee0db1cbc Also do not save resume info for very long titles (random URIs) 2021-02-09 17:19:42 +01:00
Rafał Dzięgiel
d1f32955b8 Do not save resume info under certain conditions
Do not save when video is short, just started or almost finished
2021-02-08 22:16:49 +01:00
Rafał Dzięgiel
d952f37b0e Prevent saving unfinished video info when autoclosing 2021-02-08 21:30:52 +01:00
Rafał Dzięgiel
15eeea2872 Save resume info of last unfinished video 2021-02-08 21:16:13 +01:00
Rafał Dzięgiel
c2808e7d9a Update position slider right after seek is done 2021-02-08 18:50:29 +01:00
Rafał Dzięgiel
0167f0ab4e Draw black background from CSS when GL fails
When GLArea gets a GL error it leaves user with nothing, but transparent background with error text in the middle. Make it look somewhat decent by drawing black background for the not working video widget.
2021-02-05 19:15:15 +01:00
Rafał Dzięgiel
dea77cc39f API: notify about speed value reset on STOP 2021-01-28 17:39:52 +01:00
Rafał Dzięgiel
bee1889376 Port app to the new GstClapper API 2021-01-28 00:23:01 +01:00
Rafał Dzięgiel
f9c8a3ce33 Do not try to dispose non-existing window 2021-01-22 11:46:50 +01:00
Rafał Dzięgiel
340cb36ecd Move "clapper_src" dir to "src"
The "clapper_src" directory name was unusual. This was done to make it work as a widget for other apps. Now that this functionality got removed it can be named simply "src" as recommended by guidelines.
2021-01-21 14:19:04 +01:00
Rafostar
918ba34885 Add Gtk app 2020-08-31 20:47:10 +02:00
Rafostar
734471475f Add "seek_seconds" function
Default "seek" function takes time in nanoseconds as argument which is not that useful, cause we will start playback from the nearest keyframe anyway. The new "seek_seconds" can take a double value for more precise seeking.
2020-08-30 20:19:37 +02:00
Rafostar
f35ac10553 Make sure loop is not running before starting it 2020-08-30 20:09:36 +02:00
Rafostar
ceb8930a88 Rename project to "Clapper" 2020-08-30 20:05:58 +02:00