Jason Gray
b867ab2eab
Merge branch 'dev' into resampling
2023-09-04 10:23:41 -05:00
JasonLG1979
8aaab0a210
More touch ups
2023-09-03 17:32:55 -05:00
Roderick van Domburg
054074c920
Merge pull request #1197 from librespot-org/dependabot/cargo/rustls-webpki-0.100.2
...
Bump rustls-webpki from 0.100.1 to 0.100.2
2023-08-23 20:07:43 +02:00
dependabot[bot]
d96695e413
Bump rustls-webpki from 0.100.1 to 0.100.2
...
Bumps [rustls-webpki](https://github.com/rustls/webpki ) from 0.100.1 to 0.100.2.
- [Release notes](https://github.com/rustls/webpki/releases )
- [Commits](https://github.com/rustls/webpki/compare/v/0.100.1...v/0.100.2 )
---
updated-dependencies:
- dependency-name: rustls-webpki
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-08-22 18:08:27 +00:00
Roderick van Domburg
f037e46aee
Merge pull request #1176 from jlehtoranta/single-player
...
Use a single player instance
2023-07-19 21:19:49 +02:00
Jarkko Lehtoranta
b1c6641723
Update changelog ( #1176 )
2023-07-19 14:57:44 +03:00
Jarkko Lehtoranta
c60c4f4c8c
Start a new session on credentials change
2023-07-19 14:49:17 +03:00
Jarkko Lehtoranta
02c9be368d
Reset session after spirc crash
2023-07-19 14:49:17 +03:00
Jarkko Lehtoranta
e5abed7c92
Exit with an error when the player instance is invalid
2023-07-19 14:49:17 +03:00
Jarkko Lehtoranta
e3db0994bc
Use single player and mixer instances
2023-07-19 14:49:17 +03:00
Jarkko Lehtoranta
c6b62b82d4
Allow player session changes
2023-07-19 14:49:17 +03:00
Jarkko Lehtoranta
ddadcc9ea0
Add a health check method to player
2023-07-19 14:49:17 +03:00
Jarkko Lehtoranta
46195f18d6
Handle play_request_id as an event
2023-07-19 14:49:05 +03:00
Roderick van Domburg
8e43c3f097
Merge pull request #1187 from jokester/fix/prevent-overwrite-to-unchanged-cred
...
do not overwrite unchanged cached Credentials (#1168 )
2023-07-13 21:23:42 +02:00
Wang Guan
d6257c41ca
make clippy happy: clippy::default-constructed-unit-structs
2023-07-14 00:21:37 +09:00
Wang Guan
ebf600d96e
do not overwrite unchanged cached Credentials ( #1168 )
2023-07-14 00:02:57 +09:00
JasonLG1979
a331729f0e
small clean up
2023-07-06 17:58:42 -05:00
Jason Gray
1bc16855c9
Merge branch 'librespot-org:dev' into resampling
2023-07-06 00:45:30 -05:00
JasonLG1979
3928d0775f
New filter coeff's and only have one quality setting.
2023-07-05 23:47:38 -05:00
JasonLG1979
e31293cc10
Better Filters
...
All Windows calculated with pyfda (Python Filter Design Analysis Tool)
https://github.com/chipmuenk/pyfda
Window = Kaiser
beta = 8.6 (Similar to a Blackman Window)
fc = 22.5kHz
-86dB by 23kHz
This also gets rid of Linear Interpolation which leaves only Low and High both being Windowed Sinc.
2023-07-04 04:02:39 -05:00
Nick Steel
c491f90e09
Parse expiry timestamp from spotifycdn.com CDN URLs ( Fixes #1182 ) ( #1183 )
...
The CDN URLs list now includes spotifycdn.com which has a different
format. It was being erroneously interpreted using the scdn.co format
and trying to parse non-digit characters as a timestamp.
Also ignore expiry timestamps we can't parse for future new URLs.
2023-07-04 10:37:22 +02:00
JasonLG1979
ac68d2431e
DRAY things up a bit
2023-07-03 15:20:23 -05:00
JasonLG1979
33e2ce65d3
Anti-alias Linear Interpolation also.
2023-07-03 14:10:21 -05:00
JasonLG1979
cb8f6c954d
Duh, just use resample_factor_reciprocal
...
The resample_factor_reciprocal also happens to be our
anti-alias cutoff. In this case it represents the minimum
output bandwidth needed to fully represent the input.
2023-07-02 22:16:14 -05:00
JasonLG1979
87bbd539b7
Add anti-alias filtering just in case
...
Cap the output bandwidth to 92%.
Even at 48kHz it still translates to 100% source bandwidth.
This just provides a little bit of anti-alias filtering.
There is more then likely nothing there to filter,
but it doesn't hurt or cost us anything to make sure.
2023-07-02 17:59:11 -05:00
JasonLG1979
74e3f938da
Make sure that decoder picks up where it left of going from paused to play
...
Since we are including the pipeline latency in the position we need to seek to the correct position when going from paused to play.
We can also drop the ALSA and PulseAudio buffers instead of draining them since their latency's are factored in.
2023-07-02 04:31:04 -05:00
JasonLG1979
3dafb5904e
Fix up for #1178
...
sys.uptime() returns sec not mins so it should be 60 not 1.
2023-07-01 22:25:48 -05:00
JasonLG1979
c4dc7347c7
Change Interpolation Quality to default to High
2023-06-30 13:55:34 -05:00
JasonLG1979
25425dab5c
Put CommonSampleRates to some use and clean up backend imports
2023-06-30 12:36:12 -05:00
JasonLG1979
242e68a98c
Revert remaining spirc changes
...
It's best to deal with this after discovery is fixed.
2023-06-30 10:56:44 -05:00
Jason Gray
b15b48b626
Merge branch 'dev' into resampling
2023-06-30 10:30:26 -05:00
Jason Gray
4d6de15a97
Discovery retry ( #1178 )
...
When started at boot as a service discovery may fail due to it
trying to bind to interfaces before the network is actually up.
This could be prevented in systemd by starting the service after
network-online.target but it requires that a wait-online.service is
also enabled which is not always the case since a wait-online.service
can potentially hang the boot process until it times out in certain situations.
This allows for discovery to retry every 10 secs in the 1st 60 secs of uptime
before giving up thus papering over the issue and not holding up the boot process.
2023-06-30 09:30:14 +02:00
Jason Gray
00ee65b006
Merge branch 'librespot-org:dev' into resampling
2023-06-29 20:31:46 -05:00
JasonLG1979
15e2b441aa
Fully implement CommonSampleRates
2023-06-29 16:35:54 -05:00
JasonLG1979
1ab5bac786
Address review comments
2023-06-28 22:16:33 -05:00
Roderick van Domburg
e5d364b07a
Merge pull request #1181 from yubiuser/xml
...
Update quick-xml to 0.29
2023-06-28 22:18:26 +02:00
Roderick van Domburg
2242a24d7e
Merge pull request #1175 from librespot-org/dependabot/github_actions/dev/actions/checkout-3.5.3
...
Bump actions/checkout from 3.5.2 to 3.5.3
2023-06-28 22:03:29 +02:00
JasonLG1979
cea92a9c3a
Avoid unnecessary Vec -> Slice -> Vec
...
In the case of a resampler bypass
2023-06-27 19:21:02 -05:00
JasonLG1979
20414e44b8
More warnings
2023-06-27 17:05:52 -05:00
JasonLG1979
841f923549
Remove unnecessary step
...
Our interpolation_coefficients are already normalized.
2023-06-27 16:13:31 -05:00
JasonLG1979
d1e4b4464a
Break message recursion.
2023-06-26 21:31:03 -05:00
JasonLG1979
4b081b1365
Warn that trying to resample 44.1kHz to 44.1kHz is a stupid thing to do.
2023-06-26 18:00:39 -05:00
JasonLG1979
c29ec3f473
Add warning about Normalisation Attack or Release being to small
2023-06-26 17:45:28 -05:00
JasonLG1979
2fa2bf86cb
Don't handle messages that are not intended for us in spirc.
...
This prevents 2 active instances of librespot from effectively arguing over who the current active instance actually is. Without it events recurse.
2023-06-26 17:12:32 -05:00
JasonLG1979
98f1fe84dd
Reduce allocations
2023-06-26 05:11:30 -05:00
JasonLG1979
8e6d452765
Don't use Instant elapsed
...
It would be so much easier to use elapsed but elapsed could potentially panic is rare cases.
See:
https://doc.rust-lang.org/std/time/struct.Instant.html#monotonicity
2023-06-26 02:32:39 -05:00
JasonLG1979
d3ae1cdc55
Update all deps
2023-06-25 21:09:43 -05:00
Christian König
9c30532fd4
Update quick-xml to 0.29
...
Signed-off-by: Christian König <ckoenig@posteo.de>
2023-06-25 23:32:09 +02:00
JasonLG1979
528a8a431e
Don't pad the alsa buffer anymore on stop.
...
It's no longer necessary with the SymphoniaDecoder, in fact it causes the problem it used to prevent. Namely pops when you pause.
2023-06-24 22:50:32 -05:00
JasonLG1979
ac2c05a0f8
Reset the resampler's latency when stopped
2023-06-24 20:16:21 -05:00