小张慢慢成了老张

导航

2013年4月12日 #

Linux操作系统下的多线程编程详细解析----条件变量

摘要: 1.初始化条件变量pthread_cond_init#include <pthread.h>int pthread_cond_init(pthread_cond_t *cv,const pthread_condattr_t *cattr);返回值:函数成功返回0;任何其他返回值都表示错误初始化一个条件变量。当参数cattr为空指针时,函数创建的是一个缺省的条件变量。否则条件变量的属性将由cattr中的属性值来决定。调用 pthread_cond_init函数时,参数cattr为空指针等价于cattr中的属性为缺省属性,只是前者不需要cattr所占用的内存开销。这个函数返回时,条件变 阅读全文

posted @ 2013-04-12 18:49 小张慢慢成了老张 阅读(169) 评论(0) 推荐(0) 编辑

2013年4月9日 #

线程池的介绍及简单实现

摘要: 转载自http://www.ibm.com/developerworks/cn/java/l-threadPool/,仅用于学习,若有侵权,请及时联系本人删除!线程池的技术背景在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对象创建和销毁。如何利用已有对象来服务就是一个需要解决的关键问题,其实这就是一些"池化资源"技术产生的原因。比如大家所熟悉的数据库连接池正是 阅读全文

posted @ 2013-04-09 15:04 小张慢慢成了老张 阅读(196) 评论(0) 推荐(0) 编辑

2013年4月2日 #

x264编码详细文字全过程

摘要: x264编码详细文字全过程(1) x264_param_default( x264_param_t *param )作用: 对编码器进行参数设定cqm:量化表相关信息 csp: 量化表相关信息里的memset( param->cqm_4iy, 16, 16 ); memset( param->cqm_4ic, 16, 16 ); memset( param->cqm_4py, 16, 16 ); memset( param->cqm_4pc, 16, 16 ); memset( param->cqm_8iy, 16, 64 ); memset( param-> 阅读全文

posted @ 2013-04-02 17:09 小张慢慢成了老张 阅读(1467) 评论(1) 推荐(1) 编辑

x264源代码分析(转载)

摘要: 相关说明:1. 使用版本: x264-cvs-2004-05-112. 这次的分析基本上已经将代码中最难理解的部分做了阐释,对代码的主线也做了剖析,如果这个主线理解了,就容易设置几个区间,进行分工阅读,将各个区间击破了.3. 需要学习的知识:a) 编码器的工作流程.b) H.264的码流结构,像x264_sps_t,x264_pps_t等参数的定义基本上都完全符合标准文档中参数集的定义,抓住主要参数,次要参数也应该有所了解.c) 数学知识,对dct变换等与数学相关的知识的编程实现要有较好理解.d) C语言的知识.涉及到c语言的较多不经常用的特性,如函数指针数组,移位运算,结构体的嵌套定义等.e 阅读全文

posted @ 2013-04-02 16:47 小张慢慢成了老张 阅读(928) 评论(0) 推荐(0) 编辑

2013年3月19日 #

gprof——GNU性能分析工具

摘要: gprof是GNU profiler工具。可以显示程序运行的“flat profile”,包括每个函数的调用次数,每个函数消耗的处理器时间。也可以显示“调用图”,包括函数的调用关系,每个函数调用花费了多少时间。还可以显示“注释的源代码”,是程序源代码的一个复本,标记有程序中每行代码的执行次数。为gprof编译程序在编译或链接源程序的时候在编译器的命令行参数中加入“-pg”选项,编译时编译器会自动在目标代码中插入用于性能测试的代码片断,这些代码在程序在运行时采集并记录函数的调用关系和调用次数,以及采集并记录函数自身执行时间和子函数的调用时间,程序运行结束后,会在程序退出的路径下生成一个gmon. 阅读全文

posted @ 2013-03-19 11:07 小张慢慢成了老张 阅读(320) 评论(0) 推荐(0) 编辑

2013年1月22日 #

rc.local介绍(linux启动系列之一)

摘要: 摘自http://www.cnblogs.com/diyunpeng/linux有自己一套完整的启动体系,抓住了linux启动的脉络,linux的启动过程将不再神秘。本文中假设inittab中设置的init tree为:/etc/rc.d/rc0.d/etc/rc.d/rc1.d/etc/rc.d/rc2.d/etc/rc.d/rc3.d/etc/rc.d/rc4.d/etc/rc.d/rc5.d/etc/rc.d/rc6.d/etc/rc.d/init.d目录1. 关于linux的启动2. 关于rc.d3. 启动脚本示例4. 关于rc.local5. 关于bash启动脚本6. 关于开机程序的 阅读全文

posted @ 2013-01-22 15:12 小张慢慢成了老张 阅读(2463) 评论(0) 推荐(0) 编辑

2012年12月28日 #

RTSP简介

摘要: RTSP是由Real network 和Netscape共同提出的如何有效地在IP网络上传输流媒体数据的应用层协议。实时流协议(RTSP)建立并控制一个或几个时间同步的连续流媒体,如音频和视频。尽管连续媒体流与控制流交叉是可能的,RTSP 本身并不发送连续媒体流。换言之,RTSP 充当多媒体服务器的网络远程控制。RTSP 提供了一个可扩展框架,实现实时数据(如音频与视频)的受控、按需传送。数据源包括实况数据与存储的剪辑。RTSP 用于控制多个数据发送会话,提供了选择发送通道(如 UDP、组播 UDP 与 TCP 等)的方式,并提供了选择基于 RTP 的发送机制的方法。目前还没有 RTSP 连接 阅读全文

posted @ 2012-12-28 17:37 小张慢慢成了老张 阅读(1113) 评论(0) 推荐(0) 编辑

2012年10月25日 #

视频播放的基本原理

摘要: 当初看VLC代码花了不少时间,其中很大的原因是不太了解视频播放的基本原理。现在看来,几乎所有的视频播放器,如VLC、MPlayer、Xine,包括DirectShow,在播放视频的原理和架构上都是非常相似的,理解这个对理解VLC的源码会有事半功倍的效果。 大致的来说,播放一个视频分为4个步骤: 1. acess 访问,或者理解为接收、获取、得到 2. demux 解复用,就是把通常合在一起的音频和视频分离(还有可能的字幕) 3. decode 解码,包括音频和视频的解码 4. output 输出,也分为音频和视频的输出(aout和vout) 拿播放一个UDP组播的MPEG TS流来说吧,acc 阅读全文

posted @ 2012-10-25 16:47 小张慢慢成了老张 阅读(640) 评论(0) 推荐(0) 编辑

2012年6月16日 #

一种链表的实现

摘要: 从别人博客总结而来的,主要是受到内核中链表的启发。与常见的链表不同的,这种链表将节点和数据独立: struct list_head { struct list_head *prev,*next; }; struct entry { struct list_head* list; type data; }; 用节点做为遍历的iterator,来处理数据。这样做很好得解决了一个问题,那就是如何使一个链表的实现能独立于数据。不同是数据type就不同,按以往的方式,一种数据就得实现一套链表处理。C++中用模板来解决,而内核链表是C,用这种方法来解决。 数据在... 阅读全文

posted @ 2012-06-16 10:40 小张慢慢成了老张 阅读(130) 评论(0) 推荐(0) 编辑

2012年5月30日 #

需要知道的 16 个 Linux 服务器监控命令/工具(转载)

摘要: 如果你想知道你的服务器正在做干什么,你就需要了解一些基本的命令,一旦你精通了这些命令,那你就是一个 专业的 Linux 系统管理员。有些 Linux 发行版会提供 GUI 程序来进行系统的监控,例如 SUSE Linux 就有一个非常棒而且专业的工具 YaST,KDE 的 KDE System Guard 同样很出色。当然,要使用这些工具,你必须在服务器跟前进行操作,而且这些 GUI 的程序占用了很多系统资源,所以说,尽管 GUI 用来做基本的服务器健康状态监测挺好,但如果你想知道真正发生什么,请关掉 GUI 开始命令行之旅吧。你应该只在需要的时候去启动 GUI ,不用的时候关掉它。如果要让服 阅读全文

posted @ 2012-05-30 16:30 小张慢慢成了老张 阅读(197) 评论(0) 推荐(0) 编辑