ALSA DAPM创建codec到codec的dai连接
Creating codec to codec dai link for ALSA dapm
大多数情况下,音频流始终从CPU到编解码器,因此你的系统将如下所示:--------- ---------
| | dai | |CPU -------> codec
| | | |--------- ---------
如果你的系统如下所示:---------| |codec-2| |---------|dai-2|---------- ---------
| | dai-1 | |CPU -------> codec-1
| | | |---------- ---------|dai-3|---------| |codec-3| |---------
假设codec-2是一个蓝牙芯片,而codec-3连接到扬声器,你有一个下面的场景:codec-2将接收音频数据,用户想要通过编解码器-3播放该音频而不涉及CPU。上述情况是应该使用编解码器到编解码器连接的理想情况。你的dai_link应如下所示在您的计算机文件中:/** this pcm stream only supports 24 bit, 2 channel and* 48k sampling rate.*/
static const struct snd_soc_pcm_stream dsp_codec_params = {.formats = SNDRV_PCM_FMTBIT_S24_LE,.rate_min = 48000,.rate_max = 48000,.channels_min = 2,.channels_max = 2,
};{.name = "CPU-DSP",.stream_name = "CPU-DSP",.cpu_dai_name = "samsung-i2s.0",.codec_name = "codec-2,.codec_dai_name = "codec-2-dai_name",.platform_name = "samsung-i2s.0",.dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF| SND_SOC_DAIFMT_CBM_CFM,.ignore_suspend = 1,.params = &dsp_codec_params,
},
{.name = "DSP-CODEC",.stream_name = "DSP-CODEC",.cpu_dai_name = "wm0010-sdi2",.codec_name = "codec-3,.codec_dai_name = "codec-3-dai_name",.dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF| SND_SOC_DAIFMT_CBM_CFM,.ignore_suspend = 1,.params = &dsp_codec_params,
},
Above code snippet is motivated from sound/soc/samsung/speyside.c.注意“params”回调,它让dapm知道这个dai_link是编解码器连接的编解码器。在dapm核心中,在cpu_dai回放小部件和用于回放路径的codec_dai捕获小部件之间创建路由,反之亦然,对于捕获路径。为了使上述路由被触发,DAPM需要找到有效的端点,该端点可以是分别对应于回放和捕获路径的宿或源小部件。为了触发这个dai_link小部件,可以创建一个用于扬声器放大器的精简编解码器驱动程序,如wm8727.c文件中所示,它为设备设置了适当的约束,即使它不需要控制。确保命名相应的cpu和编解码器播放,并分别捕获以“播放”和“捕获”结尾的dai名称,因为dapm核心将根据名称链接并为这些dais供电。请注意,在当前设备树中,无法将dai_link标记为编解码器的编解码器。但是,它将来可能会改变。
ALSA DAPM创建codec到codec的dai连接相关推荐
- Linux ALSA声卡驱动之四:Codec 以及Codec_dai
ALSA声卡驱动: 1.Linux ALSA声卡驱动之一:ALSA架构简介和ASOC架构简介 2.Linux ALSA声卡驱动之二:Platform 3. Linux ALSA声卡驱动之三:Platf ...
- Linux ALSA音频系统:platform,machine,codec
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/weixin_41965270/arti ...
- 【转】C#调用ADOX创建Access数据文件后关闭连接
因为公司要做一个导库的功能,需要用ADOX创建Access将Oracle中的数据倒出来. 事情倒是挺简单的,但是生成之后才发现,除非关掉服务,否则Access进程一直关闭!纠结了一晚上.最后终于在以为 ...
- 电脑摄像头未能创建连接服务器,电脑提示未能创建视频预览,请检查设备连接的原因及解决办法...
电脑提示"未能创建视频预览,请检查设备连接"的原因及解决办法 发布时间:2012-05-29 10:49:26 作者:佚名 我要评论 不知道大家有没有遇到这样的情况,当打开 ...
- linux 创建wifi 热点_Linux_ubuntu14.04怎么建立wifi热点?,创建的热点手机也是可以连接 - phpStudy...
ubuntu14.04怎么建立wifi热点? 创建的热点手机也是可以连接的,这里将分享两个方法 一,kde-nm-connection-editor工具开启热点 在ubuntu软件中心搜索kde nm ...
- PC上摄像头未能创建视频预览,请检查设备连接的解决办法
PC上摄像头未能创建视频预览,请检查设备连接的解决办法 摄像头打开不了,但是在别人电脑可以打开,提示 ================================================= ...
- 亚马逊云创建Aws EC2示例+用Xshell7连接登录Aws+设置允许使用root登录
在学Linux,想着搞个服务器来玩玩,发现亚马逊云可以弄免费的服务器,跌跌撞撞才了不少坑,最后给弄好了,这里记录一下我的创建Aws EC2示例+用Xshell7连接登录Aws+设置允许使用root登录 ...
- 如何在mysql中创建连接_如何在MySQL中创建新用户并开启远程连接访问?
如何在MySQL中创建新用户并开启远程连接访问? 发布时间:2020-05-21 14:55:19 来源:亿速云 阅读:176 作者:鸽子 下面由mysql教程给大家介绍MySQL创建新用户并开启远程 ...
- [转] Linux ALSA声卡驱动之三:component、dai、codec以及platform之间的关系
版权声明:本文为CSDN博主「MOON20704」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.net/moonli ...
最新文章
- html 重置画布坐标系,html5清空画布方法(三种)
- UVa10905 - Children's Game(贪心算法)
- 设置文本区域大小_数据验证基本设置技巧
- 在数学空间中,物理分辨率可能失去了意义(behind the paper)
- 【今日CS 视觉论文速览】 24 Jan 2019
- 使用 Pandas 的 to_excel() 方法来将多个 csv 文件合并到一个 xlsx 的不同 sheets 内
- linux命令行快捷命令及vim常用快捷命令
- POI设置EXCEL单元格格式为文本、小数、百分比、货币、日期、科学计数法和中文大写...
- 阿里云云计算 51 在线实验--安全中心初体验
- 计算机操作系统主要特征,计算机操作系统的最基本特征是什么
- 局域网电脑屏幕桌面监控怎么样
- C++入门教程(23)深度优先,广度优先(连连看判断是否可以消除)
- 浏览器中performance的基本使用
- java 基础: 一些稀奇古怪的好东西总结 丰富知识面
- 辛弃疾 青玉案·元宵赏析
- 联邦学习笔记-《Federated Machine Learning: Concept and Applications》论文翻译个人笔记
- 微信公众平台开发之基于百度 BAE3.0 的开发环境搭建(MyEclipse + SVN)
- Spring Cloud底层原理以及项目实战分析
- 破开C语言暗夜的第二道光 —— 数据与数据类型(1)
- MATLAB 中的调用C语音DLL 库