[alsa-devel] mono/stereo translation & number of frames per period

Paul Stone metabagel at icloud.com
Wed Apr 5 02:05:42 CEST 2017


The driver should report only those sample formats that the hardware
actually supports.

The ALSA library can do automatic sample rate/format conversions (with
the "default" or "plughw" devices). However, this does not work if you
bypass it with the "hw" device.

Thanks Clemens.

One problem I am having is that my driver doesn't always work with the plughw interface.

For instance, the following stereo pipeline works for 'hw:3,0' but outputs silence for 'plughw:3,0':

gst-launch playbin2 uri=file:///home/root/Iguazu.mp3 audio-sink="alsasink device=plughw:3,0"

I am using older ALSA libraries, so maybe there is a bug there?

alsa-lib-1.0.27.2-r1

My hw definition looks like this:

static struct snd_pcm_hardware snd_imx_audio_playback_hw = {
.info = (SNDRV_PCM_INFO_MMAP |
SNDRV_PCM_INFO_INTERLEAVED |
SNDRV_PCM_INFO_BLOCK_TRANSFER
),
.formats = SNDRV_PCM_FMTBIT_S16_LE,
.rates = SNDRV_PCM_RATE_16000,
.rate_min = 16000,
.rate_max = 16000,
.channels_min = 2,
.channels_max = 2,
.buffer_bytes_max = PLAYBACK_TOTAL_BUFFER_SIZE, // total num buffers * buffer size
.period_bytes_min = PLAYBACK_STEREO_BUFFER_SIZE,
.period_bytes_max = PLAYBACK_STEREO_BUFFER_SIZE,
.periods_min = 1,
.periods_max = PLAYBACK_TOTAL_NUM_BUFFERS,
};



More information about the Alsa-devel mailing list