videolan / videolan/libspatialaudio

Remove kiss_fft from public headers

Open
#62 2 comments 0 reactions 0 assignees View on GitHub

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.