Jonas Kvinge
71287dd77e
Add option to turn off playbin3
2025-04-08 21:19:29 +02:00
Jonas Kvinge
5e031be42c
Fix cast warnings with MSVC
2025-03-25 18:05:41 +01:00
Jonas Kvinge
6e7aaed4ee
Use QSharedPointer for GstEnginePipeline
2025-01-05 19:03:16 +01:00
Jonas Kvinge
d66126f998
GstEngine: Add missing seek
...
Fixes #1568
2024-12-06 23:44:27 +01:00
Jonas Kvinge
0fff5f672a
Rename variables
2024-12-06 23:43:44 +01:00
Jonas Kvinge
70d0772e04
GstEnginePipeline: Add separate set state async function
2024-11-10 01:36:48 +01:00
Jonas Kvinge
975d0dff25
Move GstStartup
2024-11-09 23:39:31 +01:00
Jonas Kvinge
3a5e5d4aaa
GstEngine: Improve pipeline finish handling
2024-11-09 19:24:07 +01:00
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
4479daeaf1
GstEngine: Finish pipeline before resetting in end of stream
2024-09-29 23:35:14 +02:00
Jonas Kvinge
a123de06c6
GstEngine: Add mutex lock for checking stream url
2024-09-29 23:33:47 +02:00
Jonas Kvinge
3cb0f60900
Add missing names for parameter variables
2024-09-28 12:32:12 +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
6d68f7f008
GstEngine: Don't set state to play if already playing
2024-09-17 22:23:17 +02:00
Jonas Kvinge
f44839137c
GstEngine: Use beginning nanosec on play
...
Fixes #1549
2024-09-16 00:34:39 +02:00
Jonas Kvinge
4270b12cd1
Replace QLatin1String with operator _L1
2024-09-12 22:13:21 +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
7ebcc73a49
More const detach fixes
2024-08-23 20:30:59 +02:00
Jonas Kvinge
9666feca37
GstEngine: Rename variable
2024-08-11 18:40:07 +02:00
Jonas Kvinge
03eb52eac8
GstEngine: Ensure no fading is done with exclusive mode
2024-08-11 17:37:23 +02:00
Jonas Kvinge
6562cc710c
GstEngine: Disconnect old pipelines
...
Fixes #1518
2024-08-11 15:53:41 +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
fe30f27af3
GstEngine: Simplify use of State
2024-08-09 19:26:15 +02:00
Jonas Kvinge
819463a865
Use anonymous namespace for constants
2024-08-07 00:52:58 +02:00
Jonas Kvinge
17e88bb97d
Add const
2024-08-02 23:35:52 +02:00
Jonas Kvinge
5f540a4c08
Add Spotify support
2024-06-13 17:09:06 +02:00
Jonas Kvinge
5451c110b1
Replace QStringLiteral with QLatin1String
2024-06-12 20:30:36 +02:00
Jonas Kvinge
c92a1b516c
GstEngine: Fix swapped media_url / stream_url
2024-06-12 18:52:53 +02:00
Jonas Kvinge
b89c200076
Replace QStringLiteral with QLatin1String
2024-06-12 02:13:27 +02:00
Jonas Kvinge
e357ba0125
GstEngine: Check individual classes when parsing outputs
2024-06-04 19:43:54 +02:00
Jonas Kvinge
426de61525
Add const and std::as_const
2024-04-23 17:15:42 +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
f84ce3f1d1
Add exclusive mode option for WASAPI
2024-02-20 01:08:00 +01:00
Jonas Kvinge
6b1c14f875
GstEngine: Make sure asiosink is detected
2024-02-16 00:29:17 +01:00
Jonas Kvinge
7770aba877
GstEngine: Add pipewiresink
2024-02-14 18:46:23 +01:00
Jonas Kvinge
7c4e33b676
GstEngine: Treat all stream errors as non-fatal
...
Fixes #1347
2024-01-02 19:54:19 +01: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
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
e3a333564a
GstEngine::Load(): different loudness-normalizing gain means new pipeline
...
This is a bit of a gotcha, there should be a point (where we seek?)
where we'd be able to change said gain, but for now this is a simple[r]
stop-gap fix.
2023-07-12 14:34:04 +02:00
Roman Lebedev
13d6cf201f
Engine: pipe-in the EBU R 128 loudness normalization gain stuff
...
The idea is that Integrated Loudness is an integral part
of the song, much like knowing it's beginning / ending
in the file, and we must handle it the exact same way,
and pipe it through all the way.
At the same time, `EngineBase` knows Target Level (from settings),
and these two combined tell us the Gain needed to normalize the
Loudness of the particular Song (`EngineBase::Load()` does that).
So the actual backend only needs to handle the Volume.
We don't currently support changing Target Level on the fly.
We don't currently support changing Loudness-normalizing Gain on the fly.
This does not handle the case when the song is loaded from URL
and thus the EBU R 128 measures, that exist, are not nessesairly correct.
2023-07-12 14:34:04 +02:00
Jonas Kvinge
f0df9dc0fb
GstEngine: Append "2" to wasapi2sink description
2023-06-01 17:22:11 +02:00
Jonas Kvinge
5fd0a0831f
GstEngine: Include all outputs that starts with "Sink/Audio"
2023-04-23 01:28:52 +02:00
Jonas Kvinge
9612304023
GstEngine: Use _stricmp with MSVC
2023-04-23 01:20:11 +02:00
Jonas Kvinge
e9f3281694
Rename EngineBase
2023-04-22 19:13:42 +02:00