For gapless playback it is possible that each track can have different codec profile with same decoder, for example we have WMA album, we may have different tracks as WMA v9, WMA v10 and so on Or if DSP's like QDSP have abililty to switch decoders on single stream for each track, then this call could be used to set new codec parameters.
Existing code does not allow to change this profile while doing gapless playback.
This patchset adds new SNDRV_COMPRESS_SET_CODEC_PARAMS IOCTL along with flags in capablity structure to allow userspace to set this new parameters required which switching codec profile, either for gapless or cross fade usecase.
thanks, srini
Changes since v1: - split patch into smaller chuncks, - bump up the version - added flags in compress capablity structure - added user for this new functionality. - add this new call in Documentation.
Srinivas Kandagatla (6): ALSA: compress: move codec parameter check to a function ALSA: compress: add new ioctl for setting codec parameters ALSA: compress: add flags to snd_compr_caps to expose dsp caps ASoC: compress: add snd_soc_dai_compr_set_codec_params() ALSA: compress: bump the version ASoC: q6asm-dai: add support to set_codec_params
.../sound/designs/compress-offload.rst | 6 ++ include/sound/compress_driver.h | 5 ++ include/sound/soc-component.h | 3 + include/sound/soc-dai.h | 5 ++ include/uapi/sound/compress_offload.h | 10 ++- sound/core/compress_offload.c | 72 +++++++++++++++++-- sound/soc/qcom/qdsp6/q6asm-dai.c | 33 +++++++++ sound/soc/soc-compress.c | 30 ++++++++ sound/soc/soc-dai.c | 14 ++++ 9 files changed, 170 insertions(+), 8 deletions(-)