Skip to content

Update API and IAMF Compatibility#50

Merged
ePirat merged 20 commits into
videolan:masterfrom
peterStitt:api_update2
Oct 16, 2025
Merged

Update API and IAMF Compatibility#50
ePirat merged 20 commits into
videolan:masterfrom
peterStitt:api_update2

Conversation

@peterStitt

Copy link
Copy Markdown
Contributor

Here is an update that hopefully makes the API clearer and easier to use, as well as to make it more compatible with the IAMF specification. The main changes are:

  • LFE channel can now be included in Renderer when outputting to binaural. ADM/BEAR discards for binaural it but the user might want to include it.
  • Changed how Channels and Layouts are handled.
  • Added the option to apply gains to DirectSpeaker and HOA streams sent to Renderer. Also added an output gain to Renderer. These help with IAMF compatibility.
  • Restructuring and refactoring code to better separate generic processing from method specific ones (like ADM).
  • Fixed some bugs and improved the low-frequency response of the HOA-to-binaural decoder.

Once we settle on these changes I still need to update the docs to reflect the API changes and to make it clearer what the lib can do :)

Comment thread include/GainInterp.h
Comment thread include/GainInterp.h
Comment thread CMakeLists.txt
@ePirat ePirat added this to the v0.4.0 Release milestone Oct 16, 2025
…annels and layouts and to allow easier construction of default channels or layouts.
…rsion of the Binaural output of the AdmRenderer/Renderer class. Also removed HOA from the Layout class so it expects only layouts in OutputLayout
…thout the need to use the Renderer class or metadata
…2094::channelLabels.

Changed renaming to avoid incorrectly labelling LFER as LFE1
…runcation in pre-processing.

Ensure that the input to Process() is not overwritten by the optimisation shelf filtering.
… via the metadata. This already existed of Objects but has been added for HOA and DirectSpeaker streams.

An overall gain can also be optionally applied to the output signal.
.

Before that commit the decoder coefficients in AmbisonicDecoder assumed N3D normalisation and correction for SN3D normalisation (used by the lib) was done at decoding.
1dc37eb moved the N3D->SN3D correction to the decoder coefficients. However, the old correction was left in AmbisonicBinauralizer, leading to double "correction".

This commit also fixes a bug where the correction gain was not applied to the highest order channels.
@ePirat ePirat merged commit f3d7039 into videolan:master Oct 16, 2025
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants