topology2: cavs-sdw: add compressed playback pipeline with phase vocoder - #10986
topology2: cavs-sdw: add compressed playback pipeline with phase vocoder#10986singalsu wants to merge 2 commits into
Conversation
There was a problem hiding this comment.
Pull request overview
Adds an example topology2 configuration for cAVS SoundWire platforms that enables a compressed playback path with phase vocoder “speed” control (via COMPRESSED=true + COMPRESSED_SPEED=true), intended to demonstrate the combined feature set.
Changes:
- Introduces a new
compr-speed-playbackFE pipeline class that inserts a phase vocoder between decoder and post-processing. - Adds platform/topology wiring and defaults to instantiate one or two compressed-speed playback PCMs (jack/speaker) under feature keys.
- Updates phase vocoder control options to disable >1.0x speeds and adds new PV-specific format include files.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/topology/topology2/platform/intel/compr-speed.conf | Adds platform objects/routes for compressed-speed playback pipelines (1+2 instances). |
| tools/topology/topology2/platform/intel/compr-default.conf | Adds default COMPRESSED_SPEED* feature flags and IDs/names. |
| tools/topology/topology2/include/pipelines/cavs/compr-speed-playback.conf | New pipeline class inserting phase vocoder into compressed playback chain. |
| tools/topology/topology2/include/formats/compr_output_audio_formats_pv.conf | Adds PV output format definitions with explicit obs sizing. |
| tools/topology/topology2/include/formats/compr_input_audio_formats_pv.conf | Adds PV input format definitions with explicit ibs sizing. |
| tools/topology/topology2/include/components/phase_vocoder.conf | Disables enum speeds > 1.0x and documents DP/DP limitation rationale. |
| tools/topology/topology2/development/tplg-targets.cmake | Adds new development topology targets enabling COMPRESSED_SPEED=true. |
| tools/topology/topology2/cavs-sdw.conf | Wires in the new pipeline include + adds COMPRESSED_SPEED include hook and instance toggles. |
Add a new compr-speed-playback FE pipeline class for cavs-sdw that runs a decoder followed by the phase_vocoder module before the usual SRC, gain and mixin stages. The decoder and phase_vocoder widgets are placed on the DP scheduler so they can consume variable amounts of input per output period, which is what enables time-scaling playback of a compressed stream. The pipeline is instantiated from a new platform/intel/compr-speed.conf for both the Jack (COMPRESSED_SPEED_1) and Speaker (COMPRESSED_SPEED_2) paths, with defaults added to compr-default.conf (PCM IDs 60/62, pipeline IDs 95/96, PCM names "Compress Speed Playback[ 2]"). cavs-sdw gains matching COMPR_SPEED_* defines, an IncludeByKey.COMPRESSED_SPEED hook, and propagation of COMPRESSED_SPEED_1/2 through the Jack and amp-links branches so the pipeline is only built when it is requested. Two development targets, sof-arl-cs42l43-l0-compr-speed and sof-mtl-rt713-l0-rt1316-l12-compr-speed, are added to tplg-targets.cmake so the new topology can be built and exercised. Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
With this change it is possible to run the Phase Vocoder without need for DP-DP bind feature. When scheduled normally the render speeds over 1 must be disabled since it would cause immediate xrun and playback fail. Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
1c61f7f to
df8206d
Compare
There was a problem hiding this comment.
🟢 Ready to approve
The changes are consistent with existing compressed topology patterns and only introduce a minor comment-clarity follow-up.
This review doesn't count toward merge requirements. Sign up for the private preview to control whether Copilot approvals count.
Review details
Suppressed comments (1)
tools/topology/topology2/include/components/phase_vocoder.conf:84
- The new comment block is hard to parse (e.g., “DP-DP bind need”, “compress decoder”, “more free PCM flow”). Rewording would make it clearer why >1.0 speeds are disabled and what limitation it introduces.
# Speeds over 1 are disabled for now to be able to operate
# Phase Vocoder Module without DP-DP bind need. The compress
# decoder must be DP, so the DP mode and more free PCM flow
# is not available for the Phase Vocoder.
- Files reviewed: 8/8 changed files
- Comments generated: 0 new
- Review effort level: Lite
We're testing this review assessment. Please use 👍 or 👎 to tell us if it's correct.
Example of topology with both COMPRESSED=true,COMPRESSED_SPEED=true enabled