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
e9f3281694
Rename EngineBase
2023-04-22 19:13:42 +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
b59aa0827e
GstEnginePipeline: Always set initial volume
2023-04-07 02:30:41 +02:00
Jonas Kvinge
c8caea0d30
GstEnginePipeline: Use constexpr
2023-03-22 23:29:56 +01:00
Jonas Kvinge
7a6c54d8e7
GstEnginePipeline: Remove hard-coded num-bands
2023-03-22 23:29:24 +01:00
Jonas Kvinge
a1adc1a75a
Add option for strict SSL mode in backend settings
2023-03-19 23:02:17 +01:00
Jonas Kvinge
b16bec704a
GstEnginePipeline: Use "source-setup" instead of "notify::source" signal
...
This works with both playbin 2 and 3.
Possible fix for #1148
2023-03-19 22:28:12 +01:00
Jonas Kvinge
664a8c79a1
GstEnginePipeline: Check for ssl-strict property
2023-03-19 22:13:16 +01:00
Jonas Kvinge
c42b1f5548
GstEnginePipeline: Cast guint to int
2023-03-19 19:38:36 +01:00
Jonas Kvinge
a6d10b1fa7
GstEnginePipeline: Check that audio bin exists before unref
2023-02-27 18:50:09 +01:00
Jonas Kvinge
dd72fb4ca5
Use C++11 enum class
2023-02-18 14:09:30 +01:00
Jonas Kvinge
d406a1c341
GstEnginePipeline: Use playbin3 with GStreamer 1.22.0 and higher
2023-02-10 22:43:55 +01:00
Jonas Kvinge
6671d97b4a
GstEnginePipeline: Free audio bin in destructor
...
When the audio bin failed to initialize, we tried to disconnect signals and probes after the audio bin was already freed.
Instead, free the audio bin in the destructor after disconnecting signals and probes.
Fixes #1133 and #1123
2023-02-10 22:42:37 +01:00
Jonas Kvinge
7aac741571
GstEnginePipeline: Fix setting initial volume
...
Fixes #1104
2023-01-11 18:52:14 +01:00
Jonas Kvinge
41f2710dea
GstEnginePipeline: Use linear volume
2023-01-08 15:25:24 +01:00
Jonas Kvinge
1dfe07003f
GstEnginePipeline: Set and notify volume only when changed
...
Another fix for #1089
2023-01-03 21:32:20 +01:00
Jonas Kvinge
4ec028e736
GstEnginePipeline: Change callback ID's to long
2023-01-03 19:51:23 +01:00
Jonas Kvinge
6d05bb2de5
GstEnginePipeline: Remove upstream events and buffer probes
...
Also rename some variables and callback functions
Possible fix for #1090
2023-01-02 00:06:18 +01:00
Jonas Kvinge
1a2ab19ab4
GstEnginePipeline: Ignore core error when next song is set
...
Fixes #958
2023-01-01 20:25:57 +01:00
Jonas Kvinge
205b7f2401
Split utilities functions into separate files
2022-12-28 22:53:59 +01:00
Jonas Kvinge
c756346357
GstEnginePipeline: Add audio converter for sink
2022-12-11 01:14:17 +01:00
Jonas Kvinge
44970c3321
GstEnginePipeline: Use converter for event probe
2022-12-11 00:21:16 +01:00
Jonas Kvinge
b2073df3c3
GstEnginePipeline: Detect if autoaudiosink has volume
...
Fixes #1037
2022-12-04 08:37:33 +01:00
Jonas Kvinge
292f2de3e6
GstEnginePipeline: Add more info when ignoring error
2022-12-04 03:18:04 +01:00
Jonas Kvinge
b92ec71810
Use system volume when possible
...
Fixes #1037
2022-12-03 04:33:22 +01:00
Jonas Kvinge
c16396a690
GstEnginePipeline: Log pipeline initialized
2022-11-09 22:42:43 +01:00
Jonas Kvinge
32f9c4e670
GstEnginePipeline: Parse album from stream title tag
...
Fixes #1023
2022-08-30 16:56:08 +02:00
Jonas Kvinge
2b24ac54a0
Remove unused includes
2022-08-28 03:09:33 +02:00
Jonas Kvinge
d82fd421ed
Replace use of C-style casts
2022-06-13 00:23:42 +02:00
Jonas Kvinge
2414eb2598
GstEnginePipeline: Replace char with int8_t in HandoffCallback
2022-05-06 17:42:08 +02:00
Jonas Kvinge
c246b8f164
GstEngine: Show debug information in error dialog
2022-04-14 20:56:57 +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
eee3445d2f
Silence some conversion warnings
2022-02-06 04:19:45 +01:00
Jonas Kvinge
7caeb47637
GstEnginePipeline: Use std::shared_ptr with deleteLater() for fader timeline
...
Fixes #890
2022-02-05 19:33:21 +01:00
Jonas Kvinge
6a8c1af5f9
GstEnginePipeline: Set port-pattern for jackaudiosink
2021-11-11 00:58:00 +01:00
Jonas Kvinge
c6c53548ac
GstEnginePipeline: Return true from BusCallback
2021-10-30 17:55:18 +02: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
staticssleever668
b38ad81928
Remove use of C-style casts
2021-10-12 18:50:17 +02:00
Jonas Kvinge
637772f8f0
GstEnginePipeline: Convert S24_32LE for analyzer
2021-10-12 18:46:12 +02:00
Jonas Kvinge
0093eb6c2c
GstEnginePipeline: Refactor code
2021-10-12 18:36:58 +02:00
Jonas Kvinge
f3b70d1cb2
GstEnginePipeline: Rename variable
2021-10-12 18:36:13 +02:00
Jonas Kvinge
fd74bbc868
Remove unused GstElementDeleter
2021-10-10 16:33:07 +02:00
Jonas Kvinge
d0f1522f0d
GstEnginePipeline: Use gst_bus_remove_watch to remove bus watch
2021-10-08 23:39:29 +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