[alsa-devel] Sample format coversion bug?

Alexander E. Patrakov patrakov at ums.usu.ru
Mon Oct 29 16:04:15 CET 2007


Takashi Iwai wrote:
> Does your driver support mmap?
>   

It looks like the hardware doesn't accept the default parameters:

patrakov at home:~$ arecord -M -f S16_LE -c 2 -r 32000 -D hw:1 /dev/null
Recording WAVE '/dev/null' : Signed 16 bit Little Endian, Rate 32000 Hz, 
Stereo
ALSA lib pcm_mmap.c:369:(snd_pcm_mmap) mmap failed: Invalid argument
arecord: set_params:961: Unable to install hw params:
ACCESS:  MMAP_INTERLEAVED
FORMAT:  S16_LE
SUBFORMAT:  STD
SAMPLE_BITS: 16
FRAME_BITS: 32
CHANNELS: 2
RATE: 32000
PERIOD_TIME: 125000
PERIOD_SIZE: 4000
PERIOD_BYTES: 16000
PERIODS: 4
BUFFER_TIME: 500000
BUFFER_SIZE: 16000
BUFFER_BYTES: 64000
TICK_TIME: 4000

Even though mmap seems to be supported in the driver source (judging 
from .info = SNDRV_PCM_INFO_MMAP | other flags), I could not figure out 
the parameters that work. Moreover, the driver seems to accept the same 
hardware parameters without the mmap, and I could not find parameters 
that the driver accepts for mmap.

Also: I have retested my original problem with the virtual ens1370 card 
emulated by qemu. The original testcase does work, so the problem seems 
to be specific to saa7134, due to non-working mmap access. Could you 
please help me transform my observations into something that the v4l 
development list will accept as a good bug report?

One more question: since plug doesn't work at all on devices without 
mmap available, does this mean that I should scrap my original idea 
about using plug to convert everything into S24?

-- 
Alexander E. Patrakov


More information about the Alsa-devel mailing list