2018年9月14日
摘要: 搬移部分文章到CSDN 阅读全文
posted @ 2018-09-14 14:22 竞击 阅读(103) 评论(0) 推荐(0) 编辑
  2015年1月5日
摘要: ios没有直接得api用来封装传输rtp,但是经常有用到得接收过来得音视频数据,经过X264处理转换便可以封装为Rtp包进行直接发送。大家可以看代码: 1 #include "rtpsession.h" 2 3 02. #include "rtppacket.h" 4 5 03. #includ... 阅读全文
posted @ 2015-01-05 17:19 竞击 阅读(1046) 评论(0) 推荐(0) 编辑
摘要: main函数流程分析,分本地和网络两种情况1. 本地文件的播放,以mp3文件的播放为例,命令行输入:mplayer test.mp3 只给出关键步骤2. open_stream, 打开文件流 open_stream_full 找到合适的打开文件的方式,对于本地文件选择 open_stream_... 阅读全文
posted @ 2015-01-05 17:12 竞击 阅读(247) 评论(0) 推荐(0) 编辑
  2012年9月18日
摘要: 不知是什么时候在网上找到一篇文章,说实话,确实不错。至于作者之类的,在网络这个神奇的地方,也无从考证了。也就贴一些写得比较好的地方吧。软件开发的困难在哪里?对于这个问题,不同的人有不同的答案,同一个人在不同职业阶段也会有不同的答案。作为一个系统程序员来说,我认为软件开发有两大难点:一是控制软件的复杂度。 软件的复杂度越来越高,而人类的智力基本保持不变,如何以有限的智力去控制无限膨胀的复杂度?我经历过几个大型项目,也分析 过不少现有的开源软件,我得出一个结论:没有单个难题和技术细节是我们无法搞定的,而所有这些问题出现在一个项目中时,其呈指数增长的复杂度往往让我们束手无策。二是隔离变化。 ... 阅读全文
posted @ 2012-09-18 15:48 竞击 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 0.与柏拉图为友,与亚里斯多德为友,更与真理为友。1.此刻打盹,你将做梦;而此刻学习,你将圆梦。2.我荒废的今日,正是昨日殒身之人祈求的明日。3.觉得为时已晚的时候,恰恰是最早的时候。4.勿将今日之事拖到明日。5.学习时的苦痛是暂时的,未学到的痛苦是终生的。6.学习这件事,不是缺乏时间,而是缺乏努力。7.幸福或许不排名次,但成功必排名次。8.学习并不是人生的全部。但,既然连人生的一部分——学习也无法征服,还能做什么呢?9.请享受无法回避的痛苦。10.只有比别人更早、更勤奋地努力,才能尝到成功的滋味。11.谁也不能随随便便成功,它来自彻底的自我管理和毅力。12.时间在流逝。13.现在淌的口水,将 阅读全文
posted @ 2012-09-18 15:20 竞击 阅读(124) 评论(0) 推荐(0) 编辑
摘要: /****************************************************作 者*联系方式:*说 明 :强制转换的研究-(1)***************************************************/在编写网络相关程序时,C语言精髓的体现第一精髓就是指针的使用,第二精髓就是强制转换的使用,恰当地利用指针和强制转换不但可以提供程序效率,而且使程序更加之简洁,由于强制转换在C 语言编程中占有重要的地位,下面将已五个比较典型的例子作为讲解。例子1:将带符号字节整型转换为无符号字节整型1 UINT8 a=0;2 INT8 b=-3;3 a= 阅读全文
posted @ 2012-09-18 15:19 竞击 阅读(255) 评论(0) 推荐(1) 编辑
摘要: 抽象数据类型简介抽象数据类型是数据结构的一种应用形式。与普通数据类型相似,抽象数据类型由类型描述(例如取值范围)和操作集合共同定义。例如,普通的整型数据类型由整数的取值范围和整数能参与的一系列加减乘除运算共同定义:unsinged char的取值范围是0~255,其操作集合为“+、-、*、/、&、|、~……”。抽象数据类型是由一类数据结构及相关操作函数构成。例如,我们可以将存储和表达环形队列的数据缓冲以及访问指针封装成结构体类型,此时该结构体类型与相关的队列操作函数就构成了环形队列的抽象数据类型。值得一提的是,如果我们将队列初始化、释放和访问的函数以函数指针的形式存储在抽象数据类型的结 阅读全文
posted @ 2012-09-18 14:49 竞击 阅读(1060) 评论(0) 推荐(0) 编辑
摘要: 尾端 (Endianness)尾端由Danny Cohen(Cohen 1980)由一篇论文引入计算机界,作者注意到计算机体系结构基于字节寻址和整数定义在通信系统中的不同定义分为“大尾端”(Big-endian)和“小尾端”(Little-endian)两个阵营。一个十六进制整形数据0x12345678传递给另外一个采用不同尾端的计算机系统时可能会被理解为0x78563412甚至0x1E6A2C48。这就是尾端命题。尾端直接决定着数据在存储器内的组织形式。地址空间 (Address Space)存储器中,由存储单元地址或集合所构成的集合称为地址空间。线性地址空间 (Linear Address 阅读全文
posted @ 2012-09-18 14:24 竞击 阅读(733) 评论(0) 推荐(0) 编辑
摘要: 位屏蔽(Bit-mask)法位运算位屏蔽法位运算是一种使用二进制掩码配合算术逻辑运算(与运算“&”、运算“|”、非运算“~”和异或运算“^”)进行的位运算。这种方法不存在大/小端系统兼容性问题。位域(Bit-field)法位运算位域法位运算是一种使用位域配合算术逻辑运算进行位运算的方法。其使用收到存储器大/小端排列方式以及内存地址对其方式的影响,兼容性较差。标准变量类型由于C的基本变量类型并没有规定int型变量的长度,因此,在某些平台中int型变量长度为16位、某些平台是32位。为了解决C语言代码移植时int型变量宽度问题带来的不确定性,ANSI-C在C99标准中加入了一个头文件std 阅读全文
posted @ 2012-09-18 14:16 竞击 阅读(575) 评论(0) 推荐(0) 编辑
  2012年9月17日
摘要: 关于typedef的使用,我们的教科书,真神奇,竞然只给出了一个很模棱两可的定义与几个简单使用的例子,先不感叹作者的负责与不负责,至少这样的教科书会对我们造成很多的困扰,最近在使用typedef时,想仔细看个究竟,国内的网络真是太强大了,千篇一律的转载,没一个能看懂的,难道我的理解力有问题?基础的用法都说得清楚,因为教材上也是这样说的,至于更深层次的,似乎都是遮遮掩掩,没几个说清楚的,包括某著名搜索引擎,其实找来找去原来都是从那转载过去的,可见国内网络上的有些东西是很不负责任的,作者纯粹为发博客而博客。因此,很多初学者对其的理解仅仅局限于:typedef主要用来定义一个已有类型的“别名(al. 阅读全文
posted @ 2012-09-17 18:09 竞击 阅读(211) 评论(0) 推荐(0) 编辑