[alsa-devel] Rates/formats available upstream from the plug plugin

Jaroslav Kysela perex at perex.cz
Tue Aug 3 15:44:33 CEST 2010


On Tue, 3 Aug 2010, Pavel Hofman wrote:

> Hi,
>
> mplayer checks hw_params for availability of the current format
> http://mplayer-ww.git.sourceforge.net/git/gitweb.cgi?p=mplayer-ww/mplayer-ww;a=blob;f=libao2/ao_alsa.c;h=57f0bd07cb5ec300d327682a0b5209ba9dc10e30;hb=09ab9f6346aaf15d20792ca3df761a45fe46d83d#l514
> . If the check fails, it uses 16bits as fixed default.
>
> Now if we define the card to be plughw:0, the check still fails for
> formats unsupported directly by the card. Which in fact is incorrect
> since the plug plugin takes care of most formats known. The same holds
> for sample rates.

It works for me:

perex at eeebox2:~/alsa/alsa-lib/test> ./pcm
Playback device is plughw:0,0
Stream parameters are 44100Hz, S16_LE, 1 channels
Sine wave rate is 440.0000Hz
Using transfer method: write
test format float_le: 0
test format mpeg: -22

Using modified alsa-lib/test/pcm.c code:

diff --git a/test/pcm.c b/test/pcm.c
index abb83e4..0582891 100644
--- a/test/pcm.c
+++ b/test/pcm.c
@@ -106,6 +106,8 @@ static int set_hwparams(snd_pcm_t *handle,
  		printf("Broken configuration for playback: no configurations available: %s\n", snd_strerror(err));
  		return err;
  	}
+	printf("test format float_le: %i\n", snd_pcm_hw_params_test_format(handle, params, SND_PCM_FORMAT_FLOAT_LE));
+	printf("test format mpeg: %i\n", snd_pcm_hw_params_test_format(handle, params, SND_PCM_FORMAT_MPEG));
  	/* set hardware resampling */
  	err = snd_pcm_hw_params_set_rate_resample(handle, params, resample);
  	if (err < 0) {


Could you describe you hw configuration or can you reproduce this issue 
with the snd-dummy module?

 					Jaroslav

-----
Jaroslav Kysela <perex at perex.cz>
Linux Kernel Sound Maintainer
ALSA Project, Red Hat, Inc.



More information about the Alsa-devel mailing list