[alsa-devel] ALSA throwing buffers away?

Clemens Ladisch clemens at ladisch.de
Tue Nov 23 18:03:01 CET 2010

Radivoje Jovanovic wrote:
> I am developing driver for a really simple hardware. Hardware has codec that
> supports mono/stereo and the amplifier that supports only one speaker so the
> driver has to be mono driver and the codec is setup to manage mono data. I
> have setup ALSA with following parameters:
> .info =            (SNDRV_PCM_INFO_NONINTERLEAVED |

Better use SNDRV_PCM_INFO_INTERLEAVED; this is the format used by almost
all (stereo) sound cards, and so it is expected even for mono files
(where there actually isn't any difference).

> after each buffer iteration ALSA skips the buffer length of the data?!

This might be a problem with the reporting of the DMA pointer.

Please explain (or show) how your DMA works and how the pointer callback
is implemented.

> I have tried SNDRV_PCM_INFO_INTERLEAVED with the same results (in this
> case ALSA will not even try to play stereo files using my mono driver).

When using the "default" or "plughw" device, alsa-lib will automatically
convert the sample format.


More information about the Alsa-devel mailing list