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.
Regards, Clemens