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
Jonas Kvinge
c3534affdb
EngineBase: Remove PluginDetails
2023-04-22 17:18:29 +02:00
Jonas Kvinge
726bfbefb0
Replace gst_element_factory_get_klass with gst_element_factory_get_metadata
2023-04-22 16:49:37 +02:00
Jonas Kvinge
c96498758f
Fix and improve gapless playback
...
If "about-to-finish" was emitted before the preload time was reached, we never set the next uri, so gapless playback was broken.
Make sure to always set the next uri, and increase preload gap from 5 to 8 seconds.
2023-04-22 03:54:11 +02:00
Jonas Kvinge
bee6b7f946
Rename original_url to media_url
2023-04-21 16:20:00 +02:00
Jonas Kvinge
3bedfb6ac8
GstEngine: Formatting
2023-04-21 15:07:17 +02:00
Jonas Kvinge
a1adc1a75a
Add option for strict SSL mode in backend settings
2023-03-19 23:02:17 +01:00
Jonas Kvinge
dd72fb4ca5
Use C++11 enum class
2023-02-18 14:09:30 +01:00
Jonas Kvinge
b8a9da8a4e
GstEngine: Use QUrl::isLocalFile
2023-01-10 18:26:42 +01:00
Jonas Kvinge
205b7f2401
Split utilities functions into separate files
2022-12-28 22:53:59 +01:00
Jonas Kvinge
b92ec71810
Use system volume when possible
...
Fixes #1037
2022-12-03 04:33:22 +01:00
Jonas Kvinge
6768f614c7
GstEngine: Call SetState right before setFuture
2022-10-29 18:45:09 +02:00
Jonas Kvinge
171dc84df1
GstEngine: Use QUrl::clear()
2022-10-29 18:43:49 +02:00
Jonas Kvinge
b22320c48f
Replace typedef with using
2022-10-13 22:39:31 +02:00
Jonas Kvinge
2b24ac54a0
Remove unused includes
2022-08-28 03:09:33 +02:00
Jonas Kvinge
d97b0478a7
Fix typos
2022-08-28 02:44:37 +02:00
Jonas Kvinge
d82fd421ed
Replace use of C-style casts
2022-06-13 00:23:42 +02:00
Jonas Kvinge
c246b8f164
GstEngine: Show debug information in error dialog
2022-04-14 20:56:57 +02:00
Jonas Kvinge
0dab7e293c
GstEngine: Append "2" to wasapi2sink output description
2022-04-02 01:37:43 +02:00
Jonas Kvinge
f6b70fda71
Formatting
2022-03-22 21:09:05 +01:00
Jonas Kvinge
5a35099043
Add support for bs2b
...
Improve headphone listening of stereo audio records
2022-03-05 01:30:49 +01:00
Jonas Kvinge
98f287559b
GstEngine: Allow custom device for jackaudiosink
2021-11-11 00:58:00 +01:00
Jonas Kvinge
79ac53b2d9
Fix narrowing conversions
2021-10-30 02:21:29 +02:00
Jonas Kvinge
c3ce6cff72
GstEngine: Move CreateElement() to GstEnginePipeline
2021-10-16 21:28:56 +02:00
Jonas Kvinge
637772f8f0
GstEnginePipeline: Convert S24_32LE for analyzer
2021-10-12 18:46:12 +02:00
Jonas Kvinge
e069d069d2
GstEngine: Remove unused variables
2021-10-10 21:12:31 +02:00
Jonas Kvinge
d02241d32c
Fix compile with MSVC
2021-08-24 21:49:06 +02:00
Jonas Kvinge
ea2bfbda44
Formatting
2021-08-23 21:21:08 +02:00
Jonas Kvinge
e48b7d83a3
Formatting
2021-07-11 09:49:38 +02:00
Jonas Kvinge
a6742d401c
Formatting
2021-07-11 07:40:57 +02:00
Jonas Kvinge
f3a8dde5f0
Use std::make_shared
2021-06-30 16:15:55 +02:00
Jonas Kvinge
c61d1ce6b4
Use std::any_of
2021-06-21 19:52:37 +02:00
Jonas Kvinge
e1bf4347ab
Fix uninitialized variables
2021-06-20 23:53:28 +02:00
Jonas Kvinge
3a3305c020
Uppercase literal suffix
2021-06-20 23:49:04 +02:00
Jonas Kvinge
1295033fae
Clang-Tidy and Clazy fixes
2021-06-20 19:04:08 +02:00
Jonas Kvinge
8699790e78
Always call QFutureWatcher::setFuture after connects
2021-06-16 00:30:21 +02:00
jonas@jkvinge.net
5d96ee5492
Add ALSA PCM devices and option to set channels
...
Fixes #262
2021-05-11 19:14:00 +02:00
Jonas Kvinge
9d3000498b
Add setting for setting reply gain fallback gain
2021-04-22 21:55:26 +02:00
Jonas Kvinge
01a07ec0e8
Enable stream discoverer on all systems
...
Fixes #689
2021-04-14 00:16:37 +02:00
Jonas Kvinge
10aaaebc38
Enable stream discoverer on all Unix except macOS
2021-04-13 22:11:44 +02:00
Jonas Kvinge
59bffed47f
Use static_cast
2021-03-21 18:53:02 +01:00
Jonas Kvinge
78588d8cdf
Fix various clazy warnings
2021-03-21 04:47:11 +01:00