diff --git a/src/audio/phase_vocoder/phase_vocoder.c b/src/audio/phase_vocoder/phase_vocoder.c index b82bf700eb9e..b756dce72072 100644 --- a/src/audio/phase_vocoder/phase_vocoder.c +++ b/src/audio/phase_vocoder/phase_vocoder.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include "phase_vocoder.h" @@ -177,6 +178,12 @@ static int phase_vocoder_prepare(struct processing_module *mod, struct sof_sourc return -EINVAL; } +#if CONFIG_IPC_MAJOR_4 + /* Push base_cfg.audio_fmt onto endpoints so valid_sample_fmt is not left at 0 (S16_LE). */ + ipc4_update_source_format(sources[0], &base_cfg->audio_fmt); + ipc4_update_sink_format(sinks[0], &base_cfg->audio_fmt); +#endif + /* get source data format */ cd->frame_bytes = source_get_frame_bytes(sources[0]); cd->stream_channels = source_get_channels(sources[0]);