snd
  • 2024-09-07使用libmpg123加alsa实现MP3的播放/暂停,切换,模式选择,C语言3
    note:使用多线程的方式MP3实现播放器,其中用到libmpg123,以及asound库,解码用到libmpg123,播放用到alsa,以下为c语言例程源码#include<alsa/asoundlib.h>#include<mpg123.h>#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<pthread.h>#include&l
  • 2024-08-07音频应用编程-I.MX6U嵌入式Linux C应用编程学习笔记基于正点原子阿尔法开发板
    音频应用编程Linux下ALSA框架概述ALSA简介:ALSA是AdvancedLinuxSoundArchitecture(高级的Linux声音体系)的缩写地位与功能:现已成为Linux下的主流音频体系架构,提供音频和MIDI支持,替代了旧版本中的OSS(开放声音系统)框架设计:ALSA是Linux系统下标准且先进的
  • 2024-07-20RK3588 tinyalsa_hal添加一个自定义声卡输入和输出
    一、添加输出声卡输出流程图:在声卡列表snd_out_sound_cards里添加一个自己的声卡,比如---a/tinyalsa_hal/audio_hw.h+++b/tinyalsa_hal/audio_hw.h@@-216,6+216,7@@enumsnd_out_sound_cards{SND_OUT_SOUND_CARD_SPDIF,SND_OUT_SOUND_CARD_SPDIF_1,
  • 2024-06-22[题解]AT_abc249_f [ABC249F] Ignore Operations
    思路反悔贪心套路题。发现一个性质,当一个操作1生效意味着在这一步之前的所有操作都没用。那么考虑倒着枚举,对于每一个操作1的选取状态做一个简单的分讨:如果保留,那么这种情况下的答案就是之前的\(sum\)加上当前的\(y\)。如果不保留,继续往前走,\(k\leftarrowk-1\)。
  • 2024-06-22[题解]AT_abc216_f [ABC216F] Max Sum Counting
    思路首先,不难发现,对于本题将\(a,b\)合成一个序列,并按照\(a_i\)排序的答案不会发生变化。所以,我们可以直接排序,那么,我们当前枚举到的\(a_i\)就是当前的\(\max(a_i)\)。定义\(dp_{i,j,0/1}\)表示在\(1\simi\)中,选择的\(b_i\)之和为\(j\),并且第\(i\)个数不选/选
  • 2024-04-30瑞芯微-I2S | ALSA基础-3
    针对音频设备,linux内核中包含了两类音频设备驱动框架;OSS:开放声音系统包含dsp和mixer字符设备接口,应用访问底层硬件是直接通过sound设备节点实现的;ALSA:先进linux声音架构(AdvancedLinuxSoundArchiecture)以card和组件(PCM、mixer等)为组件,应用是通过ALSA提供的alsa-lib库访
  • 2024-03-23ALSA学习笔记
            ALSA框架介绍:ALSA-LINUX音频框架学习笔记-CSDN博客        代码参考(博客园):Alsa音频编程【精华】        对原博客代码进行了修改并添加了注释(测试通过,可直接运行),代码包含三个测试用例:1、显示了一些ALSA使用的PCM数据类型和参数;2、添加声
  • 2024-03-15[原创] KCP 源码分析(上)
    KCP协议是一种可靠的传输协议,对比TCP取消了累计确认(延迟ACK)、减小RTO增长速度、选择性重传而非全部重传。通过用流量换取低时延。KCP中最重要的两个数据结构IKCPCB和IKCPSEG,一个IKCPCB对应一个KCP连接,通过这个结构体维护发送缓存、接收缓存、超时重传时间、窗口大小等。I
  • 2024-02-27高通音频框图概述
    音频框图概述|FrontEndPCMs|SoCDSP|BackEndDAIs|Audiodevices|*************PCM0<------------>**<----DAI0----->CodecHeadset**PCM1<------------>*
  • 2024-02-16debian12手动控制thinkpad风扇转速
    配置驱动添加如下配置文件,并重启系统~✘cat/etc/modprobe.d/thinkpad_acpi.confoptionsthinkpad_acpifan_control=1~✘配置确认驱动加载~✘lsmod|grepthinkpad_acpithinkpad_acpi1392640nvram163841thinkpad_acpip
  • 2023-12-14高通msm8996平台的ASOC音频路径分析
    前言关于为什么要记录音频链路音频链路的链接是个什么东西,关于这一点,是一个从开始接触android音频的第一天就困扰的问题,几乎我所有对于音频框架的研究都是针对这个问题在进行,不知不觉中似乎把整个android、linux以及高通adsp的音频框架看了个遍,感觉整个音频框架其实也是围绕着这一
  • 2023-12-07Linux端ALSA音频处理库
    1.项目介绍项目Github地址:https://github.com/alsa-project/alsa-libALSA(AdvancedLinuxSoundArchitecture)是Linux操作系统上的音频处理框架。它提供了对音频设备的抽象和控制,使应用程序能够与音频硬件进行交互。ALSA库是ALSA项目的一部分,它为开发者提供了一组API(应用程序编
  • 2023-11-05037-第三代软件开发-系统音量设置
    第三代软件开发-系统音量设置文章目录第三代软件开发-系统音量设置项目介绍系统音量设置QML实现C++实现总结一下关键字:Qt、Qml、volume、声音、GPT项目介绍欢迎来到我们的QML&C++项目!这个项目结合了QML(QtMeta-ObjectLanguage)和C++的强大功能,旨在开发出色的用户
  • 2023-09-17查看linux系统常用的命令,Linux查看系统配置常用命令
    一、linuxCPU大小 cat/proc/cpuinfo|grep"modelname"&&cat/proc/cpuinfo|grep"physicalid"  说明:Linux下可以在/proc/cpuinfo中看到每个cpu的详细信息。但是对于双核的cpu,在cpuinfo中会看到两个cpu。常常会让人误以为是两个单核的cpu。其实应该通过PhysicalPr
  • 2023-09-05第4篇 machine,platform,codec
    参考:韦东山Linux教程(1)machine:单板相关 //结构体:structsnd_soc_card->structsnd_soc_dai_link 1)表明platform是哪个,通过snd_soc_dai_link指定名字,进行匹配 1.指定CPUDAI(IIS) 2.snd_soc_platform_driver(指定DMA) 2)表明codec是哪个,通过s
  • 2023-09-04第4篇 sound.c分析(应用层如何调用到内核层的)
    原文链接:https://blog.csdn.net/yangguoyu8023/article/details/1221146201.alsa_sound_initalsa的核心入口函数是sound\core\sound.c中的alsa_sound_initstaticstructsnd_minor*snd_minors[SNDRV_OS_MINORS];staticintsnd_open(structinode*inode,structfile*file
  • 2023-08-26Linux 内核 ASoC DMA 引擎驱动程序
    Linux内核ASoC框架,在概念上将嵌入式音频系统拆分为多个可复用的组件驱动程序,包括Codec类驱动程序、平台类驱动程序和机器类驱动程序。在实现上,机器类驱动程序用structsnd_soc_card和structsnd_soc_dai_link结构描述,属于平台类驱动程序的DMA引擎驱动程序由structsnd
  • 2023-08-24Linux 内核音频数据传递主要流程 (下)
    来而不往非礼也。前面看到了用户空间应用程序和DMAbuffer之间交换数据,并更新runtime->control->appl_ptr指针的过程,这里看一下硬件设备驱动程序在完成DMAbuffer和硬件设备的数据交换之后,更新runtime->status->hw_ptr的过程。用户空间应用程序,在内核的__snd_pcm_lib_xf
  • 2023-07-31Rockchip RK3399 - ALC5651音频调试
    ----------------------------------------------------------------------------------------------------------------------------开发板:NanoPC-T4开发板eMMC:16GBLPDDR3:4GB显示屏:15.6英寸HDMI接口显示屏u-boot:2023.04linux:6.3-----------------------
  • 2023-07-30Rockchip RK3399 - Codec驱动( Realtek ALC5651)
    ----------------------------------------------------------------------------------------------------------------------------开发板:NanoPC-T4开发板eMMC:16GBLPDDR3:4GB显示屏:15.6英寸HDMI接口显示屏u-boot:2023.04linux :6.3----------------------------
  • 2023-07-23Rockchip RK3399 - 音频调试
    一、内核配置1.1配置内核修改sound/soc/codecs/Kconfig文件,搜索configSND_SOC_RT5651,将该项修configSND_SOC_RT5651tristatedependsonI2C改为,如果不修改的话,makemenuconfig是看不到该配置项的;configSND_SOC_RT5651tristate"RealtekAL
  • 2023-07-20systool
    systool显示基于总线、类和拓扑显示系统中设备的信息补充说明systool命令指令显示基于总线、类和拓扑显示系统中设备的信息。语法systool(选项)(参数)选项-a:显示被请求资源的属性;-b<总线>:显示指定总线的信息;-c<class>:显示指定类的信息;-d:仅显示设备;-h:显示指令的用法;-
  • 2023-07-09Rockchip RK3399 - DAPM
    DAPM是DynamicAudioPowerManagement的缩写,即动态音频电源管理,旨在允许便携式Linux设备在任何时候使用音频子系统中的最小电量。它独立于其他内核PowerManager,故可以很容易地与其他PM系统共存。DAPM对所有用户空间应用程序来说也是完全透明的,因为所有电源切换都是在ASoC核心内
  • 2023-07-08Rockchip RK3399 - Codec驱动基础
    在上一篇博客我们介绍了ALSA子系统的软件架构,同时介绍了ALSACORE核心数据结构和相关API。本节我们将会介绍ASoC软件体系中音频三大驱动模块:Codec、Platform和Machine。一、ASoC核心数据结构我们首先来了解Codec、Platform和Machine驱动中涉及到的数据结构,知道每个数据结构以
  • 2023-07-08Rockchip RK3399 - Codec驱动( Realtek ALC5651)
    Codecdriver提供了配置/使能Codec的能力,驱动代码位于sound/soc/codecs/rt5651.c文件。一、设备节点1.1设备节点rt5651我们在arch/arm64/boot/dts/rockchip/rk3399-evb.dts文件添加rt5651设备节点,该节点位于i2c1节点下:&i2c1{status="okay";i2c-scl-rising-time