-
Notifications
You must be signed in to change notification settings - Fork 349
topology2: add src support #5913
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
Conversation
tools/topology/topology2/include/pipelines/cavs/src-gain-playback.conf
Outdated
Show resolved
Hide resolved
tools/topology/topology2/include/pipelines/cavs/src-gain-playback.conf
Outdated
Show resolved
Hide resolved
|
updated, thanks |
tools/topology/topology2/include/pipelines/cavs/src-gain-playback.conf
Outdated
Show resolved
Hide resolved
tools/topology/topology2/include/pipelines/cavs/src-gain-playback.conf
Outdated
Show resolved
Hide resolved
tools/topology/topology2/include/pipelines/cavs/src-gain-playback.conf
Outdated
Show resolved
Hide resolved
tools/topology/topology2/include/pipelines/cavs/src-gain-playback.conf
Outdated
Show resolved
Hide resolved
tools/topology/topology2/include/pipelines/cavs/src-gain-playback.conf
Outdated
Show resolved
Hide resolved
|
change it to RFC since we need to support |
|
@plbossart @lgirdwood @ranj063 @bardliao I have an idea bout SRC support in Linux kernel. My solution is dynamically add SRC in driver according to sample rate so that we have optimized performance. Another way is to build it in topology but delete it in driver for no conversion rate. |
@RanderWang just a thought, rather than expressing all the supported in/out rates for the SRC in the topology, we could use a wildcard rate (like SNDRV_PCM_RATE_CONTINUOUS using 0) which means we can define a single SRC object with wildcard in/out rates where the FW could reject any invalid combination. |
That's what others have suggested in the 'AVS' driver, you could bind modules only if required, e.g. if you don't need an instance of SRC you can bypass the SRC. The problem is that it's of course a lot more complicated to decide whether to bind or not. This would not work for e.g. multiple steps of conversions, because at the moment the DPCM driver cannot be informed of possible rate changes. Also the introduction of the SRC is a nice feature, but who needs it? In practice, sound servers (CRAS, PulseAudio, etc) already resample to a desired rate, so it's not like we can expect tons of different configurations. Specifically the 44.1kHz case is not required, we've lived since 2013 without SRC in the firmware and no one ever complained about the host-based conversion. And last, SRC takes resources that could be used for other things that have more added value, such as branded processing, speaker amp. SRC is an item on a program manager checklist, its value as part of the firmware is very very questionable with very very limited returned IMHO. I vote that we don't spend too much time on the optimization and just focus on getting SRC to work. It remains to be seen whether this will actually be used in a product. |
The original calculation will generate 44 sample size for 44.1khz, actually it at least needs 45 sample size. This patch uses ceil value for such rate, also inlcude 11.025kh, 22.05kh, 88.2khz, 176.4khz. Signed-off-by: Rander Wang <rander.wang@intel.com>
Cavs src is different with sof src. It has different uuid and param which are composed of base module definition and output rate. Signed-off-by: Rander Wang <rander.wang@intel.com>
|
updated. Validated on ADL |
tools/topology/topology2/include/pipelines/cavs/src-gain-mixin-playback.conf
Outdated
Show resolved
Hide resolved
tools/topology/topology2/include/pipelines/cavs/src-gain-mixin-playback.conf
Outdated
Show resolved
Hide resolved
|
updated, thanks! |
singalsu
left a comment
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.
Looks OK to me for discussed part: frames count calculation.
a314de7 to
a8afc94
Compare
This pipeline supports conversion from 8k ~ 192k to 48k. Signed-off-by: Rander Wang <rander.wang@intel.com>
Signed-off-by: Rander Wang <rander.wang@intel.com>
S24LE is the major format used by SOF IPC4 FW and windows platform and has better perfomance than S32. Signed-off-by: Rander Wang <rander.wang@intel.com>
|
Hi @RanderWang , this PR seem to cause some error in cavs-mixin-mixout-hda.tplg and cause multiple IPC4 HDA platforms failed to load the tplg correctly. |
@XiaoyunWu6666 Please try #5971 |
This PR add ipc src support in topology2.