Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Resampling Support #1180

Open
wants to merge 57 commits into
base: dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 37 commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
0cefd0e
Better thread handling in player
JasonLG1979 Jun 22, 2023
35b94bd
Add the ability to get backend latency
JasonLG1979 Jun 22, 2023
7dae33c
Use default macro
JasonLG1979 Jun 22, 2023
71660a2
Add InterpolationQuality and SampleRate enums
JasonLG1979 Jun 22, 2023
3b64f25
Add resampler
JasonLG1979 Jun 22, 2023
375f837
Add normaliser
JasonLG1979 Jun 22, 2023
9861a58
Add sample_pipeline
JasonLG1979 Jun 22, 2023
3bcf549
Convert get_latency_pcm to get_latency_ms in sample_pipeline
JasonLG1979 Jun 22, 2023
e1ea400
Change the backends so that they support the diffrent sample rates
JasonLG1979 Jun 22, 2023
efec96b
Put it all together
JasonLG1979 Jun 22, 2023
2a8da82
Fix clippy lint
JasonLG1979 Jun 22, 2023
586e9f1
Fix clippy lint round 1000 + a small bug fix
JasonLG1979 Jun 22, 2023
b5e0ea2
Fix examples and update change log
JasonLG1979 Jun 22, 2023
09bd1bd
Fix up notify
JasonLG1979 Jun 22, 2023
8d35b4b
Update notify_about_position logic
JasonLG1979 Jun 22, 2023
0e3ffe5
Harmonize thread names and debug messages
JasonLG1979 Jun 23, 2023
bfb0366
Make sure the ResampleWorker task_receiver is also drained on drop
JasonLG1979 Jun 23, 2023
5da8ddf
Rename set_factor to update_normalisation_data to better indicate wha…
JasonLG1979 Jun 23, 2023
46b8f84
Make sure there is only ever one allocation when converting
JasonLG1979 Jun 23, 2023
340bac5
Warn the user if the try to set interpolation-quality with 44.1kHz
JasonLG1979 Jun 23, 2023
ad47630
Add release-dist-optimized profile
JasonLG1979 Jun 23, 2023
74b52e8
Improve resampler performance
JasonLG1979 Jun 24, 2023
0bdfa72
Remove round from pulse get_latency_pcm, floor math is fine
JasonLG1979 Jun 24, 2023
5e02b66
Simplify time calculations in SymphoniaDecoder
JasonLG1979 Jun 24, 2023
f7c56df
Remove AudioPacketPosition
JasonLG1979 Jun 24, 2023
ac2c05a
Reset the resampler's latency when stopped
JasonLG1979 Jun 25, 2023
528a8a4
Don't pad the alsa buffer anymore on stop.
JasonLG1979 Jun 25, 2023
d3ae1cd
Update all deps
JasonLG1979 Jun 26, 2023
8e6d452
Don't use Instant elapsed
JasonLG1979 Jun 26, 2023
98f1fe8
Reduce allocations
JasonLG1979 Jun 26, 2023
2fa2bf8
Don't handle messages that are not intended for us in spirc.
JasonLG1979 Jun 26, 2023
c29ec3f
Add warning about Normalisation Attack or Release being to small
JasonLG1979 Jun 26, 2023
4b081b1
Warn that trying to resample 44.1kHz to 44.1kHz is a stupid thing to do.
JasonLG1979 Jun 26, 2023
d1e4b44
Break message recursion.
JasonLG1979 Jun 27, 2023
841f923
Remove unnecessary step
JasonLG1979 Jun 27, 2023
20414e4
More warnings
JasonLG1979 Jun 27, 2023
cea92a9
Avoid unnecessary Vec -> Slice -> Vec
JasonLG1979 Jun 28, 2023
1ab5bac
Address review comments
JasonLG1979 Jun 29, 2023
15e2b44
Fully implement CommonSampleRates
JasonLG1979 Jun 29, 2023
00ee65b
Merge branch 'librespot-org:dev' into resampling
JasonLG1979 Jun 30, 2023
b15b48b
Merge branch 'dev' into resampling
JasonLG1979 Jun 30, 2023
242e68a
Revert remaining spirc changes
JasonLG1979 Jun 30, 2023
25425da
Put CommonSampleRates to some use and clean up backend imports
JasonLG1979 Jun 30, 2023
c4dc734
Change Interpolation Quality to default to High
JasonLG1979 Jun 30, 2023
3dafb59
Fix up for #1178
JasonLG1979 Jul 2, 2023
74e3f93
Make sure that decoder picks up where it left of going from paused to…
JasonLG1979 Jul 2, 2023
87bbd53
Add anti-alias filtering just in case
JasonLG1979 Jul 2, 2023
cb8f6c9
Duh, just use resample_factor_reciprocal
JasonLG1979 Jul 3, 2023
33e2ce6
Anti-alias Linear Interpolation also.
JasonLG1979 Jul 3, 2023
ac68d24
DRAY things up a bit
JasonLG1979 Jul 3, 2023
e31293c
Better Filters
JasonLG1979 Jul 4, 2023
3928d07
New filter coeff's and only have one quality setting.
JasonLG1979 Jul 4, 2023
1bc1685
Merge branch 'librespot-org:dev' into resampling
JasonLG1979 Jul 6, 2023
a331729
small clean up
JasonLG1979 Jul 6, 2023
8aaab0a
More touch ups
JasonLG1979 Sep 3, 2023
b867ab2
Merge branch 'dev' into resampling
JasonLG1979 Sep 4, 2023
96f5a4d
Fix clippy lint and add back ALSA padding.
JasonLG1979 Sep 4, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ https://github.com/librespot-org/librespot
- [playback] The passthrough decoder is now feature-gated (breaking)
- [playback] `rodio`: call play and pause
- [protocol] protobufs have been updated
- [playback] Moved audio processing with the exception of decoding out of `player` (breaking)

### Added

Expand Down Expand Up @@ -98,6 +99,8 @@ https://github.com/librespot-org/librespot
- [playback] Add metadata support via a `TrackChanged` event
- [connect] Add `activate` and `load` functions to `Spirc`, allowing control over local connect sessions
- [metadata] Add `Lyrics`
- [playback] Add `normaliser`, `resampler` and `sample_pipeline`.
- [playback] Add resampling support to 48kHz, 88.2kHz, and 96kHz.

### Fixed

Expand All @@ -115,6 +118,7 @@ https://github.com/librespot-org/librespot
- [playback] Handle seek, pause, and play commands while loading
- [playback] Handle disabled normalisation correctly when using fixed volume
- [metadata] Fix missing colon when converting named spotify IDs to URIs
- [playback] Better thread handling in `player`.

## [0.4.2] - 2022-07-29

Expand Down
Loading