alsa pcm设备之設置软件相关参数

软件相关的参数 :

snd_pcm_sw_params_t设置的参数可以修改在任何时候包括运行中的状态.

Transfer align:

读写传输可以与此示例计数对齐,通常此值设置为1(无对齐).
Start threshold :
Start threshold参数用来表示stream启动的开始点 ,对于playback方向 ,加入samples样本数存在ring buffer等于或大于start threshold参数并且stream并没有运行,pcm设备将会自动开始运行 ,对于capture方向 ,假如应用程序从ringbuffer读取的samples数等于或大于样本数,capture方向的stream会自动运行 .假如你想通过调用snd_pcm_start函数去开始stream,可以将值设置大于ringbuffer大小,并且使用MAXINT这个值也不是一个坏注意.
Stop threshold :

相似的,stop threshold参数被用来自动停止运行的stream,当可使用的samples数超过一定的界限;对于playback方向 ,表示ringbuffer里面没有样本数的了,超过stop threshold参数,会自动停止运行的stream ;对于capture捕获方向,表示ringbufer已经堆满samples超过一定Stop threshold,会自动停止capture数据 .
Silence threshold :

对于playback方向,在当前应用程序指针之前用来填充一定参数静音的数据 ,常常用来有可能出现overrun的情况下(比如依赖于网络I/O相关的);如果app程序想管理相关的数据,可以使用snd_pcm_rewind函数忽视掉stream之前的samples.
Mini available count of samples :

这个参数用来控制唤醒点,如果可使用的样本数大于或等于这个值,stream将会唤醒 .

Timestamp mode:

这个模式表示时间戳模式是否激活,目前只有SND_PCM_TSTAMP和SND_PCM_TSTAMP_MMAP模式,mmp模式意味着每个period time会产生timestamp.对应的ringbufer位置可以通过snd_pcm_htimestamp函数获得.

相关推荐
Johny_Zhao1 天前
OpenClaw安装部署教程
linux·人工智能·ai·云计算·系统运维·openclaw
chlk1233 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑3 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件3 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
深紫色的三北六号3 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash3 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI4 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
十日十行4 天前
Linux和window共享文件夹
linux
木心月转码ing5 天前
WSL+Cpp开发环境配置
linux
崔小汤呀6 天前
最全的docker安装笔记,包含CentOS和Ubuntu
linux·后端