- 博客(79)
- 资源 (2)
- 收藏
- 关注
原创 NGINX原子操作
nginx实现了一个跨平台的原子操作接口。它分别实现了LIBATOMIC,DARWIN_ATOMIC,GCC_ATOMIC等原子操作。LIBATOMIC是一套平台无关原子操作库。DARWIN_ATOMIC苹果平台原子操作库。GCC_ATOMIC GCC内置的原子操作接口。如果实现了上述任意一种原子操作接口,则定义:#define NGX_HAVE_ATOMIC_
2012-03-23 18:15:07
2876
原创 CURL多线程处理需要注意问题
最近用到CURL,在开启多个线程同时下载,并且又设置了timeout的时候,程序随机报如下段错误。(gdb) bt#0 0x00002ac0a97a2ec2 in ?? () from /usr/lib64/libcurl.so.3#1 0x00002ac0a97a37dd in ?? () from /usr/lib64/libcurl.so.3#2 0x00002ac0a
2012-03-18 10:53:15
6642
原创 nginx HTTP发送数据过程
1. epoll write事件, 执行写数据处理。2. wev->handler回调函数进入:3. 执行写数据回调函数4. 进入写数据回调函数体内5. 真正发送数据的函数
2012-03-07 12:04:03
1473
原创 nginx事件处理过程
1. 首先设置断点:ngx_epoll_process_events at src/event/modules/ngx_epoll_module.c:5752. 请求http://ip3. nginx接收的客户端的请求,进行accept事件处理,调用堆栈如下图。4. accept处理完毕后,进行http的请求处理,如下图:5. 上一步处理完毕后,执行到如
2012-03-06 10:22:06
826
原创 nginx配置文件解析
以启动过程中设置worker_processes的值为例,分析nginx加载配置的过程,代码版本1.1.15。1. 首先创建所有模块配置的上下文,代码调用栈如下:ngx_init_cycle (old_cycle=0xbffff5b0) at src/core/ngx_cycle.c:223调用对应模块的create_conf指针函数创建默认的配置项。由于worker_proc
2012-03-05 18:50:34
862
原创 OMA DRM代理安全性思考
在思考这个问题之前,我们先考虑一下DRM代理的功能是什么?两点:1. 保护数据的安全。2. 执行保护数据安全的算法和流程。这两点可以看出,DRM代理实际是版权管理的规则实现者和执行者,任何想破解数字版权的黑客都要获得DRM的控制权。 怎奈DRM代理运行的环境土壤是不安全的,这给黑客提供了很多的便利。所以要保护DRM代理的安全性,应该从如下几个方面来考虑:
2012-03-01 09:46:47
1023
转载 PKI体系及常见证书
http://blog.chinaunix.net/space.php?uid=23637692&do=blog&id=30579881.PKI体系 1.1 PKI(Public Key Infrastructure,公钥基础架构)PKI是一套以公钥技术为基础、提供安全服务的架构, 由认证机构(CA), 数字证书库, 密钥备份和恢复, 证书作废系统, 应用接口等组成。CA是PK
2012-02-21 17:38:03
1719
转载 一致性哈希算法(Consistent Hashing)
应用场景这里我先描述一个极其简单的业务场景:用4台Cache服务器缓存所有Object。那么我将如何把一个Object映射至对应的Cache服务器呢?最简单的方法设置缓存规则:object.hashCode() % 4。Cache 0:object.hashCode() % 4 == 0Cache 1:object.hashCode() % 4
2012-02-19 21:02:54
807
原创 ROAP协议流程
ROAP协议基于PKI的,流程如下:1.客户端和版权发行者采用ROAP协议进行相互验证,双方都获得了对方的公钥数字证书。2.版权发行者发送版权对象(RO)之前,做如下处理: 采用客户端的公钥对关键数据进行加密; 采用HASH算法,对报文完整性进行鉴别; 采用自己的私钥对报文进行签名。3.DRM Agent接收到版权对象(RO),做如下处理: 采用版权发行者的公钥
2012-02-17 12:17:15
4062
原创 编译Darwin Stream Server6.0.3
wget http://static.macosforge.org/dss/downloads/DarwinStreamingSrvr6.0.3-Source.tarwget http://dss.macosforge.org/trac/raw-attachment/ticket/6/dss-6.0.3.patchwget http://dss.macosforge.org/trac/ra
2012-02-09 17:49:13
1644
转载 Darwin Streaming Server 6.0.3 Introduction
原文链接:http://www.codeproject.com/Articles/41874/Darwin-Streaming-Server-6-0-3-setup-customizationIntroductionDarwin Streaming Server is Apple's open source streaming server for
2012-02-06 21:21:37
2804
原创 ffmpeg打包TS代码分析
最近在研究利用ffmpeg的源码打包TS的问题,将研究的过程记录下来备忘。1. 先测试以下ffmpeg的录制屏幕的功能 ffmpeg -f x11grab -y -r 24 -s 800x600 -i :0.0+100,100 -vcodec mpeg2video -f mpegts ./output.ts ffmpeg -f alsa -i hw:0 -f x11grab -y
2011-12-19 17:37:56
4649
原创 vim标签功能
最近在看代码,由于代码比较庞大,经常由于目录树跟踪的太深,不能快速回到指定位置,于是研究了一下vim的bookmark功能,记录如下:书签 (Mark)书签是vim中非常强大的一个功能,书签分为文件书签跟全局书签。文件书签是你标记文件中的不同位置,然后可以
2011-10-08 16:18:53
5690
原创 EABI和OABI
1。什么是ABIABI,application binary interface (ABI),应用程序二进制接口。既然是 接口,那就是某两种东西之间的沟通桥梁,此处有这些种情况:A. 应用程序 操作系统;B. 应用程序 (应用程序所用到的)库类似于AP
2011-09-02 11:16:42
718
原创 宏定义中#和##
#define A(x) T_##x #define B(x) #@x #define C(x) #x 我们假设:x为1,则有: A(1) ---> T_1 B(1) ---> '1' C(1) ---> "1"
2011-08-22 22:17:52
462
原创 嵌入式开发交叉调试环境搭建
1. wget http://ftp.gnu.org/gnu/gdb/gdb-7.3.tar.bz22. tar -xvf tar -xvf gdb-7.3.tar.bz23. 接下来分2步,第一步编译编译gdb,这个不是宿主机上那个gdb,必须用如下方式编译:# .
2011-08-20 14:37:52
697
原创 数码相机里的光学变焦和数字变焦的区别
【光学变焦要点】光学变焦倍数越大,能拍摄的景物就越远。 一些镜头越长的数码相机,内部的镜片和感光器移动空间更大,所以变焦倍数也更大。我们看到市面上的一些超薄型数码相机,一般没有光学变焦功能,因为其机身内根部不允许感光器件的移动,而像索尼F828、富士S7000这些
2011-08-20 12:00:30
1616
转载 ctags使用详解
一. ctags 是干什么的ctags 的功能:扫描指定的源文件,找出其中所包含的语法元素,并将找到的相关内容记录下来。我用的是 Exuberant Ctags ,在 Windows 上使用,就一个可执行文件,非常绿色,可在 sourceforge
2011-08-13 18:40:33
843
原创 中国内地城市CA分布
地市: 运营商名称: CA厂商:天津: 天津广播电视网络有限公司: CONAX、NDS重庆: 重庆有线电视网络有限公司: NDS/永新同方/DTVIA河北: 河北省广播电视信息网络股份有限公司: Nagra/Conax石家庄: 河北省广播电视信息网络股份有限公
2011-08-07 10:17:45
19787
转载 转篇文章:项目经理和部门经理的区别
管理的认识和理念管理,它是一种什么东西?是一种工具吗,还是一种方法,还是一种思维?如果认为管理只不过是一种工具,那么你的脑袋里就充满了两个字,叫作业。作业就是一套的技术、一套的模式,只要按着去做就是了。如果认为是一种方法,那么基本上是进入了管理的层次,但是如果再提升一点的
2011-08-07 10:15:31
1283
转载 转篇优快云的文章-职场随笔-走好那段路
回望走过的这半年,沟沟坎坎遇到过很多问题,历经各种挫折与困难,终于算告一段落。在这样短暂的时光中,我们郁闷过、痛苦过,也高兴过,几个月的沟沟坎坎,风风雨雨一起蹚过。我怀念这段时光,我享受这风雨中的美丽。几点总结,留此为念:1.路是“蹚”出来的。也许你走过荆棘草丛,走过
2011-08-07 10:12:35
828
原创 #pragma pack 用法详解
1. #pragma pack(show)以警告信息的形式显示当前字节对齐的值.2. #pragma pack(n)将当前字节对齐值设为 n .3. #pragma pack()将当前字节对齐值设为默认值(通常是8) .4. #pragma pack(pu
2011-08-05 17:54:07
2475
1
原创 ISTV中基于HTTP的VOD缺陷分析和优化
1. 流媒体应用项目的介绍 目前应用到ISTV项目的流媒体技术主要有RTSP和HTTP,目前绝大部分项目都是基于HTTP来做在线点播的,只有黄龙项目的在线点播是基于RTSP的,RTSP源来自于华数。2. HTTP应用流媒体分析 严格意义上,基于HTTP的VOD不算是真
2011-07-18 17:37:41
1953
原创 关于CAM卡(大卡)和智能卡(小卡)
最近有同事在问关于大卡的问题,我整理了一下他的问题。1. 什么是大卡,什么是小卡? 大卡就是CAM卡,是基于PCMCIA接口(笔记本扩展接口),小卡就是智能卡。至于大小之分,可能根据体积大小大家都这么习惯称呼了。2. 关于深圳国威的CAM卡介绍见国威的官网:http://w
2011-07-18 17:36:24
12030
原创 Gstreamer part-progress.txt翻译
进度报告------------------ 这篇文章描述了进度报告消息的设计和使用场景。 进度消息被post到总线(BUS)上,用来通知应用程序针对PIPELINE进行的异步操作的进度,不应该与异步状态状态改变混同。 应该满足如下条件:
2011-07-18 17:31:55
1176
原创 Gstreamer 预滚(Preroll)
预滚 翻译自part-preroll.txt预滚(Preroll)----------------- 一个sink元素只有当有一个buffer被缓冲到sink pad里面时,才能够完成到PAUSED状态的改变,这个过程就被称为预滚(Preroll),这样做是为了能够尽快的进
2011-07-18 17:31:16
3641
原创 Gstreamer Segments
Segments 翻译自part-segments.txtSegments---------------------- 一个segment是指媒体流的一部分,一个segment有一个开始时间(start),一个停止时间(stop)和一个处理速率。 一个媒体流有一个起始
2011-07-18 17:30:38
1476
原创 Gstreamer流
Gstreamer流 翻译自part-streams.txtStreams---------------------- 这篇文档描述在流线程中从一个元素传递到另一个元素的对象。Stream objects ~~~~~~~~~~~~~~ 如下的对象可能会出现在流线程中。
2011-07-18 17:30:05
1014
原创 Gstreamer GstPipeline管道
GstPipeline管道 翻译自part-gstpipeline.txtGstPipeline------------------------------ GstPipeline是一个顶级的bin,给所有的子元素提供时钟。 GstPipeline也提供一个顶级的Gs
2011-07-18 17:29:47
3392
原创 Gstreamer时钟
时钟 翻译自part-clocks.txtClocks----------- GstClock用_get_time()返回单调递增的时间,它的精度和base time取决于时钟实现,但总是以纳秒为单位。既然时钟的基线没有被定义,时钟返回的值本身毫无意义,只有两个时钟之间的差
2011-07-18 17:29:22
1790
原创 Gstreamer PUSH和PULL模式
gstreamer PUSH和PULL模式,翻译自part-push-pull.txtPUSH-PULL-------------- 通畅情况下,一个source element用gst_pad_push()方法推送(push)数据到下游的element。下游对应的pad(
2011-07-18 17:28:55
3269
原创 Gstreamer多路流同步
Gstreamer多路流同步(翻译自part-synchronisation.txt) 该篇文档描述了gstreamer多路流的同步技术的概要。 GstPipeline的同步用如下的3个组件完成: 1)GstClock,在GstPipeline中对所有元素来说是
2011-07-18 17:28:33
3334
原创 Gstreamer的PAD激活机制
Gstreamer的PAD激活机制(翻译自part-activation.txt)激活 当状态改变时,PIPELINE将按照从sink->source的顺序设置它的元素的状态。当元素从READY -> PAUSED状态转变时,它们的PAD将被激活来准备处理数据流,一些PAD
2011-07-18 17:28:00
2834
原创 Gstreamer资源
一个简单的播放ts流的demo程序。Fluendo公司提供的gstreamer的插件下载地址http://core.fluendo.com/gstreamer/src/老外怎么那么牛呢,整理得这么好,一些和gstreamer相关的网站http://www.oz9aec.net/i
2011-07-18 17:13:07
1278
原创 Gstreamer分析
1. linux下开源播放器 目前linux下比较出名的播放器有mplayer,vlc,xine,gstreamer,其中mplayer和vlc是两个完整的播放器,xine和gstreamer同为播放器后端,但gstreamer更加灵活。2. gstreamer的优势
2011-07-18 17:09:18
4526
原创 MPlayer视频输出框架分析
最近要在离子二代平台上移植数字电视播放器,采用NVIDIA的VDPAU硬解码,视频输出采用VDPAU,由于VDPAU不光有视频硬解码功能,还有HW Scale的功能,所以可以基于VDPAU做浮动OSD层(频道列表)。源于这个,最近仔细地分析了一下MPlayer的视频输出框架,着重
2011-07-18 17:02:38
3032
原创 编译可单步跟踪调试的mplayer
<br />1. 准备两份mplayer,一份为$MPLAYER-WORK,一份为$MPLAYER- BAK;<br /> <br />2. 执行$MPLAYER-BAK/configure;<br /> <br />3. vim $MPLAYER-WORK/configure,去掉里面所有的优化选项,-O2 -O3 -O4;<br /> <br />4. $MPLAYER-WORK/configure --enable-debug;<br /> <br />5. cp -f $MPLAYER-BAK/co
2010-12-07 10:56:00
1761
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人