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

Custom WASAPI backend #18

Merged
merged 30 commits into from
Aug 13, 2022
Merged

Custom WASAPI backend #18

merged 30 commits into from
Aug 13, 2022

Conversation

zX3no
Copy link
Owner

@zX3no zX3no commented Aug 6, 2022

This is the first step towards removing cpal and simplifying the audio backend.

  • Extract needed functions from wasapi
  • API for sending samples to the audio stream
  • Simplify structs taken from rainout
  • Test symphonia decoders
  • Resampling with WASAPI
  • Re-write the player to support the new api
  • Bump to version 0.2.0
  • Test FLAC
  • Test MP3
  • Test OGG
  • Load queue on startup
  • Fix inconsistent volume reduction
  • Fix end of stream panic
  • Publish version 0.1.1 to crates.io so there is a build with linux support.

Windows supports resampling important sample-rates, but IAudioClockAdjustment::SetSampleRate() doesn't work for 192000Hz. So I think I'll need to re-create the output stream every time the sample-rate changes; similar to cpal.

Version 0.2.0 should also include PipeWire support.

@zX3no zX3no added the enhancement New feature or request label Aug 6, 2022
@zX3no zX3no self-assigned this Aug 6, 2022
@zX3no zX3no marked this pull request as ready for review August 11, 2022 11:14
@zX3no zX3no changed the title Experimental WASAPI backend Custom WASAPI backend Aug 11, 2022
@zX3no zX3no merged commit 14881ae into main Aug 13, 2022
@zX3no zX3no deleted the rainout branch August 13, 2022 01:51
@zX3no zX3no mentioned this pull request Aug 13, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant