[alsa-devel] using plug for sample format conversion
Raymond Yau
superquad.vortex2 at gmail.com
Thu Jul 29 01:43:14 CEST 2010
2010/7/29 Adam Rosenberg <adam at alcorn.com>
> >> I am trying to use plug to play audio files that are S16_LE but my
> >> hardware only supports S32_LE. It is not working. Here is an example
> >> of the problem using speaker-test. First I use S32_LE and it works as
> >> expected. I then try S16_LE but it fails. Does this mean the plug
> >> plugin cannot convert between these sample formats?
> >>
> >> Thanks,
> >> Adam
> >>
> >
> >Please use latest version of speaker-test and alsa-lib.
> >
> >and post struct snd_pcm_hardware of you driver
> >
>
> I am using the latest release of uClinux for Blackfin BF537 and do not
> know how to configure and install the latest version of alsa-lib and
> alsa-utils. I am starting to understand how struct snd_pcm_hardware
> is used by the ALSA PCM code but you are correct to assume I may have
> something wrong. Here is the struct:
>
> static struct snd_pcm_hardware ourCS42448PcmHw =
> {
> .info = (SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER
> ),
> .formats = SNDRV_PCM_FMTBIT_S32_LE,
> .rates = SNDRV_PCM_RATE_48000,
> .rate_min = 48000,
> .rate_max = 48000,
> .buffer_bytes_max = 32768,
> .channels_min = 1,
> .channels_max = 2,
> .period_bytes_max = 32768,
> .periods_min = 1,
> .period_bytes_min = 8,
> .periods_max = 4096,
> };
>
Unable to set hw params for playback: Invalid argument
Setting of hwparams failed: Invalid argument
This will tell you which argument is invalid
export LIB_LIBASOUND_DEBUG=1
speaker-test -l 1 -r 48000 -c 2 -F S16_LE -Dplughw:0,0,0
If the above still cannot help you find out the problem
you will need to enable RULES_DEBUG in core/pcm_native.c and check the
system log to find out how those hw parameters are refined
if you cannot use latest version of speaker-test , read the history of
speaker-test
http://git.alsa-project.org/?p=alsa-utils.git;a=history;f=speaker-test/speaker-test.c
More information about the Alsa-devel
mailing list