Linux 2.6 OSS 声音系统中是不是有内核内重采样

Posted

技术标签:

【中文标题】Linux 2.6 OSS 声音系统中是不是有内核内重采样【英文标题】:Is there in-kernel resampling in Linux 2.6 OSS Sound systemLinux 2.6 OSS 声音系统中是否有内核内重采样 【发布时间】:2012-12-17 22:35:54 【问题描述】:

这是关于Linux内核的OSS声音子系统及其功能的问题。我正在使用 Linux 2.6 内核并且我有不寻常的声卡。此卡应仅输入和输出 48 kHz 信号;并且没有硬件重采样(我无法在这张卡上播放 16kHz WAV 文件)。此卡的其他缺点是它使用了一些更高级卡的 OSS 驱动程序(驱动程序不限制应用程序所需的采样率)。此卡没有 ALSA。

我想将此卡与一些 SIP 编解码器(语音实时压缩)一起使用,但它们仅支持 8 kHz、16 kHz、7 kHz、32 kHz,但不支持 48 kHz。现在我正在使用 linphone3 进行 SIP,并且在播放和录制声音方面存在一些问题。 Linphone 以 16 kHz 速率 (Speex WB) 打开驱动程序,但卡以 48 kHz 发送和播放数据。

我可以在内核的 OSS 中从 16 kHz (SIP) 重新采样到 48 kHz (card) 吗?如何通过重采样激活 pcm 插件?

【问题讨论】:

【参考方案1】:

OSS 子系统不提供重采样。您可以更改声卡的设备驱动程序来进行此类重采样,但大多数 OSS 驱动程序都没有实现此功能(想法是重采样最好在用户空间中完成)

【讨论】:

以上是关于Linux 2.6 OSS 声音系统中是不是有内核内重采样的主要内容,如果未能解决你的问题,请参考以下文章

alsa是啥意思啊

安卓系统为啥音质不好

Linux内核开发与Linux驱动开发有啥关系?

linux 2.6调度和抢占 - preempt_count使用

Linux 2.6内核中新的锁机制--RCU

使用 /sys 文件系统访问 Linux 内核