At Wed, 14 Sep 2011 12:08:57 -0400, Sean McNamara wrote:
Hi,
On Wed, Sep 14, 2011 at 11:20 AM, Mike Crowe drmikecrowe@gmail.com wrote:
Does the changing of the rate actually succeed?
Surprisingly, that's hard to answer. Normally, most of our audio is at 48K (we control the sound files), so the device stays at that rate. However, a new library we added (for voip communications) is hard-coded to 8K sample rate via OSS, and I'm now trying to work out dual usage by our ALSA code and this library's OSS interface.
Before I added these kernel printouts, I was convinced the system was switching rates properly (because I added 8K rate support to the hardware driver to get the voip library working). However, my current debug load shows the rate changing in the pcm_oss module, but I never see that rate hit the hardware the way I expected.
If it isn't hitting the hardware, I suppose it could be up/down converted by ALSA, but I don't have any plugins installed. I thought I needed a plugin for ALSA to convert between the two rates, right?
Right, but if you're using the in-kernel OSS emulation, it bypasses the userspace ALSA-lib plug layer! You'll have to resample it in userspace within the OSS application, probably.
Kernel OSS emulation has a rate converter, too, when CONFIG_SND_PCM_OSS_PLUGINS is enabled. But no soft-mixing or other complex stuff.
Takashi