文档章节

alsa记录

何凯峰
 何凯峰
发布于 2015/10/19 22:23
字数 369
阅读 26
收藏 0

周期,period,相当于底层的一个缓冲区窗口的大小,不过其单位不是字节,而是frame_size,双声道就是2.,单声道就是1.

这里不对,应该还和量化位数相关,8位量化对于单声道frame_size就是1,但是16位的话变为2了


设置了周期后,还需要设置底层lib的缓冲区大小,其大小应该是周期*frame_size

设置完了后,需要再去读取一次周期的大小

然后,得到周期大小后,可以设置应用层的读写缓冲区大小,比如可以设置一下子读取的PCM文件大小非周期*frame_size 字节大小

读写出以后,可以直接调用PCM写入函数写入,写入大小为周期代大小,注意不是字节单位,而是frame_size单位

对于libmad解码出的PCM流,从其lib可知,PCM的缓冲区大小为 每个声道1152字节

所以,对应到alsa,16位量化的话

相当于一个周期为1152*2*2(双声道)字节,也就是周期为1152个frame_size

相当于一个周期为1152*1*2(但声道)字节,也就是周期为1152个frame_size

此文有介绍

http://blog.chinaunix.net/uid-10995602-id-2918643.html


© 著作权归作者所有

共有 人打赏支持
何凯峰
粉丝 2
博文 16
码字总数 4528
作品 0
高级程序员
Kindle原码的alsa目录问题?

先前下了Kindle的原码档,Kindlesrc6.2_11185402.tar.gz 发现以下一个目录... /mydroid/external/alsa-lib/alsa-lib/include/alsa/alsa/alsa/alsa/alsa/alsa/alsa/alsa/alsa/alsa/alsa/alsa......

faijan
2012/01/07
212
2
alsa库的移植

我移植alsa库,主要是想在开发板中进行音频测试,所以移植了alsa-lib、alsa-utils(工具),而移植alsa-utilts又需要编码转换工具libiconv。 我在下面的地址获得所需要的压缩包: alsa-lib:...

陈国成
2015/04/19
0
0
ALSA-lib/utils 编译移植 及 问题解决

转载地址:https://blog.csdn.net/chunleigan/article/details/21000127 库和工具版本为: alsa-lib-1.0.27.2 alsa-utils-1.0.27.2 1.首先对压缩文件进行解压; 2.库编译./configure --host=......

kunkliu
04/20
0
0
解决Intel HD Audio Controller声卡问题

解决方法就是下载最新的ALSA驱动包,手动编译,进行相关的配置, 就能让你的系统声声入耳了。 本文笔记本配置: Dell Vostro 1400 , CPU Intel core 2 Duo T5470,内置Intel "Intel® High Def...

范堡
2009/05/23
837
1
linux下的声卡驱动编译时出现“字段‘latency_pm_qos_req’的类型不完全”问题?

在make alsa-driver-1.0.25 时出现 In file included from /usr/src/alsa1/alsa-driver-1.0.25/acore/pcm.c:30:0: /usr/src/alsa1/alsa-driver-1.0.25/include/sound/pcm.h:435:24: 错误:字......

追风A沉默
2013/10/15
656
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

(三)Nginx配置·续

概述 前文写了关于Nginx环境配置,但是还没有完,接下来将会继续讲三个相关的配置 主要是以下三个 1.Nginx访问日志 2.Nginx日志切割 3.静态文件不记录日志和过期时间 Nginx访问日志 1.先看看...

杉下
今天
1
0
jquery创建类似于java的map

var map = {}; // Map map = new HashMap(); map[key] = value; // map.put(key, value); var value = map[key]; // Object value = map.get(key); var has = key in map; // boolean has = ......

SuperDabai
今天
0
0
java大数据转换16进制转10进制

public static void main(String[] args) {String hex = "0xdbf3accc683297cf0000";BigInteger amount = new BigInteger(hex.substring(2), 16);System.out.println(amount);......

任梁荣
昨天
2
0
OSChina 周六乱弹 —— 目测我们程序员丁克的几率不大

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @真Skr小机灵鬼儿:8.13分享Jocelyn Pook/Russian Red的单曲《Loving Strangers》 《Loving Strangers》- Jocelyn Pook/Russian Red 手机党少...

小小编辑
昨天
13
3
TypeScript基础入门 - 函数 - 剩余参数

转载 TypeScript基础入门 - 函数 - 剩余参数 项目实践仓库 https://github.com/durban89/typescript_demo.gittag: 1.2.1 为了保证后面的学习演示需要安装下ts-node,这样后面的每个操作都能...

durban
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部