- 博客(184)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
转载 Qualcomm Audio HAL 音频通路设置(基于8996平台)
1. 音频框图概述| Front End PCMs | SoC DSP | Back End DAIs | Audio devices | *************PCM0 <------------> * * <----DAI0-----> Codec Headset * *PCM1 <------------> *
2020-08-03 00:34:39
2745
转载 HLS协议介绍
来介绍一下HLS协议,这个协议是由苹果公司提出并推广开来的。来一段维基百科的定义。HTTP Live Streaming(缩写是HLS)是一个由苹果公司提出的基于HTTP的流媒体网络传输协议。是苹果公司QuickTime X和iPhone软件系统的一部分。它的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率...
2018-02-24 14:13:28
344
转载 WebRTC中丢包重传NACK实现分析https://www.jianshu.com/p/a7f6ec0c9273
转自: https://www.jianshu.com/p/a7f6ec0c9273在WebRTC中,前向纠错(FEC)和丢包重传(NACK)是抵抗网络错误的重要手段。FEC在发送端将数据包添加冗余纠错码,纠错码连同数据包一起发送到接收端;接收端根据纠错码对数据进行检查和纠正。RFC5109[1]定义FEC数据包的格式。NACK则在接收端检测到数据丢包后,发送NACK报文到发送端;发送端根据NAC...
2018-02-12 17:15:30
1082
转载 WebRTC视频JitterBuff
前言如果网络是理想的,即无丢包、无抖动、低延时,那么接收到一帧完整数据就直接播放,效果一定会非常好。但是实际的网络往往很复杂,尤其是无线网络。如果还是这样直接播放,网络稍微变差,视频就会卡顿,出现马赛克等异常情况。所以,在接收端对接收的数据做一个缓冲是很有必要的。 缓冲一定是以延时作为代价的,延时越大,对抖动的过滤效果越好。一个优秀的视频jitterbuffer,不仅要能够对丢包、乱序、延时到...
2018-02-12 16:07:35
709
转载 浅谈网络语音技术
当我们使用像Skype、QQ这样的工具和朋友流畅地进行语音视频聊天时,我们可曾想过其背后有哪些强大的技术在支撑?本文将对网络语音通话所使用到的技术做一些简单的介绍,算是管中窥豹吧。一.概念模型 网络语音通话通常是双向的,就模型层面来说,这个双向是对称的。为了简单起见,我们讨论一个方向的通道就可以了。一方说话,另一方则听到声音。看似简单而迅捷,但是其背后的流程却是相当复杂的...
2018-02-12 16:06:35
371
转载 十分钟带你理解Kubernetes核心概念
本文将会简单介绍Kubernets的核心概念。因为这些定义可以在Kubernetes的文档中找到,所以文章也会避免用大段的枯燥的文字介绍。相反,我们会使用一些图表(其中一些是动画)和示例来解释这些概念。我们发现一些概念(比如Service)如果没有图表的辅助就很难全面地理解。在合适的地方我们也会提供Kubernetes文档的链接以便读者深入学习。这就开始吧。什么是Kubernetes?
2017-11-07 11:36:00
420
原创 RTC 2017实时互联网大会会议总结、数据收集
我和几个同事一起参加了9月21-22日的2017 RTC实时互联网会议,下面是我对该会议的总结、数据收集。RTC 2017 发展总结: 1. 超过1100个供应商和项目在使用WebRTC。 WebRTC应用最大的市场是:众多客户服务和某些垂直行业(医疗和教育行业领跑) 2. 企业开始大量储备WebRTC开发人才 3. 连麦互动直播迅速渗透垂直
2017-10-25 00:04:55
1483
1
转载 MediaCodec总结
MediaCodec进行编解码的大体逻辑是这样的: 主要函数的调用逻辑如下: 需要做的东西是一个媒体文件合成器,功能是先截取出多段媒体文件中的某些片段,再将这些片段合成为一个新的媒体文件。实际上就是先用解码器将多段outputBuffer数据拿出来,然后再用编码器将它们放到一个文件里去。如果还要加上叠加字幕、特技处理等的效果,实际上也是先拿到ou
2016-03-08 10:23:55
672
转载 Android4.2.2 关于unmount SDcard流程中updateExternalMediaStatus部分
在Storage Setting中大家可以看见对于外置SDcard有一项unmount SDcard的操作,就是将sdcard从手机上卸载,但是在unmount sdcard之前,首先会对Package信息做更新的操作,package的主要管理者是packageManagerService。昨晚更新操作以后,然后才是真正的unmount动作,下面我来整理下这个过程的具体流程。当点击Stor
2015-08-26 15:23:33
848
原创 推荐两个比较全的android在线源代码
推荐一个比较全的android在线源代码:http://grepcode.com/project/repository.grepcode.com/java/ext/com.google.android/android/
2015-08-24 23:25:51
1327
转载 android之VOLD:staging目录作用与ASEC文件 -总结
/mnt/secure/staging来看一下mountVol代码 int Volume::mountVol() { int rc = 0; char errmsg[255]; const char *mountPath; char devicePath[255];
2015-08-24 22:54:07
1058
原创 用adb push/pull init.rc的方法
[plain] view plaincopymount -o rw -o remount /dev/block
2015-08-17 19:27:50
3067
1
转载 CLOCK_MONOTONIC and CLOCK_REALTIME
Middleware对POSIX提供的标准计时器API进行封装,主要提供了两种类型的时钟的封装。一种是CLOCK_REALTIME,另一种是CLOCK_MONOTONIC。对与man手册的解释是:CLOCK_REALTIME: Systemwide realtime clock. 系统范围内的实时时钟。CLOCK_MONOTONIC:Represents monotonic time. C
2015-03-15 21:25:24
710
转载 AudioFlinger,AudioPolicyService and Audio track分析
ContentsAndroid音频系统之AudioFlinger(一)..21.1 AudioFlinger.21.1.1 AudioFlinger服务的启动和运行...2Android音频系统之AudioFlinger(二)..61.1.1音频设备的管理...6Android音频系统之AudioFlin
2014-08-21 14:27:26
2233
转载 Android 4.4 Kitkat 音频实现及简要分析
在 Android 4.4 上实现录放音背景Android 自 ICS 开始,音频系统就有了很大的变化,先是抛弃了 alsalib,然后是采用了 AIO,各级框架上,都有了自己的特色,与 Linux 的音频应用渐行渐远,形成了自己独特的音频管理和音频配置功能。总的来说改进还是非常大,至少在用户体验上已经大大的超越了之前的版本。我们就从 4.4 的音频实现上来分析其中的一些变化和
2014-05-29 00:03:49
1126
转载 android -- 蓝牙 bluetooth (五)接电话与听音乐
前段时间似乎所有的事情都赶在一起,回家、集体出游、出差,折腾了近一个月,终于算暂时清静了,但清静只是暂时,估计马上又要出差了,所以赶紧把蓝牙这一部分的文章了结下,按之前提到的目录,本文是关于蓝牙接打电话和听音乐的流程分析,对应蓝牙HFP/A2DP的profile,由于这部分也算是蓝牙的经典功能,所以代码流程并不是很复杂,当然不复杂仅是对于代码调用流程而言,对于HFP/A2DP协议相关的东东还没有精
2014-05-28 23:34:32
1323
转载 android -- 蓝牙 bluetooth (四)OPP文件传输
在前面android -- 蓝牙 bluetooth (一) 入门文章结尾中提到了会按四个方面来写这系列的文章,前面已写了蓝牙打开和蓝牙搜索,这次一起来看下蓝牙文件分享的流程,也就是蓝牙应用opp目录下的代码,作为蓝牙最基本的一个功能,这部分的代码在之前的版本中就已经有了,新旧版本代码对比很多类名都是一样的,这一部分新东西不多,写在这里帮助大家梳理下流程吧。 有没有这种感
2014-05-28 23:28:16
1460
转载 android -- 蓝牙 bluetooth (三)搜索蓝牙
接上篇打开蓝牙继续,来一起看下蓝牙搜索的流程,触发蓝牙搜索的条件形式上有两种,一是在蓝牙设置界面开启蓝牙会直接开始搜索,另一个是先打开蓝牙开关在进入蓝牙设置界面也会触发搜索,也可能还有其它触发方式,但最后都要来到BluetoothSettngs.java的startScanning(),我们分析的起点也从这里开始,起步代码如下[cpp] view plaincopy
2014-05-28 23:24:00
1099
1
转载 android -- 蓝牙 bluetooth (二) 打开蓝牙
4.2的蓝牙打开流程这一部分还是有些变化的,从界面上看蓝牙开关就是设置settings里那个switch开关,widget开关当然也可以,起点不同而已,后续的流程是一样的。先来看systemServer.java的代码,蓝牙服务开启的地方,最后一个else分支是我们关心的,前两个是模拟器的一个测试模式的。[java] view plaincopy
2014-05-28 23:14:45
1337
1
转载 android -- 蓝牙 bluetooth (一) 入门
前段时间在 网上看了一些关于android蓝牙的文章,发现大部分是基于老版本(4.1以前含4.1)的源码,虽然无碍了解蓝牙的基本原理和工作流程,但对着4.2.2的代码看起来总是有些遗憾。所以针对4.2.2版本代码整理下相关知识,当然蓝牙工作的主干流程是没有变的,上电、加载驱动这些动作少不了的,只是这些功能的实现代码位置变了不少。希望本文可以让大家对android4.2的蓝牙部分代码有一个初步的了解
2014-05-28 23:13:45
958
转载 Android 4.4 蓝牙解析(一)
首先我们都知道蓝牙第一步是上电,但是android4.4蓝牙上电部分的代码实际已经和android4.3不一样了。android4.3蓝牙os是走system/bluetooth,但是android4.4走的是hardware/libhardware和external/bluetooth/,具体请看下面:Bluetooth.h(hardware/libhardware/in
2014-05-28 23:09:52
2100
转载 Android4.2蓝牙基础架构学习
本文不会涉及任何代码,主要对整个Android的蓝牙结构进行一个框架上的分析。Android4.2使用了Bluetooth.apk管理所有蓝牙相关的操作,Bluedroid作为蓝牙协议栈。整个蓝牙的关系架构如下图所示:下面逐一进行讲解:Applications:Android蓝牙应用程序,就是使用了蓝牙的API的程序java Framework:提供给应
2014-05-28 22:45:58
955
转载 ANDROID Bluetooth
BluetoothIN THIS DOCUMENTImplementing the HALCustomizing the BlueDroid StackAndroid provides a default Bluetooth stack, BlueDroid, that is divided into two layers: The Bluetooth
2014-05-28 22:27:43
874
转载 Android同步类:Mutex和Condition
Android提供了两个封装好的同步类,它们是Mutex和Condition。这是重量级的同步技术,一般内核都会有对应的支持。另外,OS还提供了简单的原子操作,这些也算是同步技术中的一种。下面分别来介绍这三种东西。1. 互斥类—MutexMutex是互斥类,用于多线程访问同一个资源的时候,保证一次只有一个线程能访问该资源。在《Windows核心编程》①一书中,对于这种互斥访问有一个很形象的
2014-04-14 20:18:10
643
转载 Android Stagefright MPEG4Writer分析
基础知识:MP4文件格式详解http://download.csdn.net/detail/liwendovo/4970682系统:Android4.2.1工具:mp4info,winhex,QTAtomViewerMPEG4Writer路径:Android4.2/frameworks/av/media/libstagefright/MPEG4Writer.cppMPEG4Wr
2014-04-14 20:11:40
2390
转载 Android ANR
1)什么引发了ANR?在Android里,应用程序的响应性是由Activity Manager和WindowManager系统服务监视的。当它监测到以下情况中的一个时,Android就会针对特定的应用程序显示ANR:在5秒内没有响应输入的事件(例如,按键按下,屏幕触摸)BroadcastReceiver在10秒内没有执行完毕一个ANR对话框显示给用户2)如何避免
2013-06-27 15:29:01
1182
1
转载 Linux 同步方法剖析
简介: 在学习 Linux® 的过程中,您也许接触过并发(concurrency)、临界段(critical section)和锁定,但是如何在内核中使用这些概念呢?本文讨论了 2.6 版内核中可用的锁定机制,包括原子运算符(atomic operator)、自旋锁(spinlock)、读/写锁(reader/writer lock)和内核信号量(kernel semaphore)。 本文还探
2013-06-20 11:19:52
619
转载 讲Linux下面线程的操作、多线程的同步和互斥相关函数及操作的文章链接
Linux多线程编程(不限Linux)http://www.cnblogs.com/skynet/archive/2010/10/30/1865267.htmlLinux多线程编程详细解析----条件变量 pthread_cond_thttp://blog.csdn.net/sunboy_2050/article/details/6031723pthread
2013-06-20 11:16:20
590
转载 linux3
linux C程序员 经典面试题一 想成为嵌入式程序员应知道的10个基本问题:预处理器(Preprocessor)1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情:1) #define 语法的基本知识(例如:不能以分号
2013-06-18 10:30:21
1090
转载 Linux基础2
1.1 【001】:vi编辑器中插入一空行是什么命令?在当前行前插入空行:进入指令模式后按O;在当前行后插入空行:进入指令模式后按o。1.2 【002】:vi中替换字符串的命令?进入指令模式,输入 :s/查找字符串/替换后的字符串/1.3 【003】:linux中的别名如何实现?使用alias命令设置,例如:alias ‘ls=ls –l
2013-06-18 10:28:18
631
转载 linux基础
选择题 1.关闭linux系统(不重新启动)可使用命令 B 。A Ctrl+Alt+Del B halt C shutdown -r now D reboot2.实现从IP地址到以太网MAC地址转换的命令为: C 。A ping B ifconfig C arp D traceroute3.在vi编辑器中的命令模式下,键入 B 可在光标当前所在行下添加一新行。A ; B ;
2013-06-18 10:19:58
931
转载 linux基础知识
一.填空题: 1. 在Linux系统中,以 文件 方式访问设备 。 2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统。 3. Linux文件系统中每个文件用 i节点 来标识。 4. 全部磁盘块由四个部分组成,分别为引导块 、专用块 、 i节点表块 和数据存储块。 5. 链接分为: 硬链接 和 符号链接 。 6. 超级块包含了i节点
2013-06-18 10:12:31
681
转载 Notification与NotificationManager详细介绍
在Android系统中,发一个状态栏通知还是很方便的。下面我们就来看一下,怎么发送状态栏通知,状态栏通知又有哪些参数可以设置? 首先,发送一个状态栏通知必须用到两个类:NotificationManager、Notification。 NotificationManager:是状态栏通知的管理类,负责发通知、清楚通知等。 NotificationManager是一个系统Service,
2013-06-14 16:51:32
547
转载 Android菜鸟开发之蓝牙(Bluetooth)---设置应用源码分析
BluetoothDevicePreference.java顾名思义,蓝牙设备首选项,也就是蓝牙设备的配置信息,比如是否连接,是否配对,是否可见等等。该类继承了preference类,主要是提供获取蓝牙设备及通知蓝牙设备配置信息变化。 BluetoothDiscoverableEnabler.java蓝牙搜索UI逻辑处理,包括搜索暂停,搜索恢复,及蓝牙开启关闭时的蓝牙搜索处理,以及
2013-06-14 16:01:09
1912
转载 什么是可重入函数和不可重入函数
可重入函数 在 实时系统的设计中,经常会出现多个任务调用同一个函数的情况。如果这个函数不幸被设计成为不可重入的函数的话,那么不同任务调用这个函数时可能修改其他任 务调用这个函数的数据,从而导致不可预料的后果。那么什么是可重入函数呢?所谓可重入是指一个可以被多个任务调用的过程,任务在调用时不必担心数据是否会 出错。不可重入函数在实时系统设计中被视为不安全函数。
2013-06-13 00:38:44
561
转载 typedef使用大全(指向函数的指针)
在typedef的使用中,最麻烦的是指向函数的指针,如果没有下面的函数,你知道下面这个表达式的定义以及如何使用它吗?int (*s_calc_func(char op))(int, int);如果不知道,请看下面的程序,里面有比较详细的说明// 定义四个函数int add(int, int);int sub(int, int);int mul(int, int);i
2013-06-12 23:25:45
591
转载 c编译过程
编译的概念:编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。 编译的完整过程:C源程序-->预编译处理(.c)-->编译、优化程序(.s、.asm)-->汇编程序(.obj、.o、.a、.ko)-->链接程序(.exe、.elf、.axf等)1.
2013-06-08 01:39:39
705
IPC analysis on android with a demo (基于IPC实例分析android IPC机制)
2012-08-24
关于.android_secure/和/mnt/asec的问题求助
2015-08-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人