在linux系统中,先后出现了音频设备的两种框架:OSS和ALSA.

针对不同的数字音频子系统,出现了几种微处理器或DSP与音频器件间用于数字转换的接口。

音频设备的硬件接口

(1)PCM接口。

(2)IIS接口。

(3)AC97接口。

在CD,MD,MP3随身听多采用IIS接口,移动电话会采用PCM接口,具有音频功能的PDA则多使用和PC一样的AC97编码格式。

linux OSS音频设备驱动

OSS标准中有两个最基本的音频设备:mixer(混音器)和dsp(数字信号处理器)。

在声卡的硬件电路中,mixer是一个很重要的组成部分,它的作用是将多个信号组合或者叠加在一起,对于不同的声卡来说,其混音器的作用可能各不相同。在OSS驱动中,/dev/mixer设备文件时应用程序对mixer进行操作的软件接口。

OSS用户空间编程

1.dsp编程

对OSS驱动声卡的编程使用linux文件接口函数,dsp接口的操作一般包括如下几个步骤

(1)打开设备文件/dev/dsp。

(2)如果有需要,设置缓冲区大小。

(3)设置声道(channel)数量。

根据硬件设备和驱动程序的具体情况,可以设置为单声道或者立体声。

(4)设置采样格式和采样频率。

(5)读写/dev/dsp实现播放和录音。

linux ALSA音频设备驱动

ALSA的主要特点,

(1)支持多种声卡设备。

(2)模块化的内核驱动程序。

(3)支持SMP和多线程。

(4)提供应用开发函数库(alsa-lib)以简化应用程序开发。

(5)支持OSS API,兼容OSS应用程序。

ALSA系统包括 驱动包alsa-driver,开发包alsa-libs,开发板插件alsa-libplugins,设置管理工具包alsa-utils,其他声音相关处理小程序包alsa-tools,特殊音频固件支持包alsa-firmware,OSS接口兼容模拟层工具alsa-oss,其中只有驱动包是必需的。

对于每个声卡而言,必须创建一个card实例,card是声卡的“总部”,他管理这个声卡上的所有设备(组件),如PCM,mixers,MIDI,synthesizer等。因此,card和组件式ALSA声卡驱动中的主要组成元素。

PCM设备

每个声卡最多可以有四个PCM实例,一个PCM实例对应一个设备文件。PCM实例由PCM播放和录音流组成,而每个PCM流又由一个或多个PCM子流组成,

阅读(2255) | 评论(0) | 转发(1) |

linux音频设备接口,linux音频设备驱动读书笔记相关推荐

  1. linux设备驱动读书笔记

    linux设备驱动读书笔记 设备驱动简介 机制:提供什么能力 策略:如何使用这些能力 在编写驱动时, 程序员应当编写内核代码来存取硬件, 但是不能强加特别的策略给用户, 因为不同的用户有不同的需求. ...

  2. linux设备驱动读书笔记(转)

    linux设备驱动读书笔记 设备驱动简介 机制:提供什么能力 策略:如何使用这些能力 在编写驱动时, 程序员应当编写内核代码来存取硬件, 但是不能强加特别的策略给用户, 因为不同的用户有不同的需求. ...

  3. 《Linux内核设计与实现》读书笔记(十七)- 设备与模块

    本章主要讨论与linux的设备驱动和设备管理的相关的4个内核成分,设备类型,模块,内核对象,sysfs. 主要内容: 设备类型 内核模块 内核对象 sysfs 总结 1. 设备类型 linux中主要由 ...

  4. 鸟哥的linux私房菜-基础学习篇 读书笔记

    从事linux工作一年多,算是能够熟练运用linux服务器,但仍觉得自己对Linux的原理,理论缺乏空洞,潜下心来认真阅读尘封的鸟哥经典,知识点很全,收获颇多,实践与知识结合,知行合一,对linux开 ...

  5. Linux设备驱动程序 第三版 读书笔记(一)

    Linux设备驱动程序 第三版 读书笔记(一) Bob Zhang 2017.08.25 编写基本的Hello World模块 #include <linux/init.h> #inclu ...

  6. 《Linux内核设计与实现》读书笔记(十二)- 内存管理

    内核的内存使用不像用户空间那样随意,内核的内存出现错误时也只有靠自己来解决(用户空间的内存错误可以抛给内核来解决). 所有内核的内存管理必须要简洁而且高效. 主要内容: 内存的管理单元 获取内存的方法 ...

  7. 鸟哥的LINUX私房菜 基础学习篇 读书笔记 -- 第零章 计算机概论 (一)

    鸟哥的LINUX私房菜 基础学习篇 读书笔记 -- 第零章 计算机概论 (一) 第零章 计算机概论 0.1 电脑:辅助人脑的好工具 0.1.1 计算机硬件五大组成部分 0.1.2 一切设计的起点: C ...

  8. 《Linux内核设计与实现》读书笔记 - 目录 (完结)

    读完这本书回过头才发现, 第一篇笔记居然是 2012年8月发的, 将近一年半的时间才看完这本书(汗!!!). 为了方便以后查看, 做个<Linux内核设计与实现>读书笔记 的目录: < ...

  9. 《Linux内核设计与实现》读书笔记(十九)- 可移植性

    linux内核的移植性非常好, 目前的内核也支持非常多的体系结构(有20多个). 但是刚开始时, linux也只支持 intel i386 架构, 从 v1.2版开始支持 Digital Alpha, ...

  10. 《Linux内核设计与实现》读书笔记(十一)- 定时器和时间管理

    系统中有很多与时间相关的程序(比如定期执行的任务,某一时间执行的任务,推迟一段时间执行的任务),因此,时间的管理对于linux来说非常重要. 主要内容: 系统时间 定时器 定时器相关概念 定时器执行流 ...

最新文章

  1. 【青少年编程(第30周)】关于青少年编程能力等级测评的科普!
  2. linux pyside2 安装包,Qt for Python 5.12发布下载,附PySide2和Shiboken2介绍
  3. html左侧td字体居右,如何在td中控制字体右对齐 且加粗_html/css_WEB-ITnose
  4. 很好很强大,这款AI开发神器的图像标注吊打labelme
  5. 手机号码 mysql 存储类型_2021-01-06:mysql中,我存十亿个手机号码,考虑存储空间和查询效率,用什么类型的字段去存?...
  6. [html] 你有使用过ins标签吗?说说它的用途
  7. stream流倒序排序_java8 stream多字段排序
  8. 结构与算法(04):排序规则与查找算法
  9. Python分析「我们为什么这么穷」
  10. Linux的timerfd分析
  11. 重新打包system.img
  12. 全国计算机等级考证管理系统,猎证全国计算机等级考试学习系统
  13. 文字发光_PS教程来喽,看PS大神如何使用PS制作发光字效果,果断收藏一下
  14. opencv外接矩形矫正
  15. 电脑 chrome 浏览器下载视频插件推荐
  16. 如何快速激活数据恢复软件
  17. 二项分布的期望方差证明_二项分布与负二项分布的均值与方差推导
  18. 【CSS】盒子模型内边距 ① ( 内边距概念 | 内边距设置语法 | 内边距设置效果 | 代码示例 )
  19. 思科 计算机网络 第5章测试考试 答案
  20. java基础代码,适合0基础学习者

热门文章

  1. java 匹配反斜杠_java正则表达式的反斜杠(\)匹配
  2. PLC与变频器通讯接线,学会用PLC控制变频器
  3. Realsense d435i驱动安装、配置及校准
  4. 茄子快传 java,GitHub - kakugg/KuaiChuan: 仿茄子快传的一款文件传输应用
  5. 转载:Notepad++的64位HexEditor
  6. 实用软件分享|盘点那些你不知道的,超好用配音神器,短视频制作必备
  7. AI删除机器人战斗视频,天网觉醒?
  8. 处理程序 SafedogIISAuditor32 错误代码 0x80070003
  9. 俄罗斯方块-C语言(从0开始到有色界面)
  10. 高速率传输接口Type-C接口的防护方案-ESD防护