代码改变世界

FFMpeg笔记(一) 使用FFmpeg将任意格式图片转换成任意格式图片

2017-03-05 14:31 by Shdjgrwjdbd, 7212 阅读, 0 推荐, 收藏,
摘要:注意转换的宽高不能搞错,否则非但不能转换正确,还有可能crash。附调试用的保存图片函数DumpImage,可以使用该函数查看原始数据是否正确或者格式转换是否成功: char *pBmpFile = "DumpTest.bmp"; DumpBmp(pBmpFile, (uint8_t*)&buffe 阅读全文

测试Protobuffer的定义格式对其时间和空间的影响

2017-03-03 18:15 by Shdjgrwjdbd, 587 阅读, 0 推荐, 收藏,
摘要:测试Protobuffer格式的A命令转换为std::string的的字节个数,分别测试了工程中用到的几种命令: a)AddLayer:108 b)AddSource:209 c)MoveLayer:44 d)DeleteLayer:48 e)ClearScreen:36 但是实际应用时是以B命令接 阅读全文

如何求出数组中最小(或者最大)的k个数(least k问题)

2017-02-13 22:40 by Shdjgrwjdbd, 2695 阅读, 0 推荐, 收藏,
摘要:输入n个整数,如何求出其中最小的k个数? 解法1. 当然最直观的思路是将数组排序,然后就可以找出其中最小的k个数了,时间复杂度以快速排序为例,是O(nlogn); 解法2. 借助划分(Partition)的思路,一次划分可以把枢轴使得枢轴左边的元素都比枢轴小,枢轴右边的元素都比枢轴大(可以参考快速排 阅读全文

C++模板元编程

2017-02-10 22:09 by Shdjgrwjdbd, 3283 阅读, 0 推荐, 收藏,
摘要:原理:模板元程序由编译器在编译期解释执行,利用模板特化机制实现编译期条件选择结构,利用递归模板实现编译期循环结构。模板元编程(metaprogramming)意思是,编程系统将会执行我们所写的代码,来生成新的代码,而这些新代码才真正实现了我们所期望的功能。元编程最大的特点在于:某些用户自定义的计算可 阅读全文

算法的泛化过程(摘自《STL源码剖析》)

2017-02-08 22:13 by Shdjgrwjdbd, 1124 阅读, 0 推荐, 收藏,
摘要:将一个叙述完整的算法转化为程序代码,不是什么难事。然而,如何将算法独立与其所处理的数据结构之外,不受数据结构的羁绊呢?换个说法,如何将我们所写的程序算法适用于任何(或者大部分)未知的数据结构(比如array,vector,list等)呢? 关键在于,只要把操作对象的型别加以抽象化,把操作对象的标示法 阅读全文

使用Boost asio实现异步的TCP/IP通信

2017-01-08 21:23 by Shdjgrwjdbd, 17173 阅读, 1 推荐, 收藏,
摘要:可以先了解一下Boost asio基本概念,以下是Boost asio实现的异步TCP/IP通信: 服务器: 客户端: 阅读全文

Boost asio基本概念

2017-01-08 15:36 by Shdjgrwjdbd, 5565 阅读, 0 推荐, 收藏,
摘要:asio库基于操作系统提供的异步机制,采用前摄器模式(Proactor)实现可移植的异步(或同步)IO操作,不需要使用多线程和锁,有效避免多线程编程带来的诸多有害副作用(如竞争,死锁)。 asio封装了操作系统的select、kqueue、poll/epoll、overlapped I/O等机制,实 阅读全文

Boost信号/槽signals2

2017-01-03 20:18 by Shdjgrwjdbd, 10578 阅读, 1 推荐, 收藏,
摘要:信号槽是Qt框架中一个重要的部分,主要用来解耦一组互相协作的类,使用起来非常方便。项目中有同事引入了第三方的信号槽机制,其实Boost本身就有信号/槽,而且Boost的模块相对来说更稳定。 signals2基于Boost里另一个库signals实现了线程安全的观察者模式。signal中一个比较重要的 阅读全文

如何判定一颗树是完全二叉树和满二叉树

2016-12-25 00:23 by Shdjgrwjdbd, 9444 阅读, 0 推荐, 收藏,
摘要:满二叉树:一颗深度为k且有2^k-1个节点的二叉树称为满二叉树; 完全二叉树:对满二叉树的结点进行连续编号,约定编号从根结点起,自上而下,自左至右。深度为k的,有n个结点的二叉树,当且仅当其每一个结点都与深度为k的满二叉树编号从1至n的结点对应时,称为完全二叉树。如图所示: 1. 判定完全二叉树。判 阅读全文

RTP与RTCP协议介绍(转载)

2016-12-24 21:41 by Shdjgrwjdbd, 2307 阅读, 0 推荐, 收藏,
摘要:RTSP发起/终结流媒体、RTP传输流媒体数据 、RTCP对RTP进行控制,同步。RTP中没有连接的概念,本身并不能为按序传输数据包提供可靠的保证,也不提供流量控制和拥塞控制,这些都由RTCP来负责完成。RTSP可以对流媒体提供诸如播放、暂停、快进等操作,它负责定义具体的控制消息、操作方法、状态码等 阅读全文