[alsa-devel] Why no Marco definitions for rate 24000 and 12000?
Who can tell me why not define add SNDRV_PCM_RATE_24000 and SNDRV_PCM_RATE_12000?
At Fri, 14 Nov 2008 16:32:42 +0800, cocala wrote:
Who can tell me why not define add SNDRV_PCM_RATE_24000 and SNDRV_PCM_RATE_12000?
Just because they are rarely used. You can add a list of supported sample rates explicitly via snd_pcm_hw_hw_constraint_list() even if they are not defined in SNDRV_PCM_RATE_* bits.
Takashi
Yes, that can add supported sample rates.
but the macro definitions are still needed, actually 12000 and 24000 are supported by most audio codecs.
in soc-core.c
runtime->hw.rates = codec_dai->capture->rates & cpu_dai->capture->rates;
in wm8350.c #define WM8350_RATES (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 | \ SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 | \ SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_32000 | \ SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_88200 | \ SNDRV_PCM_RATE_96000)
static const struct snd_soc_pcm_stream wm8350_hifi_dai_playback = { .stream_name = "Playback", .channels_min = 2, .channels_max = 2, .rates = WM8350_RATES, .formats = WM8350_FORMATS, }; Without the mcaro defintions, it is hard to handle the 12000 and 24000 sample rates.
2008/11/14 cocala syy.wxd@gmail.com
Who can tell me why not define add SNDRV_PCM_RATE_24000 and SNDRV_PCM_RATE_12000?
On Fri, Nov 14, 2008 at 10:54:15AM +0100, Takashi Iwai wrote:
cocala wrote:
but the macro definitions are still needed, actually 12000 and 24000 are supported by most audio codecs.
Simply pass SNDRV_PCM_RATE_KNOT instead of explicit rate bits.
This is with ASoC - due to the way the core does rate matching it'll also require the platform side to support SNDDRV_PCM_RATE_KNOT (but should work otherwise, both drivers will get the chance to define extra constraints).
participants (3)
-
cocala
-
Mark Brown
-
Takashi Iwai