Jonas Kvinge
8da2b9cd94
Refactoring
2024-11-01 23:04:42 +01:00
Jonas Kvinge
ef9ef63f02
Port to QStringLiteral operator
2024-10-20 06:38:55 +02:00
Jonas Kvinge
0e330b81db
Use Qt::Literals::StringLiterals
2024-10-18 20:17:23 +02:00
Jonas Kvinge
b50da3eba4
GstEnginePipeline: Add missing end of stream
...
A bug was introduced when I added the mutex locker for the URLs, it did nothing when it was supposed to emit end of stream.
Fixes #1568
2024-09-29 23:40:09 +02:00
Jonas Kvinge
dae4943593
Replace Spotify username/password with access token
2024-09-28 00:09:23 +02:00
Jonas Kvinge
c3008b4179
Silence Clang Wunused-const-variable
2024-09-22 13:15:19 +02:00
Jonas Kvinge
4270b12cd1
Replace QLatin1String with operator _L1
2024-09-12 22:13:21 +02:00
Jonas Kvinge
e3e6a22172
Drop Qt 5 support
...
Qt 6 has been available for almost 4 years. Qt 5 is no longer officially supported by Qt for opensource, it's time to drop Qt 5.
2024-09-12 22:13:21 +02:00
Jonas Kvinge
4ea5eb8292
GstEnginePipeline: Set volume internal in notify volume callback
...
Fixes #1541
2024-09-10 17:04:24 +02:00
Jonas Kvinge
552440f50e
Add mutexes
2024-09-02 22:27:45 +02:00
Jonas Kvinge
8da616491d
Replace emit with Q_EMIT
2024-08-25 01:06:30 +02:00
Jonas Kvinge
a2cae06582
Remove QtConcurrent include
2024-08-24 17:01:53 +02:00
Jonas Kvinge
7ebcc73a49
More const detach fixes
2024-08-23 20:30:59 +02:00
Jonas Kvinge
9b5fe3bfd6
GstEnginePipeline: Rename PlaybinProbe to PadProbe
2024-08-23 00:17:33 +02:00
Jonas Kvinge
91eef0d695
GstEnginePipeline: Sort variables
2024-08-23 00:08:14 +02:00
Jonas Kvinge
222001bc13
GstEnginePipeline: Fix buffering
2024-08-11 14:52:00 +02:00
Jonas Kvinge
548fa3f6ee
Wait for set state to finish before deleting pipeline
...
Setting state to GST_STATE_NULL sometimes blocks, to fix this use the threadpool to set the state to NULL and wait with deleting the pipeline until the state is changed.
This fixes blocking the main thread when switching Spotify songs.
2024-08-10 18:22:56 +02:00
Jonas Kvinge
8c8acbb546
GstEnginePipeline: Rename variables
2024-08-09 19:29:12 +02:00
Jonas Kvinge
819463a865
Use anonymous namespace for constants
2024-08-07 00:52:58 +02:00
Jonas Kvinge
d3dd26c596
GstEnginePipeline: Set Spotify bitrate to 320
2024-08-01 23:22:19 +02:00
Jonas Kvinge
5f540a4c08
Add Spotify support
2024-06-13 17:09:06 +02:00
Jonas Kvinge
2f546f214d
Replace QLatin1String with QStringLiteral
2024-06-12 23:51:09 +02:00
Jonas Kvinge
5451c110b1
Replace QStringLiteral with QLatin1String
2024-06-12 20:30:36 +02:00
Guzpido
fd81036909
GstEnginePipeline: Divide samples and format by channels for buffer duration
2024-06-09 15:56:29 +02:00
Jonas Kvinge
8a27c6a52f
GstEnginePipeline: Use playbin3 with GStreamer 1.24 and higher
...
playbin3 is buggy with GStreamer 1.22, for some reason the bug is only reproducible on Gnome.
https://forum.strawberrymusicplayer.org/topic/1506/buffering-forever/23
2024-06-02 12:09:38 +02:00
Jonas Kvinge
0c6872b352
Disable automatic conversions from 8-bit strings
2024-04-13 05:05:33 +02:00
Jonas Kvinge
58944993b8
Use QStringLiteral
2024-04-09 23:20:26 +02:00
Jonas Kvinge
d1042b276b
GstEnginePipeline: Set volume_set_ to false in ElementRemovedCallback
2024-03-24 19:44:47 +01:00
Jonas Kvinge
9bbffe150f
GstEnginePipeline: Add back volume sync for auto
...
We need to remove the volume sync when the element is deleted on "deep-element-removed", then re-add it on the next "deep-element-added" that isn't a fakesink.
Fixes #1123
2024-03-24 19:36:32 +01:00
Jonas Kvinge
f11afd4414
GstEnginePipeline: Add default to switch
2024-03-12 00:40:11 +01:00
Jonas Kvinge
4626a6f609
GstEnginePipeline: Use playbin3 with gstreamer >= 1.22
2024-03-08 18:52:22 +01:00
Jonas Kvinge
f84ce3f1d1
Add exclusive mode option for WASAPI
2024-02-20 01:08:00 +01:00
Jonas Kvinge
a354f6bdc5
GstEnginePipeline: Set device-clsid
2024-02-16 21:38:33 +01:00
Jonas Kvinge
6bdd9ad4dd
GstEnginePipeline: Only hard-code playbin3 with gst 1.22
2024-02-11 23:52:22 +01:00
Jonas Kvinge
54c42b276f
GstEnginePipeline: Increase thread priority
2023-11-26 13:12:03 +01:00
Jonas Kvinge
ac9fd9070f
GstEnginePipeline: Only set max size buffer if > 0
...
Fixes #1302
2023-11-12 22:04:31 +01:00
Jonas Kvinge
6348649bc6
GstEnginePipeline: Run QTimer::singleShot in main thread
...
Partial fix for #1302
2023-11-12 21:57:59 +01:00
Jonas Kvinge
99a5aee8b3
GstEnginePipeline: Change debug logging for active/inactive
2023-10-13 23:38:19 +02:00
Jonas Kvinge
f542f1c854
GstEnginePipeline: Remove volume sync for Auto
...
Workaround crash in #1123
2023-10-10 23:17:03 +02:00
Jonas Kvinge
33041ffa75
GstEnginePipeline: Delay seek when when resetting next URI
...
When seeking after the next URI is set, we set the state to READY to switch the URI back. The seek in after going to ready sometimes does not work, delay the seek to workaround this.
Fixes #1258
2023-10-10 23:00:11 +02:00
Jonas Kvinge
76fa4745d0
GstEnginePipeline: Only update last known position when possible
...
Fixes flaky seeking where gst_element_query_position() returns -1 when seeking.
2023-10-07 02:47:12 +02:00
Jonas Kvinge
e56e58b634
GstEnginePipeline: Always set use-buffering
2023-08-06 13:44:57 +02:00
Jonas Kvinge
fed5b6b695
GstEnginePipeline: Rename ebur128 volume variable
2023-08-06 13:36:25 +02:00
Jonas Kvinge
2a90256d32
GstEnginePipeline: Disable volume sync on Windows
...
Fixes #1220
2023-08-01 16:39:57 +02:00
Jonas Kvinge
2e61235403
Application: Use shared pointers
...
Fixes #1239
2023-07-21 05:55:24 +02:00
Jonas Kvinge
d6b53f78ab
Cleanup includes
2023-07-21 05:25:57 +02:00
Jonas Kvinge
a2c7ff63df
Formatting
2023-07-21 05:11:27 +02:00
Roman Lebedev
9fb15545bd
GstEnginePipeline: Perform EBU R 128 Loudness Normalization in floating-point
2023-07-19 03:07:22 +02:00
Roman Lebedev
4bd993b1e3
GstEngine/GstEnginePipeline: support gap-less playback w/ loudness-normalizing gain
...
Ok, it does appear that it is that simple.
In principle this (even the non-update case) results in volume jumps,
so maybe we'll want gradual gain change...
Notably, i thought we'd always seek if the pipeline
was already operating on the same URL as the new one,
but apparently only for adjacent songs?
2023-07-12 14:34:04 +02:00
Roman Lebedev
94ab788032
GstEnginePipeline: actually perform (EBU R 128) loudness normalization
...
The magic: if EBU R 128 loudness normalization is enabled,
just insert `volume` GST element into the pipeline
(where ReplayGain would be inserted) and configure it.
We currently don't support changing said gain after the pipeline
was created. We might need to, though, for a number of reasons.
2023-07-12 14:34:04 +02:00