From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> To: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>, broonie@kernel.org Cc: alsa-devel@alsa-project.org, ckeepax@opensource.cirrus.com, tiwai@suse.com, lgirdwood@gmail.com, linux-kernel@vger.kernel.org, vkoul@kernel.org Subject: Re: [PATCH 10/11] ASoC: qdsp6-dai: add gapless support Date: Wed, 8 Jul 2020 10:44:36 +0100 [thread overview] Message-ID: <04a7f696-e23d-5563-7cc3-aedfaf2c7636@linaro.org> (raw) In-Reply-To: <62af11d3-db26-a31b-00c8-9d78b11862cc@linux.intel.com> Thanks Pierre for review, On 07/07/2020 18:07, Pierre-Louis Bossart wrote: > > > On 7/7/20 11:36 AM, Srinivas Kandagatla wrote: >> Add support to gapless playback by implementing metadata, >> next_track, drain and partial drain support. >> >> Gapless on Q6ASM is implemented by opening 2 streams in a single asm >> stream > > What does 'in a single asm stream' means? So in QDSP6 ASM (Audio Stream Manager) terminology we have something called "asm session" for each ASoC FE DAI, Each asm session can be connected with multiple streams (upto 8 I think). However there will be only one active stream at anytime. Also there only single data buffer associated with each asm session. For Gapless usecase, we can keep two streams open for one asm-session, allowing us to fill in data on second stream while first stream is playing. > >> and toggling them on next track. > > It really seems to me that you have two streams at the lowest level, > along with the knowledge of how many samples to remove/insert and hence > could do a much better job - including gapless support between unrelated > profiles and cross-fading - without the partial drain and next_track > mechanism that was defined assuming a single stream/profile. At the end of the day its a single session with one data buffer but with multiple streams. Achieving cross fade should be easy with this design. We need those hooks for partial drain and next track to allow us to switch between streams and pass silence information to respective stream ids. --srini >
WARNING: multiple messages have this Message-ID (diff)
From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> To: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>, broonie@kernel.org Cc: alsa-devel@alsa-project.org, ckeepax@opensource.cirrus.com, lgirdwood@gmail.com, linux-kernel@vger.kernel.org, tiwai@suse.com, vkoul@kernel.org Subject: Re: [PATCH 10/11] ASoC: qdsp6-dai: add gapless support Date: Wed, 8 Jul 2020 10:44:36 +0100 [thread overview] Message-ID: <04a7f696-e23d-5563-7cc3-aedfaf2c7636@linaro.org> (raw) In-Reply-To: <62af11d3-db26-a31b-00c8-9d78b11862cc@linux.intel.com> Thanks Pierre for review, On 07/07/2020 18:07, Pierre-Louis Bossart wrote: > > > On 7/7/20 11:36 AM, Srinivas Kandagatla wrote: >> Add support to gapless playback by implementing metadata, >> next_track, drain and partial drain support. >> >> Gapless on Q6ASM is implemented by opening 2 streams in a single asm >> stream > > What does 'in a single asm stream' means? So in QDSP6 ASM (Audio Stream Manager) terminology we have something called "asm session" for each ASoC FE DAI, Each asm session can be connected with multiple streams (upto 8 I think). However there will be only one active stream at anytime. Also there only single data buffer associated with each asm session. For Gapless usecase, we can keep two streams open for one asm-session, allowing us to fill in data on second stream while first stream is playing. > >> and toggling them on next track. > > It really seems to me that you have two streams at the lowest level, > along with the knowledge of how many samples to remove/insert and hence > could do a much better job - including gapless support between unrelated > profiles and cross-fading - without the partial drain and next_track > mechanism that was defined assuming a single stream/profile. At the end of the day its a single session with one data buffer but with multiple streams. Achieving cross fade should be easy with this design. We need those hooks for partial drain and next track to allow us to switch between streams and pass silence information to respective stream ids. --srini >
next prev parent reply other threads:[~2020-07-08 9:44 UTC|newest] Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-07-07 16:36 [PATCH 00/11] ASoC: qdsp6: add gapless compressed audio support Srinivas Kandagatla 2020-07-07 16:36 ` Srinivas Kandagatla 2020-07-07 16:36 ` [PATCH 01/11] ASoC: q6asm: add command opcode to timeout error report Srinivas Kandagatla 2020-07-07 16:36 ` Srinivas Kandagatla 2020-07-07 16:36 ` [PATCH 02/11] ASoC: q6asm: rename misleading session id variable Srinivas Kandagatla 2020-07-07 16:36 ` Srinivas Kandagatla 2020-07-07 16:36 ` [PATCH 03/11] ASoC: q6asm: make commands specific to streams Srinivas Kandagatla 2020-07-07 16:36 ` Srinivas Kandagatla 2020-07-07 16:52 ` Pierre-Louis Bossart 2020-07-07 16:52 ` Pierre-Louis Bossart 2020-07-08 9:44 ` Srinivas Kandagatla 2020-07-08 9:44 ` Srinivas Kandagatla 2020-07-08 13:13 ` Mark Brown 2020-07-08 13:13 ` Mark Brown 2020-07-08 15:26 ` Srinivas Kandagatla 2020-07-08 15:26 ` Srinivas Kandagatla 2020-07-07 16:36 ` [PATCH 04/11] ASoC: q6asm: use flags directly from asm-dai Srinivas Kandagatla 2020-07-07 16:36 ` Srinivas Kandagatla 2020-07-07 16:36 ` [PATCH 05/11] ASoC: q6asm: add length to write command token Srinivas Kandagatla 2020-07-07 16:36 ` Srinivas Kandagatla 2020-07-07 16:36 ` [PATCH 06/11] ASoC: q6asm: add support to remove intial and trailing silence Srinivas Kandagatla 2020-07-07 16:36 ` Srinivas Kandagatla 2020-07-07 16:55 ` Pierre-Louis Bossart 2020-07-07 16:55 ` Pierre-Louis Bossart 2020-07-08 9:44 ` Srinivas Kandagatla 2020-07-08 9:44 ` Srinivas Kandagatla 2020-07-07 16:36 ` [PATCH 07/11] ASoC: q6asm: add support to gapless flag in asm open Srinivas Kandagatla 2020-07-07 16:36 ` Srinivas Kandagatla 2020-07-07 16:57 ` Pierre-Louis Bossart 2020-07-07 16:57 ` Pierre-Louis Bossart 2020-07-08 9:44 ` Srinivas Kandagatla 2020-07-08 9:44 ` Srinivas Kandagatla 2020-07-07 16:36 ` [PATCH 08/11] ASoC: q6asm-dai: add next track metadata support Srinivas Kandagatla 2020-07-07 16:36 ` Srinivas Kandagatla 2020-07-07 16:36 ` [PATCH 09/11] ASoC: qdsp6: use dev_err instead of pr_err Srinivas Kandagatla 2020-07-07 16:36 ` Srinivas Kandagatla 2020-07-07 16:36 ` [PATCH 10/11] ASoC: qdsp6-dai: add gapless support Srinivas Kandagatla 2020-07-07 16:36 ` Srinivas Kandagatla 2020-07-07 17:07 ` Pierre-Louis Bossart 2020-07-07 17:07 ` Pierre-Louis Bossart 2020-07-08 9:44 ` Srinivas Kandagatla [this message] 2020-07-08 9:44 ` Srinivas Kandagatla 2020-07-08 13:32 ` Pierre-Louis Bossart 2020-07-08 13:32 ` Pierre-Louis Bossart 2020-07-08 13:42 ` Mark Brown 2020-07-08 13:42 ` Mark Brown 2020-07-08 15:23 ` Srinivas Kandagatla 2020-07-08 15:23 ` Srinivas Kandagatla 2020-07-08 16:58 ` Pierre-Louis Bossart 2020-07-08 16:58 ` Pierre-Louis Bossart 2020-07-07 16:36 ` [PATCH 11/11] ASoC: q6asm-dai: add support to copy callback Srinivas Kandagatla 2020-07-07 16:36 ` Srinivas Kandagatla 2020-07-08 13:32 ` [PATCH 00/11] ASoC: qdsp6: add gapless compressed audio support Mark Brown 2020-07-08 13:32 ` Mark Brown 2020-07-08 15:24 ` Srinivas Kandagatla 2020-07-08 15:24 ` Srinivas Kandagatla 2020-07-08 16:59 ` Mark Brown 2020-07-08 16:59 ` Mark Brown
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=04a7f696-e23d-5563-7cc3-aedfaf2c7636@linaro.org \ --to=srinivas.kandagatla@linaro.org \ --cc=alsa-devel@alsa-project.org \ --cc=broonie@kernel.org \ --cc=ckeepax@opensource.cirrus.com \ --cc=lgirdwood@gmail.com \ --cc=linux-kernel@vger.kernel.org \ --cc=pierre-louis.bossart@linux.intel.com \ --cc=tiwai@suse.com \ --cc=vkoul@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.