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

Pavel Hofman pavel.hofman at ivitera.com
Tue Aug 3 17:40:31 CEST 2010


Jaroslav Kysela napsal(a):
> On Tue, 3 Aug 2010, Pavel Hofman wrote:
> 
>> Jaroslav Kysela napsal(a):
>>> 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?
>>>
>>
>> Thanks for your reply. How do you compile the test directory? Neither
>> gitcompile nor make in the test dir did the trick. Thanks,
> 
> cd alsa-lib/test
> make pcm
> 

Thanks a lot. You are right, it works OK now. The problem was older
mplayer (its internal s24le code was translated to mpeg code of alsa :)
) , it is fixed in later versions.

Thanks for help.

Pavel.


More information about the Alsa-devel mailing list