inserting operations while in rate conversion

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I'm running uClinux with ALSA in an Analog Devices' Blackfin CPU
environment.
Actually I'm checking possibilities in doing special things while ALSA is
going to do automatic rate conversion.

Specific description:
ADC is sampled with 32 or 64 ksps rate. The corresponding hardware driver
is specified to operate at one of these rates (which I'll specify later).
The application reads the ADC input stream at the output end of the ALSA
processing as a stream with a rate of 8 ksps. I need some information
about inside details of ALSA's automatic rate conversion (pointers to
appropriate information would be helpful).

What I want to do: insert a digital anti-aliasing filter algorithm which
limits the effective bandwidth of the ADC stream to 4 kHz prior to
actually have the rate converted.
Of course, I could also add the filter algorithm in the hardware device
driver - at the cost of not inherently being available as a hardware
independent algorithm.

Some detail info:
- ADC = AD73311 (speech codec). Basic drivers that allow e.g. arecord &
aplay are available.
- CPU: convergent DSP/microcontroller core @ 500 MHz and fixed point
processing.

Thanks for attention. BTW: this is my first dig into ALSA details...

Rob


Code snippet:
(currently only one rate is defined as a correspondence to the hardware
driver rate)

#define AD73311_RATES (SNDRV_PCM_RATE_8000  |	\
		      SNDRV_PCM_RATE_16000 |	\
		      SNDRV_PCM_RATE_32000 |	\
		      SNDRV_PCM_RATE_64000)

struct snd_soc_dai ad73311_dai = {
	.name = "AD73311",
	.playback = {
		.stream_name = "Playback",
		.channels_min = 1,
		.channels_max = 1,
		.rates = SNDRV_PCM_RATE_32000,
		.formats = SNDRV_PCM_FMTBIT_S16_LE, },
	.capture = {
		.stream_name = "Capture",
		.channels_min = 1,
		.channels_max = 1,
		.rates = SNDRV_PCM_RATE_32000,
		.formats = SNDRV_PCM_FMTBIT_S16_LE, },
};
EXPORT_SYMBOL_GPL(ad73311_dai);
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux