[PATCH 10/11] ASoC: qdsp6-dai: add gapless support
Srinivas Kandagatla
srinivas.kandagatla at linaro.org
Wed Jul 8 11:44:36 CEST 2020
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
>
More information about the Alsa-devel
mailing list