-
Notifications
You must be signed in to change notification settings - Fork 349
comp: Add initial support for NXP Essential Audio Processing component #9999
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
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR introduces initial support for the NXP Essential Audio Processing (EAP) component, adding both the full EAP processing implementation and its associated topology and configuration files.
- Added new EAP processing code and parameter presets in src/audio/nxp/eap.c and related header files.
- Introduced topology and module adapter updates (M4 scripts and CMake/Kconfig changes) to integrate the new EAP component.
- Registered the component via uuid-registry.txt and exposed an interface in component.h.
Reviewed Changes
Copilot reviewed 17 out of 17 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| uuid-registry.txt | Registers the new uuid for the nxp_eap component. |
| tools/topology/topology1/sof/pipe-eap-playback.m4 | Adds pipeline topology for EAP playback functionality. |
| tools/topology/topology1/m4/eap_controls.m4 | Defines the control enumerations for the EAP component. |
| tools/topology/topology1/m4/eap.m4 | Provides macros for creating EAP widget sections. |
| tools/topology/topology1/CMakeLists.txt | Updates topology configuration to include the new EAP pipeline. |
| src/include/sof/audio/nxp/eap/eap_lib_defines.h | Introduces library macros for EAP processing features. |
| src/include/sof/audio/nxp/eap/EAP_Parameter_presets.h | Adds preset arrays for various EAP effects. |
| src/include/sof/audio/component.h | Declares the new initialization function for the NXP EAP interface. |
| src/audio/nxp/eap_stub.c | Implements stub functions for EAP when stub support is enabled. |
| src/audio/nxp/eap.c | Implements the full processing functionality and configuration for EAP. |
| src/audio/nxp/Kconfig | Adds Kconfig entries for enabling EAP and its stub. |
| src/audio/nxp/CMakeLists.txt | Configures CMake to build the EAP component and optionally its stub. |
| src/audio/Kconfig | Sources the nxp/Kconfig for component integration. |
| src/audio/CMakeLists.txt | Integrates the nxp subdirectory into the overall build. |
Comments suppressed due to low confidence (1)
src/include/sof/audio/nxp/eap/EAP_Parameter_presets.h:1
- [nitpick] The preset parameter arrays are defined in a header file without 'static' or 'const', which may lead to multiple definition issues. Consider declaring them as 'static const' if intended for use as constant data.
#ifndef EAP_PARAMETER_PRESETS_H_
lgirdwood
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@dbaluta good stuff ! I think we can land this for v2.12.
Btw, if convenient you can copy the tensorflow git clone script and adjust it for EAP to make it super easy for EAP users to get started (i.e. it can clone a known good commit).
We have only one repo for the binaries and it's handled inside our Yocto distro. But will have a look might be useful to have it inside the SOF scripts. Thanks, |
kv2019i
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. Please look at the comment with freeing memory on error path. Otherwise no blocking comments. The header location is something we probably need to work on (see inline), but does not have to be made in this PR.
| int index; | ||
| LVM_ReturnStatus_en ret; | ||
| struct comp_dev *dev = mod->dev; | ||
| struct nxp_eap_data *eap = module_get_private_data(mod); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
minor nit: reverse-xmas tree order for declarations would be nice
|
Need to fix the last commit. Will do this on Monday. |
NXP’s Essential Audio Processing (EAP) library is a bundle of audio
processing blocks for enhancing the tonal and spatial perception
of sound in audio applications
The initial support adds some presets parameters that can be set
using the standard alsamixer interface.
* AllEffectOff
* VoiceEnhancer
* MusicEnhancer
* AutoVolumeLeveler
* ConcertSound
* LoudnessMaximiser
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
This adds Essential Audio Processing (EAP) topology for i.MX8MP board with wm8960 codec. This will allow experiment with various EAP library preset parameters. Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
This is used for CI testing and compiling. Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
|
Waiting for the Intel Internal CI job to complete. testbench CI will not complete, so won't wait for that (#10017) . Otherwise ready to merge. |
Library binaries, headers and more documentation can be found here: https://github.com/nxp-mcuxpresso/EAP