videolan / videolan/libspatialaudio
Remove kiss_fft from public headers
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 317
- Forks
- 60
- PR merge metrics
- No merged PRs in 30d
Description
Currently kiss_fft headers are installed, thats not as trivial to change as some classes use kiss_fft_cpx and kiss_fftr_cfg types in their class private members, so without the kiss_fft headers the public headers for these classes would cause errors when included by API users.
The classes are:
- AmbisonicBinauralizer
- AmbisonicShelfFilters
- Decorrelator
The most trivial way to solve this seems to be the PIMPL idiom, see https://en.cppreference.com/w/cpp/language/pimpl.html
It would also mean that adding or removing private members would no longer break ABI, making it a lot easier to maintain stable ABI in the future.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Inspect the public declarations and private members of AmbisonicBinauralizer, AmbisonicShelfFilters, and Decorrelator, then review the referenced PIMPL idiom. The work is done when kiss_fft headers are no longer required by public headers and private-member changes no longer break ABI.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- audio-video-rtc
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100