- 博客(12)
- 收藏
- 关注
原创 C++的一些基本算法举例
#include <iostream>#include <cstdlib>#include <cstdio>#include <cstring>#include<string>#include<vector>#include<algorithm>#include <map>#include <list>int main(void){ std::vector<in..
2021-05-14 15:22:49
165
原创 c++ 的重要特殊关键字
const关键字常量是固定值,在程序执行期间不会改变int *const p; // 指针是常量,指向的值可以发生改变(const pointer to int)const int p; //p是常量,无法发生改变const int *p; // p的值(指针)可以发生改变,指向的值不能发生改变(pointer to const int)const int *const p; // 指针和值都不能发生改变(const pointer to const int)...
2021-05-12 15:06:19
153
原创 简单线程池的实现
1. 简单版本的#include <iostream>#include <cstdlib>#include <cstdio>#include <string>#include<vector>#include<algorithm>#include <map>#include <queue>#include <sys/types.h>#include <unistd.h>
2021-05-12 11:20:50
98
原创 C++小技巧
C++重点知识小技巧带多态性质的 bass classes 应该声明一个virtual析构函数,如果class带有任何virtual函数,它就应该拥有一个virtual析构函数。 classes的设计目的不是作为base classes使用,或不是为了具备多态性,就不应该声明virtual析构函数,会增加额外的内存空间析构函数绝对不要吐出异常。如果一个被析构函数调用的函数可能抛出异常,析构函数应该捕捉任何异常,然后吞下他们(不传播)或结束程序 ...
2021-05-11 17:24:04
140
原创 TCP拥塞窗口调优方法
拥塞控制主要是四个算法:1)慢启动,2)拥塞避免,3)拥塞发生,4)快速恢复。这里不讲原理,原理谷歌一下有很多讲的非常好的这里只讲一下自己在tcp传输大数据的时候进行的一些网络调优,流量控制的操作。虚拟机的拥塞控制算法默认选择的是cubic, 用这个tcp_congestion_control字段控制。1.禁用慢启动,echo "0" > ecp_slow_stat_after_idle;设置0可以让tcp一直保持在高速传输状态的拥塞窗口。2.设置cwnd的初始值 ..
2021-04-22 09:29:57
1003
原创 I420转NV12格式
分享一个自己写的I420转NV12的函数yuv420图片格式主要有I420、YV12、NV12、NV21这几种,通常NV12、NV21常常使用在手机端的编码,属于YUV420SP;YUV420SP表示UV交错排列成为一个平面,和Y一共为两平面YUV420P是UV顺序排列,一共三个平面void yuvI420ToNV12(uint8_t *I420, uint8_t *NV12, int width, int height){ int ySize = width * heigh
2021-04-20 20:32:08
1596
原创 C++的STL之安全队列
C++的STL是线程不安全的,如果想要在多线程中使用的话需要加锁,这里简单封装了如下四个接口入队操作阻塞式等待非阻塞式等待判断是否为空代码如下所示:#include <thread>#include <mutex>#include <condition_variable>template<typename T>class ThreadSafeQueue {public: ~ThreadSafeQueue() =
2021-04-14 16:53:42
402
原创 H264数据类型
SPS 00 00 00 01 67PPS 00 00 00 01 68I帧 00 00 00 01 65P帧 00 00 00 01 61H264裸流数据一般是IDR帧 + P帧;实际写MP4文件时候只需要提前把SPS、PPS写入到媒体信息中就可以了,mdat只需写入I和P帧的数据。H264帧区分很明显,不用做其它处...
2020-01-04 19:25:16
326
原创 select()函数的定时器实现
#include<sys/time.h>#include<unistd.h>int select(int maxfd, fd_set *rdset, fd_set *wrest, fd_set *exset, struct timeval *timeout);maxfd:描述需要监视最大文件描述符+1rdset:监视的可读文件描述符的集合rdset:监视的...
2020-01-04 14:46:41
1517
原创 MP4文件格式总结
mp4文件作为视频监控的主流媒体文件,框架结构也不算复杂,主要由一系列的box组成,这里简单解析一下。 查看mp4文件的软件:MP4 Reader.1.mp4文件的总体结构2.各组成分析ftyp :file type box 存储文件类型mdat :media data box 存储媒体的具体内容moov:movie box 存储媒体的信息这三个是一个M...
2020-01-04 10:55:37
985
原创 基于G-sensor的计步解决方案
基于G-sensor的计步解决方案一、 计步模型特征 G-sensor可以检测三轴加速度(单位g),静止的时候只检测重力加速度一个G;人在步行的时候,相对于运动姿态会产生相应方向加速度。 图1 步行姿态示意图 如图1所示,步行的时候主要运动方向是前进方向和垂直方向,呈现周期...
2018-04-24 11:19:55
4340
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人