[alsa-devel] Question on Compressed offload session

Pierre-Louis Bossart pierre-louis.bossart at linux.intel.com
Thu Nov 13 16:27:30 CET 2014


On 11/12/14, 9:02 PM, gsantosh at codeaurora.org wrote:
> Hi All,
>
> The Question is for the compressed offload session.
>
> For a generic codec driver during the startup function it will set some of
> the hw_constraints rule similarly like this.
>
>          snd_pcm_hw_constraint_list(substream->runtime, 0,
>                      SNDRV_PCM_HW_PARAM_RATE,
>                      &constraints_12_24);
>
> pcm_lib.c will try to add the rule to the runtime structure by accessing
> the pointers which will be initialized during opening of the session,
> as The Constraints added by the codec driver will be updated in the
>
> struct snd_pcm_hw_constraints of runtime structure which will be part of
> substream handle.
>
> But for the compressed offload I do not see the initialization done for HW
> constraints, as done in pcm session
>
> 2092int snd_pcm_open_substream(struct snd_pcm *pcm, int stream,
> 2093			   struct file *file,
> 2094			   struct snd_pcm_substream **rsubstream)
>
> most of the existing drivers which has the hw_constraint_list code will
> not be applicable for compress offload session, how to solve this?

You can't directly link physical output/input with the decoder/encoder 
in general.
For decoders, the sample-rate may not always be known ahead of time, 
e.g. with AAC-SBR implicit signaling. There is no way to add constraints 
on open, there is an assumption that a sample-rate converter is part of 
the chain to take care of the difference between the output of the 
offloaded decoder and the back-end actual sampling frequency (same with 
number of channels and bit-width btw).
Likewise if you encode the frequency may not be the same as what the 
backend provides and some SRC might be needed.
-Pierre



More information about the Alsa-devel mailing list