[alsa-devel] [RFC] compress: add support for gapless playback

Vinod Koul vinod.koul at intel.com
Wed Feb 6 15:09:32 CET 2013

On Wed, Feb 06, 2013 at 03:11:02PM +0100, Takashi Iwai wrote:
> At Tue,  5 Feb 2013 06:21:25 -0800,
> Vinod Koul wrote:
> > 
> > From: Jeeja KP <jeeja.kp at intel.com>
> > 
> > this add new API for sound compress to support gapless playback.
> > As noted in Documentation change, we add API to send metadata of encoder and
> > padding delay to DSP. Also add API for indicating EOF and switching to
> > subsequent track
> I can understand that the metadata is somehow handled in DSP for
> seamless switching, 
yes for stripping the encoder delay and encoder padding.
> but the operation with partial drain is a bit
> unclear.
> How is the operation flow?  Does it drain until which point?
Right, we want to move from one track to another. And while at this DSP needs to
exhaust the buffers from first track and then we should start writing second
track. When userspace has finsihed wirting first track it sends partial_drain
and DSP decods finsihed off and returns when it is ready to accept second track
data. The userland sends the metadata for this followed by data write.

> In your patch, the runtime state is changed to SETUP after the partial
> drain, so the app is requested to give START again?
Ah, thats a mistake, it should be in running state, no START again :)


More information about the Alsa-devel mailing list