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