Commit graph

1896 commits

Author SHA1 Message Date
JasonLG1979
ac2c05a0f8 Reset the resampler's latency when stopped 2023-06-24 20:16:21 -05:00
JasonLG1979
f7c56dff44 Remove AudioPacketPosition
We don't need it since we now tell if we've skipped packets by calculating a max delta.
2023-06-24 18:59:01 -05:00
JasonLG1979
5e02b6643d Simplify time calculations in SymphoniaDecoder
Time impl's from f64 (as secs) so there's no need to manually calculate it beyond converting ms to sec.

If we grab the TimeBase in new we don't need to continually call decoder.codec_params().time_base everytime we want to convert ts to ms.
2023-06-24 18:10:35 -05:00
JasonLG1979
0bdfa726ca Remove round from pulse get_latency_pcm, floor math is fine 2023-06-24 15:26:29 -05:00
JasonLG1979
74b52e83fa Improve resampler performance
Do less calls into the worker.
2023-06-24 15:06:28 -05:00
JasonLG1979
ad4763005d Add release-dist-optimized profile
release-dist-optimized inherits from `release`. Useful if you're distributing librespot at part of a project. The diffrences are:

panic = "abort", Makes librespot abort instead of unwind and hang on a panic.
Extremely useful when running librespot unattended as a system service for example to allow for auto-restarts.

codegen-units = 1 and lto = true, Take slighly longer to compile but produce more optimized binaries.
2023-06-23 18:51:17 -05:00
JasonLG1979
340bac5eb0 Warn the user if the try to set interpolation-quality with 44.1kHz 2023-06-23 14:33:01 -05:00
JasonLG1979
46b8f84d6a Make sure there is only ever one allocation when converting
Collect is probably fine but for code that's this hot it's worth the couple extra lines to make certain there's only ever one allocation when it comes to the returned Vec.
2023-06-23 12:00:42 -05:00
JasonLG1979
5da8ddf5e2 Rename set_factor to update_normalisation_data to better indicate what it does 2023-06-23 11:24:10 -05:00
JasonLG1979
bfb0366c90 Make sure the ResampleWorker task_receiver is also drained on drop 2023-06-23 10:10:14 -05:00
JasonLG1979
0e3ffe5394 Harmonize thread names and debug messages 2023-06-23 03:08:22 -05:00
JasonLG1979
8d35b4b860 Update notify_about_position logic
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

Otherwise this is pretty straight forward.
If anything fails getting expected_position_ms it will return 0 which will trigger a notify if either stream_position_ms or decoder_position_ms is > 1000.

If all goes well it's simply a matter of calculating the max delta of expected_position_ms and stream_position_ms and expected_position_ms and decoder_position_ms.
So if the decoder or the sample pipeline are off by more than 1 sec we notify.
2023-06-23 00:38:15 -05:00
JasonLG1979
09bd1bd324 Fix up notify 2023-06-22 04:43:56 -05:00
JasonLG1979
b5e0ea2bd3 Fix examples and update change log 2023-06-22 02:06:24 -05:00
JasonLG1979
586e9f1929 Fix clippy lint round 1000 + a small bug fix 2023-06-22 01:40:50 -05:00
JasonLG1979
2a8da828c4 Fix clippy lint 2023-06-22 01:26:15 -05:00
JasonLG1979
efec96b9cc Put it all together 2023-06-21 23:32:03 -05:00
JasonLG1979
e1ea400220 Change the backends so that they support the diffrent sample rates 2023-06-21 22:17:41 -05:00
JasonLG1979
3bcf5498d2 Convert get_latency_pcm to get_latency_ms in sample_pipeline 2023-06-21 21:11:37 -05:00
JasonLG1979
9861a582a6 Add sample_pipeline 2023-06-21 20:55:00 -05:00
JasonLG1979
375f83797a Add normaliser 2023-06-21 20:48:02 -05:00
JasonLG1979
3b64f25286 Add resampler 2023-06-21 20:29:22 -05:00
JasonLG1979
71660a2351 Add InterpolationQuality and SampleRate enums 2023-06-21 19:51:14 -05:00
JasonLG1979
7dae33c4f0 Use default macro 2023-06-21 19:24:40 -05:00
JasonLG1979
35b94bdc94 Add the ability to get backend latency 2023-06-21 19:17:23 -05:00
JasonLG1979
0cefd0ea66 Better thread handling in player 2023-06-21 19:09:21 -05:00
dependabot[bot]
1ac9818a00
Bump actions/checkout from 3.5.2 to 3.5.3
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.5.2 to 3.5.3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.5.2...v3.5.3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-10 11:02:28 +00:00
eladyn
4d402e690c
add session timeout handling (#1129) 2023-06-01 21:39:35 +02:00
Roderick van Domburg
310725d2fb
Merge pull request #1150 from yubiuser/tweak/workflow_order
Check formatting and linting first on workflow
2023-06-01 20:51:29 +02:00
Roderick van Domburg
cb8a9bc931
Merge pull request #1165 from JasonLG1979/norm-data
Read Normalisation Data in one go
2023-06-01 20:49:25 +02:00
yubiuser
c964102a34
Update dependencies sysinfo and RSA (#1164) 2023-05-14 21:27:17 +02:00
JasonLG1979
f89c622e30 Read Normalisation Data in one go
Read all the Normalisation Data in one shot to avoid 4 seperate reads.
2023-05-13 13:00:50 -05:00
AeRo
31d18f7e30
Respect disabled normalisation with maximum volume (#1159) 2023-05-06 09:47:08 +02:00
Christian König
b8eed83d38 Check formatting and linting first on workflow
Signed-off-by: Christian König <ckoenig@posteo.de>
2023-05-04 12:52:21 +02:00
Roderick van Domburg
03b547d3b3
Merge pull request #1157 from librespot-org/dependabot/github_actions/dev/actions/checkout-3.5.2
Bump actions/checkout from 3.5.0 to 3.5.2
2023-04-16 21:11:35 +02:00
dependabot[bot]
83139f8d07
Bump actions/checkout from 3.5.0 to 3.5.2
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.5.0 to 3.5.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.5.0...v3.5.2)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-15 10:57:24 +00:00
Roderick van Domburg
e4d4765332
Merge pull request #1156 from yubiuser/update/quick_xml
Update quick-xml
2023-04-14 22:21:22 +02:00
Roderick van Domburg
fea1a819fd
Merge pull request #1155 from yubiuser/update/hyper-rustls
Update hyper-rustls
2023-04-14 21:43:58 +02:00
Roderick van Domburg
411f530e58
Merge pull request #1153 from yubiuser/update/vergen
Update vergen
2023-04-14 21:43:26 +02:00
Christian König
d8547f176c
Update quick-xml
Signed-off-by: Christian König <ckoenig@posteo.de>
2023-04-14 09:41:58 +02:00
Christian König
d83ed814a3
Update hyper-rustls
Signed-off-by: Christian König <ckoenig@posteo.de>
2023-04-13 21:22:40 +02:00
Christian König
ae8387af1d
Update vergen
Signed-off-by: Christian König <ckoenig@posteo.de>
2023-04-13 21:17:47 +02:00
Roderick van Domburg
2718d22c31
Merge pull request #1152 from yubiuser/update/rsa
Update rsa
2023-04-13 20:07:47 +02:00
Roderick van Domburg
7f6c126753
Merge pull request #1149 from yubiuser/remove/action_rust
Remove actions-rs/toolchain
2023-04-13 20:03:54 +02:00
yubiuser
e8c3ee07ef
Update base64 (#1148) 2023-04-13 20:02:33 +02:00
Roderick van Domburg
2a197947c4
Merge pull request #1154 from librespot-org/dependabot/cargo/h2-0.3.17
Bump h2 from 0.3.16 to 0.3.17
2023-04-13 19:58:03 +02:00
dependabot[bot]
2e7944f43e
Bump h2 from 0.3.16 to 0.3.17
Bumps [h2](https://github.com/hyperium/h2) from 0.3.16 to 0.3.17.
- [Release notes](https://github.com/hyperium/h2/releases)
- [Changelog](https://github.com/hyperium/h2/blob/master/CHANGELOG.md)
- [Commits](https://github.com/hyperium/h2/compare/v0.3.16...v0.3.17)

---
updated-dependencies:
- dependency-name: h2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-13 17:09:42 +00:00
Christian König
453ef48385
Update rsa
Signed-off-by: Christian König <ckoenig@posteo.de>
2023-04-12 23:38:05 +02:00
Christian König
cd56225935
Remove actions-rs/toolchain
Signed-off-by: Christian König <ckoenig@posteo.de>
2023-04-11 23:10:04 +02:00
Roderick van Domburg
c5a1d331db
Merge pull request #1146 from librespot-org/dependabot/github_actions/dev/actions-rs/toolchain-1.0.7
Bump actions-rs/toolchain from 1.0.6 to 1.0.7
2023-04-11 21:19:55 +02:00