在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. 十一后我的新房就要准备准修了
  2. hdu2102(bfs)
  3. C语言学习之输出“魔方阵”。所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等。
  4. 首次适应算法_CVPR 2020丨?商汤TSD目标检测算法获得Open Images冠军
  5. 编写Oracle简单的存储过程
  6. cdlinux之U盘启动cdlinux破解wifi(计算机系破解无线密码的方式 就不使用wifi万能钥匙了)-- 没有发现无线网卡
  7. 如何使用c语言制作微信小程序,不懂代码如何制作微信小程序?微信小程序的步骤?...
  8. 安卓苹果均兼容的移动版CAD看图软件——迅捷CAD看图
  9. Ubuntu系统安装Java JDK和HDFView
  10. 信噪比的定义及计算方法
  11. 电大计算机本科离散数学考试题,2017年电大本科离散数学期末考试复习试题及答案.doc...
  12. Linux 命令大全
  13. 狂神ajax,Ajax 学习笔记 by狂神说
  14. Startup is Ready,Geek to Startup!
  15. 软考是什么?考哪个科目容易过?
  16. Android的gps定位
  17. MFC high-speed-charting控件使用(添加垂直游标,两个控件的联动)
  18. ui九宫格切图_【九宫切图】什么是九宫绘图,九宫格绘法
  19. 2014去哪儿网校园招聘笔试(10.13北京)
  20. 常用的Linux快捷键 [译]

热门文章

  1. canvas模拟中国铁路运行图
  2. MegEngine| CUDA 矩阵乘法终极优化
  3. 110页智慧农业解决方案(农业信息化解决方案)(ppt可编辑)
  4. wift密码 java
  5. 记录,本人给音悦台的建议
  6. AutoCAD2002-2021的官网下载地址汇总
  7. java对接 布防 海康威视_Java海康威视网络摄像头的云台控制,截图API封装
  8. 用计算机听音乐教案,听音乐教案
  9. Winform下CefSharp的引用、配置、实例与报错排除(源码)
  10. php跳转方式带rere_2012装php