Commit graph

108 commits

Author SHA1 Message Date
a670d2afd7 player: register MPEG and WMV support cleanly
Some checks failed
Validate .desktop files / validate (push) Has been cancelled
2026-05-18 17:28:19 +02:00
22e5890a7c local: integrate yoda libcosmic and fix thumbnail hang
Some checks are pending
Validate .desktop files / validate (push) Waiting to run
2026-05-18 12:22:47 +02:00
Rodrigo Rivero
f3d6469bed
feat: add skip forward and backward playback controls 2026-05-08 00:53:08 +02:00
Vukašin Vojinović
2aa2c841fa chore: update dependencies 2026-04-30 01:33:39 +02:00
Ashley Wulber
bc9d118de0 chore: update libcosmic after reexports 2026-04-09 16:05:48 -06:00
Ashley Wulber
edb755eefc fix: disable next frame and previous frame for audio 2026-04-06 15:07:35 -04:00
Ashley Wulber
2c6f8599ee fix: audio player interface issues
the video player doesn't draw when playing audio, so the logic for emitting new frame messages is broken.
2026-04-06 12:40:34 -04:00
nz366
6f5040a953
[Feat] AB repeat and frame stepping (#241)
* feat: Add A-B repeat and frame  navigation features with new key binds and menu entries.

* playback options

* fix merge
2026-04-03 14:16:01 -04:00
Ashley Wulber
00395d27dc chore: thumbnails and patches 2026-03-20 18:18:32 -04:00
Ashley Wulber
6c401d7030 chore: update iced 2026-03-20 18:11:32 -04:00
norepro
8762185629 Fix ignored repeat with folder 2026-02-28 12:41:00 -08:00
Will Sheehan
f161863c09 Merge branch 'master' into feat/repeat-toggle 2026-02-20 23:15:50 -08:00
therealmate
261a038710 Unmute when changing volume
Fixes https://github.com/pop-os/cosmic-player/issues/212
2026-02-19 14:47:04 -07:00
Guillaume-fgt
91d09b8bda removed unnecessary urls truncating 2026-02-06 08:26:57 +01:00
Guillaume-fgt
74fa8baa55 implementing PlayNext media 2026-02-05 16:01:36 +01:00
Jeremy Soller
ceb8f57ec7
Mute when thumbnailing 2026-01-16 13:42:55 -07:00
norepro
a83951f1ba Use set_looping from iced_video instead of EOS signal 2025-11-30 20:58:28 -08:00
norepro
42b1f6e5e8 Remove Playlist repeat option 2025-11-27 21:03:57 -08:00
norepro
b559de8fc5 Rename repeat options to Disabled, Track, and Playlist
Change track and playlist to repeat current track indefinitely.
2025-11-27 20:48:32 -08:00
norepro
ff97fa2f62 Workaround double EOS with explicit seek 2025-11-27 11:41:45 -08:00
norepro
2476557ec3 mpris 2025-11-27 02:02:46 -08:00
norepro
636a73a27f Fix incorrect match arm guard 2025-11-27 01:27:29 -08:00
norepro
ca0de9d07e Add tooltip to repeat control 2025-11-27 00:08:05 -08:00
norepro
de70009ed2 Add three-state repeat button
Add a new button to the controls that defines whether the media repeats
at the end of the stream. The states are:

- Disabled: Media does not repeat. This is existing behavior and the
default state.
- Always: Media always repeats.
- Once: Media repeats once. Flag is reset when loading new media.

Tested all three states with both audio and video.

Added a `rustfmt.toml` to avoid reordering imports. They keep moving
around in previous pull requests, best to just define what we want in
the repository.

Fixes: #39
2025-11-26 18:26:06 -08:00
Josh Megnauth
bb087578df
Prevent screen turning off during playback
Closes: #157

XDG portals expose a D-Bus interface allowing apps to prevent screen
idling, user switching, and other actions. That interface,
org.freedesktop.portal.Inhibit, does all of the heavy lifting here.

Idling = the screen dimming or shutting off.

Idling is inhibited when a video is actively playing.
Idling is NOT inhibited when videos aren't playing - this includes
paused or stopped videos.
2025-11-13 13:26:23 -05:00
Jeremy Soller
fa1637fe51
Merge pull request #183 from Dewb/feat/thumb-orientation
Correctly orient videos in thumbnail mode
2025-11-11 18:59:32 -07:00
Jeremy Soller
b3642ac5e4
Merge pull request #179 from joshuamegnauth54/cleanup-dependencies
Clean up dependencies, lints
2025-11-11 18:57:14 -07:00
Michael Dewberry
823fd0e521 Use same video creation method for player and thumbnailer 2025-11-08 15:38:09 -05:00
Josh Megnauth
27ea8d2770
Clean up dependencies, lints
`lazy_static` and `smol_str` weren't used. COSMIC Player used `dirs`
once to find the user's home directory. Rust fixed and undeprecated its
`home_dir` function in 1.85, which released earlier this year and is the
MSRV of libcosmic.
2025-11-03 16:12:38 -05:00
Guillaume Fgt
99f1ab8382 fix mouse cursor showing in Fullscreen video 2025-10-15 16:14:37 +02:00
Josh Megnauth
04c354584d
Clear recent media button
Closes: #141
2025-10-12 20:28:55 -04:00
Jeremy Soller
27b7b373b9
Correctly handle videos with no subtitles 2025-10-06 11:49:46 -06:00
Jeremy Soller
f2a48870f5
Allow toggling subtitles, fixes #151 2025-10-06 11:39:02 -06:00
Mitchel Stewart
3dc76ba60d set agent for souphttpsrc 2025-09-11 08:38:24 -06:00
Jeremy Soller
58c778832b
Respond to duration changes, fixes #107 2025-08-15 10:15:28 -06:00
Jeremy Soller
0e0718e45d
Handle codec install during file open, fixes #23 2025-08-14 20:31:47 -06:00
Michael Dewberry
21866486bd Add videoflip filter to automatically handle orientation metadata 2025-08-13 16:16:49 -06:00
Jeremy Soller
55654e1231
Provide thumbnailing 2025-07-11 11:27:48 -06:00
Roman Avdeev
13d3d1b604 Fixed volume scroll 2025-06-27 17:55:47 +00:00
Josh Megnauth
7c16f3e0b4 Retain paused/playing state on scrub
Closes: #110

Prior to this patch, seeking incorrectly resumed playing even if the
player was paused when it should stay paused.
2025-06-27 17:55:06 +00:00
user0-07161
fadecd0068 fix: don't change volume on scroll when sidebar is toggled
otherwise, potential scrolling in the sidebar inferes with volume
control by scrolling
2025-05-19 08:36:19 -06:00
user0-07161
94982b4a4a feat: change volume on mousewheel scroll, #112 2025-05-19 08:36:19 -06:00
Cristian Dinu
6d5c2f020d feat(controls): Hide header bar if no mouse movement
We hide the title bar similarly on how we hide the controls bar.

The difference between the header bar and the controls bar is that in
`Fullscreen` mode we don't display the header bar even if we have mouse
movement.

If a menu or sub-menu is open, but then the user makes no mouse
movement, then the menus will be hidden when the header bar is hidden.

I'm not sure how to handle the side panel, the `nav_bar`, what I call
"the playlist". I decided to not handle it's hiding based on mouse
movement because it is still displayed when we put the window in
`Fullscreen` mode.

Closes #37
2025-03-31 09:22:42 -06:00
Cristian Dinu
59cd966a30 fix(args): Eliminate the binary from arguments
For an executable the first argument is always the binary itself.
Because of this we have to skip it.

If we don't skip it, then it will be treated as another URL, therefore
`cosmic-player` will end up opening two URLs, one for the binary and one
for the actual file we want to play.

When opening multiple files `cosmic-player` will show the side panel /
playlist with the list of files.

The regression this commit fixed was introduced by `01be9152`.

Closes #96.
2025-03-27 08:49:09 +01:00
LinuxBoy-96
01be9152a7
feat: add help and version flags to argument parser 2025-03-26 16:42:39 +01:00
Hugo
07ed2615d0 Add daemon mode support 2025-03-22 19:22:22 +00:00
Josh Megnauth
701fc818f7 Playlist with multiple, mixed items
Prior to this commit, projects/playlists were limited to folders even if
file URLs were passed as arguments. With this commit both files and
folders are added to projects from the command line.

This doesn't affect opening a file from the GUI yet, but this patch
implements the required plumbing for that as well.
2025-03-13 12:17:54 -06:00
Josh Megnauth
3fd8641df2 Parse multiple URLs via command line
Closes: #44, #47

I used pico-args over clap because the former only adds about 1KB of
binary bloat whereas clap adds almost 1MB.
2025-03-13 12:17:54 -06:00
Josh Megnauth
011c633a8a Open folder passed as command line arg
Allows opening a folder on the command line rather than only a single
file. This is useful for Freedesktop compliant file managers as they
pass files URLs to media players.

This currently only handles one URL whereas the spec allows multiple.
2025-02-03 08:19:00 -07:00
Jeremy Soller
3466b064e9
Support missing metadata, fixes #56 2025-01-31 16:13:56 -07:00