Skip to content

topology2: cavs-sdw: add compressed playback pipeline with phase vocoder - #10986

Draft
singalsu wants to merge 2 commits into
thesofproject:mainfrom
singalsu:tplg_sdw_add_phase_vocoder
Draft

topology2: cavs-sdw: add compressed playback pipeline with phase vocoder#10986
singalsu wants to merge 2 commits into
thesofproject:mainfrom
singalsu:tplg_sdw_add_phase_vocoder

Conversation

@singalsu

Copy link
Copy Markdown
Collaborator

Example of topology with both COMPRESSED=true,COMPRESSED_SPEED=true enabled

sof-mtl-rt713-l0-rt1316-l12-compr-speed

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-playback FE 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>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants