linux音频设备接口,linux音频设备驱动读书笔记
在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音频设备驱动读书笔记相关推荐
- linux设备驱动读书笔记
linux设备驱动读书笔记 设备驱动简介 机制:提供什么能力 策略:如何使用这些能力 在编写驱动时, 程序员应当编写内核代码来存取硬件, 但是不能强加特别的策略给用户, 因为不同的用户有不同的需求. ...
- linux设备驱动读书笔记(转)
linux设备驱动读书笔记 设备驱动简介 机制:提供什么能力 策略:如何使用这些能力 在编写驱动时, 程序员应当编写内核代码来存取硬件, 但是不能强加特别的策略给用户, 因为不同的用户有不同的需求. ...
- 《Linux内核设计与实现》读书笔记(十七)- 设备与模块
本章主要讨论与linux的设备驱动和设备管理的相关的4个内核成分,设备类型,模块,内核对象,sysfs. 主要内容: 设备类型 内核模块 内核对象 sysfs 总结 1. 设备类型 linux中主要由 ...
- 鸟哥的linux私房菜-基础学习篇 读书笔记
从事linux工作一年多,算是能够熟练运用linux服务器,但仍觉得自己对Linux的原理,理论缺乏空洞,潜下心来认真阅读尘封的鸟哥经典,知识点很全,收获颇多,实践与知识结合,知行合一,对linux开 ...
- Linux设备驱动程序 第三版 读书笔记(一)
Linux设备驱动程序 第三版 读书笔记(一) Bob Zhang 2017.08.25 编写基本的Hello World模块 #include <linux/init.h> #inclu ...
- 《Linux内核设计与实现》读书笔记(十二)- 内存管理
内核的内存使用不像用户空间那样随意,内核的内存出现错误时也只有靠自己来解决(用户空间的内存错误可以抛给内核来解决). 所有内核的内存管理必须要简洁而且高效. 主要内容: 内存的管理单元 获取内存的方法 ...
- 鸟哥的LINUX私房菜 基础学习篇 读书笔记 -- 第零章 计算机概论 (一)
鸟哥的LINUX私房菜 基础学习篇 读书笔记 -- 第零章 计算机概论 (一) 第零章 计算机概论 0.1 电脑:辅助人脑的好工具 0.1.1 计算机硬件五大组成部分 0.1.2 一切设计的起点: C ...
- 《Linux内核设计与实现》读书笔记 - 目录 (完结)
读完这本书回过头才发现, 第一篇笔记居然是 2012年8月发的, 将近一年半的时间才看完这本书(汗!!!). 为了方便以后查看, 做个<Linux内核设计与实现>读书笔记 的目录: < ...
- 《Linux内核设计与实现》读书笔记(十九)- 可移植性
linux内核的移植性非常好, 目前的内核也支持非常多的体系结构(有20多个). 但是刚开始时, linux也只支持 intel i386 架构, 从 v1.2版开始支持 Digital Alpha, ...
- 《Linux内核设计与实现》读书笔记(十一)- 定时器和时间管理
系统中有很多与时间相关的程序(比如定期执行的任务,某一时间执行的任务,推迟一段时间执行的任务),因此,时间的管理对于linux来说非常重要. 主要内容: 系统时间 定时器 定时器相关概念 定时器执行流 ...
最新文章
- 【青少年编程(第30周)】关于青少年编程能力等级测评的科普!
- linux pyside2 安装包,Qt for Python 5.12发布下载,附PySide2和Shiboken2介绍
- html左侧td字体居右,如何在td中控制字体右对齐 且加粗_html/css_WEB-ITnose
- 很好很强大,这款AI开发神器的图像标注吊打labelme
- 手机号码 mysql 存储类型_2021-01-06:mysql中,我存十亿个手机号码,考虑存储空间和查询效率,用什么类型的字段去存?...
- [html] 你有使用过ins标签吗?说说它的用途
- stream流倒序排序_java8 stream多字段排序
- 结构与算法(04):排序规则与查找算法
- Python分析「我们为什么这么穷」
- Linux的timerfd分析
- 重新打包system.img
- 全国计算机等级考证管理系统,猎证全国计算机等级考试学习系统
- 文字发光_PS教程来喽,看PS大神如何使用PS制作发光字效果,果断收藏一下
- opencv外接矩形矫正
- 电脑 chrome 浏览器下载视频插件推荐
- 如何快速激活数据恢复软件
- 二项分布的期望方差证明_二项分布与负二项分布的均值与方差推导
- 【CSS】盒子模型内边距 ① ( 内边距概念 | 内边距设置语法 | 内边距设置效果 | 代码示例 )
- 思科 计算机网络 第5章测试考试 答案
- java基础代码,适合0基础学习者
热门文章
- java 匹配反斜杠_java正则表达式的反斜杠(\)匹配
- PLC与变频器通讯接线,学会用PLC控制变频器
- Realsense d435i驱动安装、配置及校准
- 茄子快传 java,GitHub - kakugg/KuaiChuan: 仿茄子快传的一款文件传输应用
- 转载:Notepad++的64位HexEditor
- 实用软件分享|盘点那些你不知道的,超好用配音神器,短视频制作必备
- AI删除机器人战斗视频,天网觉醒?
- 处理程序 SafedogIISAuditor32 错误代码 0x80070003
- 俄罗斯方块-C语言(从0开始到有色界面)
- 高速率传输接口Type-C接口的防护方案-ESD防护