[alsa-devel] How to propagate parameters from FE to BE with compressed audio interfaces

Daniel Baluta daniel.baluta at gmail.com
Fri Nov 16 08:04:47 CET 2018


On Wed, Nov 14, 2018 at 6:52 PM Pierre-Louis Bossart
<pierre-louis.bossart at linux.intel.com> wrote:
>
> Hi Daniel,
>
> On 11/14/18 9:35 AM, Daniel Baluta wrote:
> > Hello,
> >
> > soc_compr_set_params_fe calls dpcm_be_dai_hw_params in order to setup
> > BE hw_params.
> >
> > Is there a way to transfer parameters like for example the rate from FE
> > to BE?
> >
> > In soc_compr_set_params_fe there is this code:
> >
> > *
> > * Create an empty hw_params for the BE as the machine driver must
> > * fix this up to match DSP decoder and ASRC configuration.
> > * I.e. machine driver fixup for compressed BE is mandatory.
> > */
> > memset(&fe->dpcm[fe_substream->stream].hw_params, 0,
> >         sizeof(struct snd_pcm_hw_params));
> >
> > So, information about parameters is just ignored.
> >
> > The only way we can setup hw_params for BE is via
> > be_hw_params_fixup() but this function doesn't have any information
> > from FE.
> >
> > My use case is something like this:
> >
> > FE:
> >      - cpu: FSL SAI DAI interface
> >      - platform: DSP
> >      - codec: dummy codec
> > BE:
> >      - cpu: dummy
> >      - platform: dummy
> >      - codec: cs42888.
> >
> > codec could handle 44100Hz and 48000Hz streams, but the BE doesn't have
> > any way to know what is the rate cplay sets to FE.
>
> I don't think we planned for the case you mention, but IIRC it was
> intentional.
>
> In our implementations and the non-Intel ones I am familiar with, the BE
> typically handles data that is mixed between PCM channels (for
> tone/alerts/low latency) and decompressed data. So the rate adaptation
> of the decoder output is handled inside the DSP and the BE is configured
> at a set rate. I also don't remember when was the last time we supported
> 44.1 kHz, maybe 2011?
>
Got your point. I will use (A)SRC to handle the rate conversion.

Thanks a lot Pierre!

Daniel.


More information about the Alsa-devel mailing list