C++ – 使用模板和智能指针构建一个双向链表工具类
1 C++使用模板和智能指针构建一个双向链表工具类 本文使用模板和智能指针构建一个双向链表工具模板类DoubleLinkedList<T>,在链表的节点Node内部使用T用于接受模板参数,当前节点的上一个节点使用std::shared_ptr,为防止节点与节点之间的std::shared…
- C++
- 2022-05-31
C++ – 使用std::chrono获取当前秒级/毫秒级/微秒级/纳秒级时间戳
1 使用std::chrono获取当前秒级/毫秒级/微秒级/纳秒级时间戳 1.1 当前时间戳获取方法 先使用std::chrono获取当前系统时间,然后将当前系统时间转换为纪元时间std::time_t类型,之后使用std::localtime对std::time_t类型转换为本地时间结构体std:…
- C++
- 2022-05-27
C++ – 动态链接库dll为什么要使用unsigned char作为byte的内部格式
1 dll为什么要使用unsigned char*作为byte字节数组的内部格式 byte指的是字节,一个字节是8位2进制。 char型占内存也是一个字节,实质上是一个字节长度的有符号整型数,最高位是符号位,另7位是数据位,表示数值-128到127。 而unsigned char没有符号位,因此能表…
- C++
- 2022-05-25
C++ – 我的代码风格/代码规范备忘
本文的代码风格主要是我本人在编写代码时所遵从的代码风格,以Google C++ 代码风格为基础,对一部分进行了修改。 Google C++代码风格可参考:https://zh-google-styleguide.readthedocs.io/en/latest/google-cpp-stylegui…
- C++
- 2022-05-23
FFmpeg – 常用的视频像素格式以及使用SwsContext和sws_scale进行视频像素格式转换和视频缩放
1 视频像素格式 YUV420P YUV420P三个Plane,按照YYYY.....UUUU.....VVVV.....分别存储于各个Plane通道 RGB24 RGB24一个Plane,按照RGBRGBRGB......的顺序存储在一个Plane中 BGR24 BGR24一个Plane,按照BG…
- FFmpeg
- 2022-05-21
OpenCV|FFmpeg – OpenCV cv::Mat与FFmpeg AVFrame的相互转换
1 OpenCV cv::Mat与FFmpeg AVFrame相互转换 最近在处理OpenCV采集摄像头图片然后使用ffmpeg编码为h264裸流,之后再将h264裸流转换为OpenCV cv::Mat进行显示的问题,在这个过程中,如何将OpenCV的cv::Mat转化为FFmpeg AVFrame…
- FFmpeg
- 2022-05-20
FFmpeg – FFmpeg历史版本下载和函数弃用列表
1 FFmpeg历史版本下载链接 1.1 源码历史版本 http://www.ffmpeg.org/releases/ https://www.ffmpeg.org/olddownload.html https://www.videohelp.com/software/ffmpeg/old-vers…
- FFmpeg
- 2022-05-17
Windows – 使用类的成员函数作为Win32窗口消息回调处理函数WindowProc
1 Win32窗口的创建过程 学过Win32界面编程的都知道,创建一个Win32窗口一般经过以下几个步骤: (1)定义窗口对象 (2)注册窗口 (3)创建窗口 (4)显示窗口 (5)消息处理函数 (6)消息循环 一个简单的Win32窗口创建代码与以下代码类似, #include <window…
- C++
- 2022-05-10
C++ – 在Windows/Linux上创建单级目录以及多级目录的跨平台方法
1 C++创建目录 本文将对使用C++在Windows和Linux系统上创建单级目录与多级目录的普通方法进行总结,本文将不会使用C++14新增的std::filesystem的标准库方法。 1.1 在Windows/Linux上创建单级目录 1.1.1 在Windows上创建单级目录 在Window…
- C++
- 2022-05-10
C++ – std::string替换字符串中所有指定的子字符串
1 std::string替换字符串中所有指定的子字符串 std::string并没有提供类似repalceALL之类的方法,我们只能使用std::string::replace方法逐个替换子字符串。 封装的方法如下: std::string ReepalceAllString(std::strin…
- C++
- 2022-05-10
OpenCV – cv::VideoWriter::fourcc可支持的视频编码格式
1 cv::VideoWriter::fourcc可支持的视频编码格式 1.1 OpenCV文档 地址:https://docs.opencv.org/3.4/dd/d9e/classcv_1_1VideoWriter.html 在官方文档中给出了一个cv::VideoWriter::fourcc可…
- OpenCV
- 2022-05-05
C++ – Windows/Linux生成uuid(通用唯一识别码)
1 Windows/Linux生成uuid 1.1 uuid UUID含义是通用唯一识别码(Universally Unique Identifier),这是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundation, OSF) 的组织应用在分布式计算环境 (Dis…
- C++
- 2022-04-28