自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AZURE

原创 Qualcomm Audio HAL 音频通路设置

1. 音频框图概述 | Front End PCMs | SoC DSP | Back End DAIs | Audio devices | ************* PCM0 <-----------...

2018-02-27 04:54:39

阅读数 10502

评论数 10

原创 AVS、MPEG-2、H.264 标准文档

几年前,做过一些 AVS、H.264 的编解码工作,收集了一点标准文档及开源代码。这些我都分享在前一个博客:http://sep.blog.chinaunix.net,由于该博客的文件分享都失效了,因此有不少童鞋找到这里联系上我。 为了方便大家,这里重新把这部分资源上传分享,具体见:http:/...

2016-04-15 11:31:41

阅读数 2842

评论数 0

原创 PCM data flow - 7 - Frame & Period

后面章节将分析 dma buffer 的管理,其中细节需要对音频数据相关概念有一定的了解。因此本章说明下音频数据中的几个重要概念: Sample:样本长度,音频数据最基本的单位,常见的有 8 位和 16 位; Channel:声道数,分为单声道 mono 和立体声 stereo; Frame:帧,...

2016-04-02 18:29:36

阅读数 5362

评论数 4

原创 [HOWTO]: Linux/Android常用调试工具

本文介绍Linux/Android一些常用的调试工具及其使用说明,作为备忘,持续更新中。 注意:大部分都不是本人原创,是从各地方搜集而来,原作者也未一一追溯,所以没有出处说明,如有冒犯,请评论或私信,我会尽快修改。 FIQ-Debugger fiq debugger是集成到内核中的一种系统调...

2015-05-16 15:41:07

阅读数 5010

评论数 1

原创 XRUN DEBUG

当遇到声音卡顿时,一般是遭遇xrun了,调试的时候可以通过alsa提供的xrun_debug接口来获取更多有用的信息,帮助定位问题。 原文:http://www.alsa-project.org/main/index.php/XRUN_Debug This page describ...

2015-05-16 14:31:57

阅读数 4365

评论数 0

原创 PCM data flow - 6 - 声卡和PCM设备的建立过程

前面几章分析了Codec、Platform、Machine驱动的组成部分及其注册过程,这三者都是物理设备相关的,大家应该对音频物理链路有了一定的认知。接着分析音频驱动的中间层,由于这些并不是真正的物理设备,故我们称之为逻辑设备。 PCM逻辑设备,我们又习惯称之为PCM中间层或pcm native,...

2015-03-10 21:59:32

阅读数 4876

评论数 0

原创 ANDROID音频系统散记之五:如何绕开多媒体音轨的重采样

两年前,Android智能手机的音质还广受诟病,那时不仅不能与专业影音设备相提并论,连48KHz采样率的声音都要强制成转换成44.1KHz输出,这种非线性重采样极大地损坏了音质,加剧互调失真。对于此的较完整分析见:http://www.soomal.com/doc/10100002164.htm ...

2014-04-23 22:52:38

阅读数 9512

评论数 8

原创 漫谈逻辑思维

先看一道逻辑推理题: 你来到两道门口,一道是天堂之门, 一道是地狱之门 。门口都有一个守卫,只知道守卫一个只说假话,一个只说真话。现在你只有一次提问机会,只向一个守卫问一个问题,这个守卫对你的问题,只给出“是”或者”不是“的答案。请问怎么问才能准确进入天堂之门? 如果按照普通逻辑思维去考虑这个问题...

2014-01-16 22:37:55

阅读数 3365

评论数 1

原创 PCM data flow - 5 - ASoC machine driver

章节ASoC中的codec_drv和ASoC中的platform_drv介绍了codec、platform(I2S、pcm_dma)驱动,但仅有codec、platform驱动是不能工作的,需要一个角色把codec、codec dai、cpudai、pcm dma给链结起来才能组成一个完整的音频...

2013-12-26 16:34:13

阅读数 5900

评论数 7

原创 PCM data flow - 4 - ASoC platform driver

概述中提到音频Platform驱动主要作用是音频数据的传输,这里又细分为两步: ·          把音频数据从userspace通过dma或者mmap方式搬运到cpu_dai FIFO,这部分驱动用snd_soc_dai_driver描述,后面分析用pcm dma指代它。 ·         ...

2013-12-14 13:05:39

阅读数 5693

评论数 1

原创 PCM data flow - 3 - ASoC codec driver

本章开始时提到codec_drv的几个组成部分,下面逐一介绍,基本是以内核文档Documentation/sound/alsa/soc/codec.txt中的内容为脉络来分析的。 Codec DAI和PCM的配置信息 codec_dai和pcm配置信息通过结构体snd_soc_dai_dri...

2013-12-10 23:16:40

阅读数 6726

评论数 2

原创 PCM data flow - 2 - ASoC data structure

ASoC:ALSA System on Chip,是建立在标准ALSA驱动之上,为了更好支持嵌入式系统和移动设备中的音频codec的一套软件体系,它依赖于标准ALSA驱动框架。内核文档alsa/soc/overview.txt中详细介绍了ASoC的设计初衷,这里不一一引用,简单陈述如下: ·   ...

2013-12-10 22:55:53

阅读数 6330

评论数 4

原创 PCM data flow - 1 - Overview

Linux kernel version:3.4.5 SoC:Samsung exynos Userspace:tinyalsa 音频驱动主要有三个domain组成: 1、 Platform:通常指某款SoC平台,如exynos、omap等等。Platform又可细分两部分: 1.1、CPU ...

2013-11-03 14:59:21

阅读数 8659

评论数 11

原创 个人使用的Linux开发环境

前些天重装了个Debian7.1 64bit的系统,搭建开发环境和安装常用的工具颇花精力,整理了下,记录如下。 1/Android编译环境 参考: http://blog.csdn.net/gexueyuan/article/details/7772387 http://blog.csdn.n...

2013-09-13 23:21:12

阅读数 3689

评论数 3

原创 DAPM之九:complete path对codec suspend的影响

1、问题应该发生在: int snd_soc_suspend(struct device *dev) { //... for (i = 0; i num_rtd; i++) { struct snd_soc_dai *codec_dai = card->rtd[i].codec_d...

2013-08-12 01:41:43

阅读数 4942

评论数 8

转载 一个绝妙的内核exploit

最近 Linux 内核爆出了一个严重的安全漏洞,非root用户可以通过该漏洞的 exploit 获取root权限。这并不罕见,值得一提的是这个补丁看起来如此平常以至于我们绝大多数人都不会以为这是安全问题。 先看这个问题的补丁,就是下面这个: static int perf_swevent_i...

2013-08-10 01:11:08

阅读数 2916

评论数 1

原创 DAPM之八:stream domain触发过程分析

这两天在查一个bug,结果bug没有完美解决,关于stream domain和stream event的触发过程倒是跟了个遍。记于此,也好慰告《DAPM之四:dapm widget events》大坑的在天之灵。 另外,以前的DAPM系列均基于Linux-2.6.32来分析的,目前我们使用Lin...

2013-06-07 17:15:22

阅读数 6140

评论数 8

转载 自旋锁spinlock使用总结

如果被保护的共享资源只在进程上下文和软中断上下文访问,那么当在进程上下文访问共享资源时,可能被软中断打断,从而可能进入软中断上下文来对被保护的共享资源访问,因此对于这种情况,对共享资源的访问必须使用spin_lock_bh和spin_unlock_bh来保护。 当然使用spin_lock_irq和...

2013-05-23 11:36:57

阅读数 3730

评论数 0

转载 再牛逼的伟人,也有苦逼的青春

1874年,某个十六岁的德国青年中学毕业,成绩在全班23人中也只排在第八,老师们对他的印象是该生除过人品好之外,实在看不出其他任何的才华和天赋,聊以自慰的是他有一手保命的技能——弹钢琴。 但是,青年却抛弃了键盘系这个很有前途的专业,毅然决然的选择了物理这个苦逼专业,就连大学的物理学教授都劝他:这个...

2013-04-11 17:02:30

阅读数 3402

评论数 1

原创 机制和策略相分离原则

这些天大刀阔斧修改了我们的alsa音频驱动,更深切理解了机制和策略分离的重要性。 说来惭愧,Linux Device Drivers一书翻来覆去查阅了无数遍,却忽视了绪论中的一句话:区分机制和策略是Unix设计背后隐含的最好思想之一。 “需要提供什么功能”即机制,“如何使用这些功能”即策略。一年多...

2012-03-23 16:32:48

阅读数 7443

评论数 3

提示
确定要删除当前文章?
取消 删除