Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
google_rtc_audio_processing: Add trigger handler for pipeline control
The reference playback stream for this component is from a different pipeline in another direction, and SOF does not handle this well or consistently. Add a trigger handler to avoid pitfalls: Drop and ignore commands arriving from the foreign reference pipeline. They aren't for us. Traditionally SOF has tried to propagate pipeline startup to connected pipelines, but this never worked correctly for opposite-direction connections like this one. And IPC4 now has removed (I think) almost all of the cross-pipeline trigger propagation anyway. Call into comp_new_state() directly to avoid some IPC3-only logic in module_adapter_set_state() that would fail pipeline startup if there were sources that were already active at the time of the PRE_START command (I guess it was treating this as invalid, because the pipeline should be off at PRE_START -- but the reference stream is on a different pipeline and can be on if playback is active!) The net effect is that this corrects the AEC component lifecycle to work either with or without an active reference pipeline, though as of this patch the data-less reference stream will still stall if you try to open capture without playback already running. Signed-off-by: Andy Ross <[email protected]>
- Loading branch information