-
Notifications
You must be signed in to change notification settings - Fork 354
Audio modules fixes #10752
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
base: main
Are you sure you want to change the base?
Audio modules fixes #10752
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -315,15 +315,25 @@ static void asrc_release_buffers(struct processing_module *mod, struct asrc_farr | |
| static int asrc_free(struct processing_module *mod) | ||
| { | ||
| struct comp_data *cd = module_get_private_data(mod); | ||
| struct comp_dev *dev = mod->dev; | ||
|
|
||
| comp_dbg(dev, "entry"); | ||
| comp_info(mod->dev, "asrc_free() entry"); | ||
|
|
||
| if (!cd) | ||
| return 0; | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. can it be called with |
||
|
|
||
| mod_free(mod, cd->buf); | ||
| asrc_release_buffers(mod, cd->asrc_obj); | ||
| asrc_free_polyphase_filter(mod, cd->asrc_obj); | ||
| mod_free(mod, cd->asrc_obj); | ||
| cd->buf = NULL; | ||
|
|
||
| if (cd->asrc_obj) { | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. same, can it be |
||
| asrc_release_buffers(mod, cd->asrc_obj); | ||
| asrc_free_polyphase_filter(mod, cd->asrc_obj); | ||
| mod_free(mod, cd->asrc_obj); | ||
| cd->asrc_obj = NULL; | ||
| } | ||
|
|
||
| mod_free(mod, cd); | ||
| module_set_private_data(mod, NULL); | ||
|
|
||
| return 0; | ||
| } | ||
|
|
||
|
|
@@ -862,12 +872,17 @@ static int asrc_reset(struct processing_module *mod) | |
| asrc_dai_stop_timestamp(cd); | ||
|
|
||
| /* Free the allocations those were done in prepare() */ | ||
| asrc_release_buffers(mod, cd->asrc_obj); | ||
| asrc_free_polyphase_filter(mod, cd->asrc_obj); | ||
| mod_free(mod, cd->asrc_obj); | ||
| mod_free(mod, cd->buf); | ||
| cd->asrc_obj = NULL; | ||
| cd->buf = NULL; | ||
| if (cd->asrc_obj) { | ||
| asrc_release_buffers(mod, cd->asrc_obj); | ||
| asrc_free_polyphase_filter(mod, cd->asrc_obj); | ||
| mod_free(mod, cd->asrc_obj); | ||
| cd->asrc_obj = NULL; | ||
| } | ||
|
|
||
| if (cd->buf) { | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. same for the above 2 added checks |
||
| mod_free(mod, cd->buf); | ||
| cd->buf = NULL; | ||
| } | ||
|
|
||
| return 0; | ||
| } | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -155,6 +155,10 @@ int mfcc_setup(struct processing_module *mod, int max_frames, int sample_rate, i | |
| state->emph.coef = -config->preemphasis_coefficient; /* Negate config parameter */ | ||
| fft->fft_size = config->frame_length; | ||
| fft->fft_padded_size = 1 << (31 - norm_int32(fft->fft_size)); /* Round up to nearest 2^N */ | ||
| if (config->frame_shift <= 0) { | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. can this be hit in real pipelines or only in ztests? |
||
| comp_err(dev, "frame_shift must be positive"); | ||
| return -EINVAL; | ||
| } | ||
|
Comment on lines
156
to
+161
|
||
| fft->fft_hop_size = config->frame_shift; | ||
| fft->half_fft_size = (fft->fft_padded_size >> 1) + 1; | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -95,6 +95,11 @@ int mic_privacy_manager_init(void) | |
| if (!mic_priv_dev) | ||
| return -EINVAL; | ||
|
|
||
| if (!device_is_ready(mic_priv_dev)) { | ||
| LOG_ERR("mic_privacy device not ready"); | ||
| return -ENODEV; | ||
| } | ||
|
Comment on lines
+98
to
+101
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is a valid concern. Maybe alternative is to drop mic privacy when running the ztest? |
||
|
|
||
| mic_privacy_api = (struct mic_privacy_api_funcs *)mic_priv_dev->api; | ||
| mic_privacy_policy = mic_privacy_api->get_policy(); | ||
|
|
||
|
|
@@ -109,6 +114,9 @@ int mic_privacy_manager_init(void) | |
|
|
||
| int mic_privacy_manager_get_policy(void) | ||
| { | ||
| if (!mic_priv_dev) | ||
| return MIC_PRIVACY_HW_MANAGED; | ||
|
|
||
| mic_privacy_api = (struct mic_privacy_api_funcs *)mic_priv_dev->api; | ||
|
|
||
| return mic_privacy_api->get_policy(); | ||
|
|
||
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.
we have removed all function names from all logging on purpose, let's not start re-adding them. Function names are printed automatically by Zephyr.