![](https://img-blog.csdnimg.cn/0267b62feeda45c1b109ed20baa7f156.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
多媒体框架
文章平均质量分 80
FFmpeg、VLC、NuPlayer、MediaPLayer、ExoPlayer等常用播放器框架知识管理
gomogomono
多媒体开发者
展开
-
linux音频子系统 - DAPM
Dynamic Audio Power Management for Portable Devices 移动设备的动态电源管理(DAPM)1. DescriptionDAPM使得使用音频子系统的移动linux设备,在任何时候,都能够获得最小功耗。DAPM独立于 kernel中其他PM系统,能够和其他PM系统和谐共存。DAPM对于用户层是透明的,电源切换在asoc-driver层完成。用户层翻译 2017-10-23 19:53:46 · 3057 阅读 · 0 评论 -
linux音频子系统 - 驱动框架
音频相关术语PCM(Pulse Code Modulation) 脉冲编码调制,对连续变化的模拟信号进行抽样、量化和编码,在驱动中一般音频流设备都称为pcm设备I2S I2S是对PCM格式的数据进行规范化,可以说是PCM的子集,I2S只有左右两通道数据TDM(Time Division Multiplexing) 时分复用,可以用单根线传送多通道数据midi(Musical Instr原创 2017-11-20 15:04:56 · 1905 阅读 · 0 评论 -
linux音频子系统 - pcm设备
1.pcm设备脉冲编码调制(Pulse Code Modulation,PCM),就是把一个时间连续,取值连续的模拟信号变换成时间离散,取值离散的数字信号后在信道中传输,这是基本原理。根据此原理,在音频领域的数字音频就用pcm设备来代表,pcm也是一种音频格式,可以自定义通道数,采样率,采样精度;我们经常采用的I2S格式其实属于pcm的一种,不过I2S规定了只有2通道。音频的采样率(r原创 2017-12-11 17:15:21 · 3448 阅读 · 0 评论 -
linux音频子系统 - control设备
control设备主要是能控制音频设备的音量、开关等,在驱动中有两个主要的结构体:snd_kcontrol_new和snd_kcontrol,驱动开发者主要是定义这两个结构体,来进行control设备的开发结构体struct snd_kcontrol_new此结构体类似模板,最终还是要构成一个snd_kcontrol结构体来进行注册(include/sound/control.h)struct s原创 2017-11-24 20:08:17 · 1109 阅读 · 0 评论 -
linux音频子系统 - ASoc框架
为什么要设计ASoC引用linux Document中的解释: The overall project goal of the ALSA System on Chip (ASoC) layer is to provide better ALSA support for embedded system-on-chip processors and portable audio codecs.AS原创 2018-01-02 20:08:24 · 1017 阅读 · 0 评论 -
linux音频子系统 - ASoC-PCM之machine
对于ASoC框架来说,machine就相当于card,soc-card的注册就在machine的相关文件中操作,machine相当于整个声卡,而platform和codec是声卡的附属部件1. struct snd_soc_cardsoc声卡用这个结构体来表示struct snd_soc_card { const char *name; const ...原创 2018-02-01 20:15:13 · 1552 阅读 · 0 评论 -
linux音频子系统 - ASoC-PCM之codec和platform
从前面的文章已经知道platform和codec分别代表不同的组件,对于不同厂家各个芯片,只要注册相应的驱动到codec和platform中,然后具体使用哪个驱动,只要在machine中匹配就好,那么关于platform和codec的注册本文简单说明下platform说明struct snd_soc_platformstruct snd_soc_platform { ...原创 2018-03-07 20:11:31 · 1239 阅读 · 0 评论 -
视频驱动V4L2子系统驱动架构 - 驱动框架
文章系列 视频驱动V4L2子系统驱动架构 - 驱动框架 视频驱动V4L2子系统驱动架构 - ioctl 基于linux4.6.3V4L2驱动框架v4l2驱动架构如图所示,v4l2也就是video for linux two,那么也就是说还有One了,v4l2前面还有v4l图中芯片模块对应Soc的各个子模块,video_device结构体主要用来控制Soc的video模块,v4l2_devic原创 2016-07-23 23:20:55 · 13651 阅读 · 0 评论 -
视频驱动V4L2子系统驱动架构 - ioctl
文章系列 视频驱动V4L2子系统驱动架构 - 驱动框架 视频驱动V4L2子系统驱动架构 - ioctl 基于linux4.6.3,最后会附上一张ioctl调用总图,分析代码还是要用图来说明,这样更清晰一点,我就是这么分析的,不过平时分析的图很随便,而且很大,所以就不能在这里呈现,我在这里会贴出一个简略图ioctl详解进入ioctl都是从cdev->ops->ioctl进入的,一般的驱动cde原创 2016-07-23 23:21:45 · 7951 阅读 · 2 评论 -
AndroidQ | AudioPolicy
AudioPolicyService是负责音频策略的制定,AudioFlinger负责音频策略的具体执行,两个模块各司其职。原创 2020-09-12 18:05:59 · 1500 阅读 · 0 评论 -
AndroidQ | AudioFlinger
Audioflinger负责管理android的所有音频设备,包括输入和输出。在Android Audio系统中,AudioFlinger起到承上启下的作用,上接AudioTrack/AudioRecord/AudioSystem等,下接AudioHal。AudioFlnger对上层会提供各种功能接口调用,对下层会对每个AudioHal设备开启一个独立线程,负责音频数据的管理。本文就依据AudioFlinger的作用来分析部分主要代码。原创 2020-08-02 17:08:50 · 1804 阅读 · 0 评论 -
AndroidQ | AudioHal分析
AndroidHAL层的代码为framework层抽象出了一系列接口,隐藏了硬件驱动细节;本文来了解AudioHal层的相关代码,相关源文件在目录frameworks\av\media\libaudiohal中;在AndroidAudio子系统中,直接操作AudioHal的是AudioFlinger,在AudioFlinger中保存了所有可用的音频设备原创 2020-07-25 14:42:54 · 3396 阅读 · 2 评论