[alsa-devel] [PATCH v2] ALSA: hda - Apply codec delay to wallclock.

Pierre-Louis Bossart pierre-louis.bossart at linux.intel.com
Fri Apr 12 03:17:10 CEST 2013

>> For playback audio_timestamp = wallclk - codec_delay_in_nsec
>> for capture audio_timestamp = wallclk + codec_delay_in_nsec
> Hmm...  I'm confused, too.  From a pretty generic view,
> - hwptr = the samples (frames) transferred on the (memory) buffer
> - hwptr + PCM delay = the point being currently captured
> Which position does the wall clock correspond?

you now have 3 positions:

For capture:
hwptr = sample in memory
hwptr+ delay = sample recorded on link (tracked by LPIB and wallclock)
hwptr+ delay + codec_delay = sample recorded by A/D

For playback
hwptr = next sample in memory to be DMA'ed
hwptr - delay = sample pushed on link (tracked by LPIB and wallclock)
hwptr - delay - codec_delay = sample played in A/D

the wallclock is only at the soc/chipset level, it doesn't know anything 
about the peripheral.
Makes sense?

More information about the Alsa-devel mailing list