- 博客(33)
- 资源 (6)
- 收藏
- 关注
原创 ACC编码
AAC是新一代的音频有损压缩技术,它通过一些附加的编码技术(比如PS,SBR等),衍生出了LC-AAC,HE-AAC,HE-AACv2三种主要的编码,LC-AAC就是比较传统的AAC,相对而言,主要用于中高码率(>=80Kbps),HE-AAC(相当于AAC+SBR)主要用于中低码(<=80Kbps),而新近推出的HE-AACv2(相当于AAC+SBR+PS)主要用于低码率(&l...
2018-08-10 17:06:46 6289 1
原创 rtmp2 rtmp中的h264解析
tag 为video的数据(0x09)负载数据,如果AVCPacketType=0x00,为AVCDecorderConfigurationRecord;如果AVCPacketType=0x01,为NALUs;如果AVCPacketType=0x02,为空。 如果AVCPacketType=0x01,为NALUs17 -- 和上面的一样。 01 -- AVC NAL...
2018-08-08 16:17:45 654
原创 rtmp1 flv格式解析
flv的组成 FLV是一个二进制文件,简单来说,其是由一个文件头(FLV header)和很多tag组成(FLV body)。tag又可以分成三类:audio,video,script,分别代表音频流,视频流,脚本流,而每个tag又由tag header和tag data组成。1 flv header文件头由9bytes组成 前3个bytes是文件类型,总是“F...
2018-08-08 15:02:48 1524
原创 linphone 分析4 接电话分析
case EXOSIP_CALL_INVITE:表示收到了一个呼叫的消息。执行:inc_new_call(Sal *sal, eXosip_event_t *ev); static void inc_new_call(Sal *sal, eXosip_event_t *ev){SalOp *op=sal_op_new(sal);osip_from_t *from,*to;
2016-07-13 11:11:11 2479 1
原创 linphone 分析3 打电话源码分析
lpc_cmd_call(LinphoneCore *lc, char *args){if ( ! args || ! *args ){return 0;}{LinphoneCall *call;LinphoneCallParams *cp=linphone_core_create_default_call_parameters (lc);char *opt1,
2016-07-13 11:10:10 2603
原创 linphone 编译
build_3rdlib.sh for i in $THIRDPARTY_PACKAGESdoPackagePath=$CHKOUT_PATH/$i if [ -d $PackagePath ] ; then cd $PackagePathecho "Building third-party libraries" $i " ..."./b
2016-06-16 10:01:45 548
原创 linphone 分析2 接电话的过程1(mediastream角度解析)
做楼宇对讲的项目,需求电话来了直接看到视频,接听后产生语音。于是研究了下liphone接电话的过程函数调用为:lpc_cmd_answer 接到电话以后,answer命令接听linphone_core_accept_calllinphone_core_accept_call_with_paramsif (call==NULL){
2016-02-19 10:57:29 1901
原创 linphone 分析1 linphone的架构和初始化
1.linphone 包含的库1 ReadLine 一个终端显示库, Linphone 会用到它时里面的事件循环机制来读取会话事件。2 ffmpeg 音视频编解码库3 Speex 专为通话过程设计的音频编码库4 libtheora 视频压缩编码库5 libfaac mpeg4 的音频编码器6 libfaad2 AAC 音频解码器7 SDL 简单的视频支持层8
2015-12-30 17:19:27 4439
原创 linphone 分析 序
从开始做楼宇对讲起,接触linphone这套代码快两年了。一直以来都是东搞搞西看看,要改什么地方或者需要看什么地方才去学习,所以资料也比较乱。最近做的东西也比较杂,有时做着做着心里都比较乱了,所以下了决心准备好好分析一下linphone这套陪伴我两年的代码。突然之间面对这么一大堆这库那库,心里还是有点小怕怕的,感觉工程浩大,真的需要很多时间来做这件事情。但是我觉得值得,也应该坚持做完。所以准备写一
2015-12-30 11:16:02 781
转载 linux内核input子系统解析
今天看touch screen 驱动架构 触摸屏------TI2007(ADC)-----------I2C----------INPUT-------TSLIB-------应用程序。 主要查看了 INPUT子系统如果把 驱动抓到的x y坐便传到应用程序重的 Android、X windows、qt等众多应用对于linux系统中键盘、鼠标、触摸屏等
2015-04-01 16:39:16 285
原创 linux dup用法
最近看到 MAC-TELENET 里面有段代码 重新定向 登录后的 标准输入输出如下:close(0);dup(curconn->slavefd);printf("curconn->slavefd2 = %d\n",curconn->slavefd);close(1);dup(curconn->slavefd);printf("curconn->slavef
2014-12-22 14:42:39 959
转载 音频编程接口
三、编程接口如何对各种音频设备进行操作是在Linux上进行音频编程的关键,通过内核提供的一组系统调用,应用程序能够访问声卡驱动程序提供的各种音频设备接口,这是在Linux下进行音频编程最简单也是最直接的方法。3.1 访问音频设备无论是OSS还是ALSA,都是以内核驱动程序的形式运行在Linux内核空间中的,应用程序要想访问声卡这一硬件设备,必须借助于 Linux内核所提供的
2014-12-03 17:27:04 1168
原创 双缓冲 framebuffer 切换
双缓冲机制最早解释多缓冲区如何工作的方式,是通过一个现实生活中的实例来解释的。在一个阳光明媚的日子,你想将水池里的水换掉,而又找不到水管的时候,你就只能用木桶来灌满水池。当木桶被水龙头注满的,关掉水龙头,走到水池旁边,将水到进去,然后走回到水龙头旁边继续重复上述工作,如此往复直到将水池灌满。这就类似单缓冲工作过程。当你想将木桶里的水倒出的时候,你必须关掉水龙头。现在假设你用两个木桶
2014-11-05 17:19:20 8550 4
转载 linux socket read 阻塞
read函数只是一个通用的读文件设备的接口。是否阻塞需要由设备的属性和设定所决定。一般来说,读字符终端、网络的socket描述字,管道文件等,这些文件的缺省read都是阻塞的方式。如果是读磁盘上的文件,一般不会是阻塞方式的。但使用锁和fcntl设置取消文件O_NOBLOCK状态,也会产生阻塞的read效果。怎么样以非阻塞的方式从管道中读取数据?因为我用read函数时,如果管道没有数据就会阻塞住
2014-10-25 09:17:04 1058
原创 linphone 流程
lc->video_conf.display lc->video_conf.capture打电话的过程:lpc_cmd_calllinphone_core_invite_with_paramslinphone_core_invite_address_with_paramslinphone_core_start_invite
2014-09-25 16:47:46 1344
转载 linphone filter
linphone是一个轻量级voip客户端,linphone的架构设计十分的清晰,其底层音视频引擎mediastream2是一个独立的模块,基于它可以很容易的实现各种音视频的应用。linphone 整体架构介绍http://www.linphone.org/eng/documentation/dev/linphone拥有自己的用户接口和核心引擎(音频/视频引擎),允许在相同
2014-09-22 19:09:41 1973
转载 linphone 内部线程分析
以下分析基于我内部修改过的linphone版本。linphone包含了sip协议解析,多媒体编解码和rtp传输等功能,这些功能是通过不同的组件分工合作完成的,下面我就来分析下linphone生命中出现过的那些线程。 第一个登场的当然是主线程,也就是ui线程,通常可认为是一个Activity,这个Activity主要负责界面的绘制、linphone内核库的初始化以
2014-09-22 16:16:19 446
转载 alsa 应用编写
Alsa是Linux高级音频接口。面对众多的音频设备,Alsa为Linux音频开发人员提供了一套标准的访问机制,使得音频开发变得十分容易。不信?下面我们就利用它编写一个简单的录音/播音程序,不过这需要你有一定的计算机语言基础。一个典型的音频程序应该具有以下结构:打开音频设备为设备设置读写参数向音频设备读/写音频数据关闭设备Alsa库为我们实现这些操作
2014-09-19 15:34:12 359
转载 v4l
2.Video4linux下视频编程的流程(1)打开视频设备:(2) 读取设备信息(3)更改设备当前设置(没必要的话可以不做)(4)进行视频采集,两种方法: a.内存映射 b.直接从设备读取(5)对采集的视频进行处理(6)关闭视频设备。为程序定义的数据结构typedef struct v4l_struct { i
2014-09-09 14:14:31 552
转载 sip 协议
在继续学习 FreeSWITCH 之前我们有必要来学习一下 SIP 协议,因为它是 FreeSWITCH 的核心。但即使如此,讲清楚 SIP 必然需要很大篇幅,本书是关于 FreeSWITCH 的,而重点不是 SIP。因此,我将仅就理解 FreeSWITCH 必需的一些概念加以通俗的解释,更严肃一些的请参阅其它资料或 RFC(Request For Comments)。SIP 的概念和
2014-09-02 11:11:45 742 1
转载 SIP呼叫流程典型流程图解及其详细解释
1.注册流程:2.注销流程:3. 基本呼叫建立过程:4. 会话更改流程:5. 正常呼叫释放过程:6. 被叫忙呼叫释放:7.被叫无应答流程一:8.被叫无应答流程二:9.遇忙呼叫前转:10.无应答呼叫前转流程:11.呼叫保持:12.呼叫等等: 1.注册流程: 2.注销流程:
2014-08-27 11:22:54 587
转载 视频压缩基础普及:I, P, B-frame, 宏块, 帧内(间)压缩等
原理 从本质上来说,视频就是一种彩色像素点的三维排列。 其中两个维度反映画面在空间上(水平和垂直)的运动方向,另一维度则反映时间域。 数据帧是指某一时间点下的一组像素点。简单说,一帧就是一副静止画面。 视频数据中必然会包含一些有关空间和时间的重复数据。 因此只要通过记录一帧中(空间差别)或几帧之间(时间差别)的差别,就可以对相同之处统一编码。这种基于空间差
2014-08-14 15:52:11 2322
转载 alsa 移植
准备工作内核版本:由menuconfig配置文件TOP6410_3d.config编译所得内核2.6.28.6(使用老版28内核或使用默认menuconfig配置文件编译会出现alsa录音没有声音的问题)文件系统版本:老版光盘中的ubifs即可alsa-lib版本:1.0.9alsa-util版本:1.0.9a其他版本的alsa-lib和alsa-util不
2014-07-31 09:51:04 478
转载 linux内核 bus driver device
一、总线、设备和驱动函数在/sys/中的框架首先要写三个函数,bus.c、device.c和driver.c。这几个函数其实就是上一节函数的精简版,去掉属性文件的创建,仅仅保留创建和注销操作。第一个函数是bus.c,加载模块会创建了一条名叫usb的总线,总线目录放在/sys/bus/目录下:/*8th_devModule_2/1st/bus.c*/6 s
2014-07-11 15:49:07 490
原创 spi flash的挂载
设置完menuconfig后发现只出现cat /proc/devices Block devices: 1 ramdisk259 blkext 7 loop 8 sd 31 mtdblock
2014-07-10 15:35:09 2979
原创 probe参数 request_irq
probe参数 是对应drive中的类容http://blog.csdn.net/xiafeng1113/article/details/8474612
2014-06-24 15:30:31 871
原创 文件系统 busybox and initramfs
1.busybox制作根文件系统http://wenku.baidu.com/link?url=h2m_xrj6OsLiHVVhMY2e0C7WKikw_H3dZY_b4mUiW1E7AEf_q34NUUAUK6VoqnMaCow57pxEwTefYNU8WldKMyDL9uarTNSyxKsJ-hmOpq_
2014-06-04 16:14:26 1009
H264BSAnalyzer.rar
2020-01-15
N3292x Design Guide
2017-11-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人