- 博客(129)
- 收藏
- 关注
转载 Android4.1.2 耳机插入拔出通知流程分析
因为需要加一套新的耳机设备accessory并且展示耳机图标在状态栏,所以需要去看一下android上层的处理流程。其实整个耳机插入的流程是:当硬件检测到耳机的插入,kernel上报UEvent到上层,上层接收到event后,调用硬件去切audio path, 硬件切换成功后,kernel发送UEvent给framework, 然后做show图标的动作。测试过程中,使用ADB命令发送UEv
2013-10-30 15:22:38
1707
转载 Linux-内存管理
Linux-内存管理 分类: LINUX1.地址类型物理地址---CPU地址总线的寻址物理内存的地址信号,地址变换的最终结果线性地址(虚拟地址)逻辑地址---汇编程序中的地址逻辑地址—段式管理单元—虚拟地址—页式管理—物理地址2.段式管理:16位的CPU拥有20位地址线(8086),它的寻址范围是2的20次方,即1M内存空间.但16位CPU寄存器只有16位置能访
2013-09-26 10:13:23
751
转载 static_cast与dynamic_cast转换
static_cast与dynamic_cast转换 static_cast与dynamic_cast转换 一 C语言中存在着两种类型转换:隐式转换和显式转换隐式转换:不同数据类型之间赋值和运算,函数调用传递参数……编译器完成char ch;int i = ch;显示转换:在类型前增
2013-08-19 13:34:45
621
转载 中断处理handler不能sleep
1.进入中断处理程序--->2.保存关键上下文---->3.开中断(sti指令)--->4.进入中断处理程序的handler--->5.关中 ...里面很多说法不是很同意, 个人认为中断处理handler不能sleep原因应该不是上面那些.我们都是从理论讲下面这些问题, 因为linux在很多地方做了保护, 所以直接sleep或者schedule()会导致内核异常.首
2013-06-24 10:03:55
5420
转载 声音设备返回的input buffer总是320个字节
首先简单介绍下,G711的压缩比,其实比较低2:1的压缩,一般采样的数据都是一次性的读取320字节,至于为什么是320呢?原因是这样的:语音帧的最小单位是20ms,也就是在8KHZ 16bit的基础上,一帧语音可以播放20ms,这20ms对应的长度就是320字节,按帧的概念来说,就是最少必须编码一帧的数据,也就是达到最小的语音播放单位.320个字节是这么算出来的:8Kh
2013-02-19 16:44:59
1842
1
转载 AMR音频编码器概述及文件格式分析
AMR音频编码器概述及文件格式分析 全称Adaptive Multi-Rate,自适应多速率编码,主要用于移动设备的音频,压缩比比较大,但相对其他的压缩格式质量比较差,由于多用于人声,通话,效果还是很不错的。一、分类1. AMR: 又称为AMR-NB,相对于下面的WB而言,语音带宽范围:300-3400Hz,8KHz抽样2.
2013-02-19 15:57:48
710
转载 BugFix 2:状态栏显示耳机插拔图标
StatusBarPolicy.java是状态栏相关图标显示源码.为了能在状态栏显示插拔耳机图标,需要到该文件下注册插拔耳机事件addAction(Intent.ACTION_HEADSET_PLUG).当有插拔耳机时,会收到该广播消息,则可以在BroadcastReceiver里处理action.equals(Intent.ACTION_HEADSET_PLUG)的情况.要显示图标可用Not
2012-12-24 13:37:23
587
转载 Android Camera 架构简析2
Android Camera架构简析2 接上一节Android Camera架构简析1谈到的Android Camera结构,下面继续分析。l 应用框架层Camera框架层将应用与底层的实现隔离开来,实现了一套Android定义的对上对下接口规范,方便应用及底层硬件的开发和移植。这一层对上以Java类的形式包装出android.hardware.C
2012-12-24 13:36:19
600
转载 Android Camera 架构简析1
Android Camera架构简析11. 前言最近整体看了一下Android Camera部分代码,从Framework的Camera 应用框架到 Hardware的Camera HAL 再到 Kernel的 Camera Driver。把对Camera部分的学习整理成笔记,方便理解。2. 概述要了解Android Camera架构,还是得先从An
2012-12-24 13:35:16
669
转载 112212
网线从第一个路由器里分出来的,第一个路由器IP是192.168.1.1。现在我有第二个无线路由,这样的二级路由器怎么设置啊? 一、第二个路由器该怎么设定? 方法一:无线有线上网都行。 首先选择WAN口静态IP连接方式。 1、路由器的WAN设置 ip地址: 192.168.1.X 他分配给你的合法地址 子网掩码: 255.255.255.0 缺省网关
2012-10-26 14:05:40
726
转载 海明码计算及其纠错原理详解
海明码计算及其纠错原理详解 hello,大家好!相信很多刚刚学习网络知识或者正在学习的朋友都曾对海明码这个东西迷惑不解!和大家一样,我也是其中一个迷惑的人之一!但是今天我终于明白了其中的道理!特写下来与大家一起分享,不当之处,欢迎指正!这里我从例子入手,给大家讲讲海明码纠错的原理!还有朋友对异或运算不了解吗?好吧!肯定有朋友不知道的,这里我简单给大家说明下!异或算符
2012-10-19 14:21:38
2960
1
转载 Pop Count Problem
ArticlePop Count Problem (二进制数中1的个数)一、问题描述:求一个N位整数x的二进制表示中1的个数,越快越好。据说这是道很著名的面试题。原题是说如何在常量时间内算出32位整数的二进制表示中1的个数。实际上这么问是有漏洞的,因为按照最笨的方法,一个一个数,也不过32次,当然是常量时间。但如果你这么告诉面试官,十有八九会被骂白痴。因为大家一般都会认为32次实际
2012-10-19 14:10:46
1601
转载 taglist安装
taglist安装注意:taglist依赖于ctags,所以要先装ctags,否则taglist装了也没法用!1、首先安装ctags1)ubuntu安装sudo apt-get install exuberant-ctags2)centos安装wget http://prdownloads.sourceforge.net/ctags/ctags-5.8-1.i386.r
2012-10-18 16:13:50
515
转载 Android深入浅出之Binder机制
Android深入浅出之Binder机制Android深入浅出之Binder机制一 说明 Android系统最常见也是初学者最难搞明白的就是Binder了,很多很多的Service就是通过Binder机制来和客户端通讯交互的。所以搞明白Binder的话,在很大程度上就能理解程序运行的流程。我们这里将以MediaService的例子来分析Binder的使用:l
2012-10-17 15:52:18
578
转载 Android的Binder机制浅析
Android的Binder机制浅析1. 引言 一般实际的软件系统中进程间通信(IPC)的实现方法有命名管道(named pipe),共享内存(shared memory),消息队列(message queue),Socket等方法。在Android的框架(Framework)中,以Binder作为框架内进程间(通常如服务和客户间)通信的主要实现手段。这可能是出于效
2012-10-17 10:23:00
953
转载 vim列模式编辑方法
vim列模式编辑方法在使用i600w的编辑脚本时,只想使用其中的拷贝命令,但是还有其他很多行,如果一起运行的话,编译将会花费太多时间,但是如果一行行注释掉又比较麻烦,将来需要从新使用是还要一行行去掉注释,突然想到vi工具的强大,网上搜索看看有没有什么编辑命令,果然发现vi有个列编辑模式:编程的时候需要进行多行注释和删除多行注释,方法如下: 1、注释:ctrl+v 进入列编辑模式
2012-10-16 08:41:11
12306
转载 Android Audio代码分析10 - audio_track_cblk_t::framesReady函数
Android Audio代码分析10 - audio_track_cblk_t::framesReady函数在看AudioTrack的write函数的时候,了解到,音频数据最终都写到了audio_track_cblk_t的结构体中。这个结构体是在AudioFlinger中创建的。AudioFlinger是如何来使用这些数据的呢?今天就来学习学习。我们写数据的时候,
2012-10-10 14:45:20
2188
转载 二叉树的遍历方法
不知道在哪篇文章上看过一个二叉树的遍历方法,非常简单。从此不在需要记住那些烦人的前序、中序、后序遍历的顺序了:二叉树的遍历有三种方式,如下:(1)前序遍历(DLR),首先访问根结点,然后遍历左子树,最后遍历右子树。简记根-左-右。(2)中序遍历(LDR),首先遍历左子树,然后访问根结点,最后遍历右子树。简记左-根-右。(3)后序遍历(LRD),首先遍历左子树,然后遍历右子树,最
2012-09-26 15:36:08
10804
1
转载 C语言中的整数自动转换原则
C语言中的整数自动转换原则 1、隐式转换 C在以下四种情况下会进行隐式转换: 1、算术运算式中,低类型能够转换为高类型。 2、赋值表达式中,右边表达式的值自动隐式转换为左边变量的类型,并赋值给他。 3、函数调用中参数传递时,系统隐式地将实参转换为形参的类型后,赋给形参。 4、函数有返回值时,系统将隐式地将返回表达式类
2012-09-18 09:03:14
893
原创 Audio子系统学习
一、学习计划1、Background of sound2、Sound wav3、ADC/DAC4、Sample rate and Bit depth …5、Audio Standards6、PCM7、IIS8、AC97 二 基础知识 1、wav文件wave是录音时用的标准wundows文件格式,文件扩展名为w
2012-09-03 14:27:04
2826
转载 关于音频采样率以及比特率的问题
关于音频采样率以及比特率的问题 今天在百度知道回答问题的时候遇见这样一个问题“一张光盘700MB,可以保存多长时间立体声16位的44KHZ声音!” 首先我就想到,前几天遇见的一个问题1G容量用480Mbps传有多快,一想,这还不简单,480Mbps多快,用1024M除下不就得了,后来发现这么做不对,我将"480Mbps"误解为480兆/秒。事实上"480MBPS"应为480兆
2012-09-03 09:20:02
2822
转载 Android开机界面
Android开机界面Android 开机会出现3个画面: 1. Linux 系统启动,出现Linux小企鹅画面(reboot)(Android 1.5及以上版本已经取消加载图片); 2. Android平台启动初始化,出现"A N D R I O D"文字字样画面; 3. Android平台图形系统启动,出现含闪动的ANDROID字样的动画图片(start)。1、开机
2012-08-29 10:05:35
718
转载 Android中的Audio播放:控制Audio输出通道切换 .
Audio 输出通道有很多,Speaker、headset、bluetooth A2DP等。通话或播放音乐等使用Audio输出过程中,可能发生Audio输出通道的切换。比如,插入有线耳机播放音乐时,声音是从耳机发出的;而此时拔出耳机,Audio输出通道会发生切换。如果音乐播放器不做处理,Audio输出是被切换到扬声器的,声音直接从Speaker发出。我们在编写程序时,要捕获并按照需求来处理这样的事
2012-08-29 09:31:34
12080
1
转载 Linux下gcc编译中关于头文件与库文件搜索路径相关问题
转】Linux下gcc编译中关于头文件与库文件搜索路径相关问题 2012-06-12 10:51:18| 分类:linux | 标签:|字号大中小 订阅如何指定GCC的默认头文件路径网上偶搜得之,以之为宝:)原地址:http://blog.chinaunix.net/u/28781/showart.php?id=401631==========
2012-08-29 09:19:31
1852
转载 android音频系统
android音频系统 转:http://blog.csdn.net/qianjin0703/article/details/63876620. 专用术语1. 物理结构2. 系统架构本文基于Freescale IMX平台Codec ALC5625为例。0. 专用术语ASLA - Advanced Sound Linux Architecture
2012-08-29 09:10:54
791
转载 android调试 反汇编
android调试 反汇编 转:http://www.apkbus.com/forum.php?mod=viewthread&tid=577在移植Android过程中会遇到很多Crash的情况,尤其是启动Android过程中。一般这些问题都可以通过看代码能解决,当然也有一些比较“妖娆”的问题,非常难找到头绪,在logcat日志也只会打印一些崩溃的堆栈,这些信息很难帮助我们定位问题
2012-08-29 09:10:04
2399
转载 Android Audio System 之二:AudioFlinger
Android Audio System 之二:AudioFlinger转自:http://blog.csdn.net/droidphone/article/details/5951999引言 AudioFlinger是Android音频系统的两大服务之一,另一个服务是AudioPolicyService,这两大服务都在系统启动时有MediaSever加载,加载的代
2012-08-20 14:26:12
691
转载 Android Audio System 之一:AudioTrack如何与AudioFlinger交换音频数据
Android Audio System 之一:AudioTrack如何与AudioFlinger交换音频数据 本文转自:http://blog.csdn.net/droidphone/article/details/5941344引子Android Framework的音频子系统中,每一个音频流对应着一个AudioTrack类的一个实例,每个AudioTrack会在创建时
2012-08-20 13:22:09
654
原创 震子
文件路径:1: kernel/drivers/frecomm_kernel/marvell_vibrator.c2: hardware/libhardware_legacy/vibrator/vibrator.c3 :framworks/base/services/jni/com_android_server_vibratorservice.cpp
2012-08-14 15:02:31
658
转载 Android平台上的进程调度探讨
Android平台上的进程调度探讨 随笔之Android平台上的进程调度探讨一由来最近在翻阅MediaProvider的时候,突然想起之前碰到的一个问题,该问题是这样的:一个Pad上有很多媒体文件,然后每次开机后的一段时间内,Home Screen的反应都特别慢,有时候还会报出ANR的错误。从ANR文件/data/anr/traces.txt分析,发现系统打印的cp
2012-08-10 16:06:40
1077
转载 I2S总线协议 .
I2S总线协议一、I2S总线概述 音响数据的采集、处理和传输是多媒体技术的重要组成部分。众多的数字音频系统已经进入消费市场,例如数字音频录音带、数字声音处理器。对于设备和生产厂家来说,标准化的信息传输结构可以提高系统的适应性。I2S(Inter—IC Sound)总线是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准,该总线专责于音频设备之间的数据传
2012-08-06 10:29:59
10893
1
转载 ALSA 驱动框架和驱动开发 (二)
本文主要接着讲,ALSA驱动框架中,内核调用到驱动的全过程十.从内核调用到驱动的全过程 1.Open /dev/dsp Open操作,通过前面所说的结构图,我们知道,当内核调用open函数时, 首先调用的是soundcore_open,通过__look_for_unit找到chain[3],即dsp这一sound_unit指针,然后重新赋值文件
2012-07-31 16:09:58
1615
转载 ALSA 驱动框架和驱动开发 (一)
音频设备接口包括PCM IIS AC97三大类两种音频驱动框架:ALSA和 OSSOSS包含DSP和MIXER字符设备接口,完全使用文件操作ALSA以CARD和组件(PCM,mixer等)为主线,在用户空间的变成中不适用文件接口,而是使用alsalib,而下文要介绍的没有使用ALSAlib,而是使用了OSS lib 接口芯片为PCM系列Linux 2.
2012-07-31 16:09:04
1447
转载 Linux Audio 编程
Linux Audio 编程 一、数字音频 音频信号是一种 连续变化的模拟信号,但计算机只能处理和记录二进制的数字信号,由自然音源得到的音频信号必须经过一定的变换,成为数字音频信号之后,才能送到计算机中作 进一步的处理。 数字音频系统通过将声波的波型转换成一系列二进制数据,来实现对 原始声音的重现,实现这一步骤的设备常被称为模/数转换器(A/D)。A/D转换器以每秒钟上万次
2012-07-30 18:42:53
1019
转载 V4L2 3
Linux 视频设备驱动V4L2最常用的控制命令使用说明Linux视频设备驱动常用控制命令使用说明设置视频设备属性通过ioctl来进行设置,ioctl有三个参数,分别是fd, cmd,和parameter,表示设备描述符,控制命令和控制命令参数。1. 控制命令VIDIOC_QUERYCAP功能: 查询设备驱动的功能 ;参数说明:参数类型为V4L2的能力描
2012-07-27 13:29:47
1255
转载 V4L2 2
V4L2驱动框架V4L2驱动框架主设备号: 81次设备号: 0-63 64-67 192-223 224-255/dev/videoX 应用层————————————char驱动————————————V4L2————————————具体的驱动————————————硬
2012-07-27 13:29:01
1366
转载 V4L2 1
V4L2分类: linux驱动 FIMC2012-07-24 15:42 10人阅读 评论(0)收藏 举报V4L2是V4L的升级版本,为linux下视频设备程序提供了一套接口规范。包括一套数据结构和底层V4L2驱动接口。1、常用的结构体在内核目录include/linux/videodev2.h中定义struct v4l2_requestbu
2012-07-27 13:28:10
813
转载 JPEG图像的解压缩操作
JPEG图像的解压缩操作解压缩操作过程1. 为JPEG对象分配空间并初始化2. 指定解压缩数据源3. 获取文件信息4. 为解压缩设定参数,包括图像大小,颜色空间5. 开始解压缩6. 取出数据7. 解压缩完毕8. 释放资源 为JPEG对象
2012-07-27 13:25:15
1489
转载 linux audio 子系统(转) 2012.07.27
Linux audio子系统研究嵌入式开发联盟mcuos.com原创文章Osboy:mcuos.com@gmail.com 1 认识一些有用的数据结构SoC 设备结构体:他是整个Audio子系统描述结构体。 /* SoC Device - the audio subsystem */struct snd_soc_device {
2012-07-27 09:02:50
5331
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人