This patchset adds gapless compressed audio support on q6asm. Gapless on q6asm is implemented using 2 streams in a single q6asm session.
First few patches such as stream id per each command, gapless flags and silence meta data are for preparedness for adding gapless support. Last patch implements copy callback to allow finer control over buffer offsets, specially in partial drain cases.
This patchset is tested on RB3 aka DB845c platform.
This patchset as it is will support gapless however QDSP can also support switching decoders on a single stream. Patches to support such feature are send in different patchset which involves adding generic interfaces.
Thanks, srini
Changes since v1: - Fixed all the comments to use "q6asm" wording correctly. - dropped patches that are already applied
Srinivas Kandagatla (9): ASoC: q6asm: rename misleading session id variable ASoC: q6asm: make commands specific to streams ASoC: q6asm: use flags directly from q6asm-dai ASoC: q6asm: add length to write command token ASoC: q6asm: add support to remove intial and trailing silence ASoC: q6asm: add support to gapless flag in q6asm open ASoC: q6asm-dai: add next track metadata support ASoC: qdsp6-dai: add gapless support ASoC: q6asm-dai: add support to copy callback
sound/soc/qcom/qdsp6/q6asm-dai.c | 413 +++++++++++++++++++++++-------- sound/soc/qcom/qdsp6/q6asm.c | 169 +++++++++---- sound/soc/qcom/qdsp6/q6asm.h | 48 ++-- 3 files changed, 467 insertions(+), 163 deletions(-)