lkml.org 
[lkml]   [2014]   [Nov]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [alsa-devel] Question on Compressed offload session
On 11/12/14, 9:02 PM, gsantosh@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



\
 
 \ /
  Last update: 2014-11-13 17:41    [W:0.083 / U:1.016 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site