mbox series

[v3,00/10] ASoC: qdsp6: add gapless compressed audio support

Message ID 20200727093806.17089-1-srinivas.kandagatla@linaro.org (mailing list archive)
Headers show
Series ASoC: qdsp6: add gapless compressed audio support | expand

Message

Srinivas Kandagatla July 27, 2020, 9:37 a.m. UTC
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 v2:(mostly suggested by Pierre)
- removed unnessary kernel style comments,
- moved TIMESTAMP flag to respective patch.
- move preparatory code from gapless support patch to new one.
- fix subject prefix of one patch.
- add comments to clarify valid stream_ids

Srinivas Kandagatla (10):
  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: q6asm-dai: prepare set params to accept profile change
  ASoC: q6asm-dai: add gapless support
  ASoC: q6asm-dai: add support to copy callback

 sound/soc/qcom/qdsp6/q6asm-dai.c | 414 +++++++++++++++++++++++--------
 sound/soc/qcom/qdsp6/q6asm.c     | 169 +++++++++----
 sound/soc/qcom/qdsp6/q6asm.h     |  49 ++--
 3 files changed, 469 insertions(+), 163 deletions(-)

Comments

Pierre-Louis Bossart July 27, 2020, 3:24 p.m. UTC | #1
On 7/27/20 4:37 AM, Srinivas Kandagatla wrote:
> 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

I've run out of comments :-)

Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>

> Changes since v2:(mostly suggested by Pierre)
> - removed unnessary kernel style comments,
> - moved TIMESTAMP flag to respective patch.
> - move preparatory code from gapless support patch to new one.
> - fix subject prefix of one patch.
> - add comments to clarify valid stream_ids
> 
> Srinivas Kandagatla (10):
>    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: q6asm-dai: prepare set params to accept profile change
>    ASoC: q6asm-dai: add gapless support
>    ASoC: q6asm-dai: add support to copy callback
> 
>   sound/soc/qcom/qdsp6/q6asm-dai.c | 414 +++++++++++++++++++++++--------
>   sound/soc/qcom/qdsp6/q6asm.c     | 169 +++++++++----
>   sound/soc/qcom/qdsp6/q6asm.h     |  49 ++--
>   3 files changed, 469 insertions(+), 163 deletions(-)
>
Vinod Koul July 28, 2020, 12:02 p.m. UTC | #2
On 27-07-20, 10:37, Srinivas Kandagatla wrote:
> 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.

The lgtm so:
Reviewed-by: Vinod Koul <vkoul@kernel.org>

tested on Dragon Board RB3:

Tested-by: Vinod Koul <vkoul@kernel.org>
Mark Brown Aug. 18, 2020, 4:55 p.m. UTC | #3
On Mon, 27 Jul 2020 10:37:56 +0100, Srinivas Kandagatla wrote:
> 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.
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[01/10] ASoC: q6asm: rename misleading session id variable
        commit: 99b7db5f6d4090e98eee79cefc8521fdf4f46ad8
[02/10] ASoC: q6asm: make commands specific to streams
        commit: 789e3b6c5238448a6dcfc9bc998dfe3ea9d87150
[03/10] ASoC: q6asm: use flags directly from q6asm-dai
        commit: e0c078a8da333eb45745d1c5e4b72f0314b8b742
[04/10] ASoC: q6asm: add length to write command token
        commit: 50d4e2146cdd48fcc1cd748dfb06dd0fc486eb26
[05/10] ASoC: q6asm: add support to remove intial and trailing silence
        commit: 39376129783168c51981bd2c195a1d10ae63104f
[06/10] ASoC: q6asm: add support to gapless flag in q6asm open
        commit: 983b8864f6033336e619a5936a02aea3026c5742
[07/10] ASoC: q6asm-dai: add next track metadata support
        commit: 135bd5ea190f3e31d2289da98a53d28e1be5b6bf
[08/10] ASoC: q6asm-dai: prepare set params to accept profile change
        commit: 5b39363e54ccca8fee700e5cc6acf42a80ff1de3
[09/10] ASoC: q6asm-dai: add gapless support
        commit: ee941a338ad67dfd852826eec381d8584edf29f2
[10/10] ASoC: q6asm-dai: add support to copy callback
        commit: a08cd56a45245ea422d77e7ee5ce20d5f21f5b5d

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark