[alsa-devel] query about snd_pcm_hw_refine

Pharaoh . pharaoh137 at gmail.com
Tue Mar 18 00:38:01 CET 2008


On Mon, Mar 17, 2008 at 4:08 PM, Pharaoh . <pharaoh137 at gmail.com> wrote:

>
>
> On Mon, Mar 17, 2008 at 3:58 PM, Pharaoh . <pharaoh137 at gmail.com> wrote:
>
> >
> >
> > On Mon, Mar 17, 2008 at 3:15 PM, Pharaoh . <pharaoh137 at gmail.com> wrote:
> >
> > > Hi
> > >
> > > I get following error when trying to run  aplay with my plugin:
> > >
> > > #aplay -D myplug test.wav
> > >
> > > Playing WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz,
> > > St
> > > ereo
> > > aplay: set_params:882: Broken configuration for this PCM: no
> > > configurations available.
> > >
> > > After looking at the code, I figured out that its snd_pcm_hw_refine
> > > which is causing problem.
> > > It looks like following in pcm_params.c in alsa lib 1.0.13,
> > >
> > >
> > > int snd_pcm_hw_refine(snd_pcm_t *pcm, snd_pcm_hw_params_t *params)
> > > {
> > >     int res;
> > >
> > > #ifdef REFINE_DEBUG
> > >     snd_output_t *log;
> > >     snd_output_stdio_attach(&log, stderr, 0);
> > >
> > > #endif
> > >     printf("#####%s \n", __FUNCTION__);
> > >     assert(pcm && params);
> > > #ifdef REFINE_DEBUG
> > >     snd_output_printf(log, "REFINE called:\n");
> > >     snd_pcm_hw_params_dump(params, log);
> > > #endif
> > >     printf("#####%s calling hw_refine\n", __FUNCTION__);
> > >     res = pcm->ops->hw_refine(pcm->op_arg, params);
> > >     printf("#####% return val of hw_refine = %d\n", res);
> > > #ifdef REFINE_DEBUG
> > >     snd_output_printf(log, "refine done - result = %i\n", res);
> > >     snd_pcm_hw_params_dump(params, log);
> > >     snd_output_close(log);
> > > #endif
> > >     return res;
> > > }
> > >
> > > I have modified the alsa.conf for my plugin by adding following in it
> > > at the end,
> > >
> > > pcm.myplug {
> > >         type myplug
> > >         card 0
> > > }
> > >
> > > What could be the problem?
> > > -pharaoh.
> > >
> > >
> > Problem solved, I modified my alsa.conf to look like this:
> >
> > pcm.myplug {
> >         @args [ FORMAT ]
> >            type myplug
> >            card 0
> >            rate 44100
> >            bitrate 128
> >            channels 2
> >         format $FORMAT
> > }
> >
> >
> > -pharaoh.
>
>
>
> No the error is still there, I still get, what should I do now?
>
>
> #aplay -D myplug startup.wav
>
>
> aplay: set_params:882: Broken configuration for this PCM: no
> configurations available.
>

Some debugging revealed that, snd_pcm_ioplug_hw_refine is returning 0,
more precisely snd_mask_refine is returning -EINVAL since mask is empty, how
can I go about fixing this?


More information about the Alsa-devel mailing list