自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 C++ std::variant 总结

return 0;输出如下:1010.3Aborted写入浮点数后再访问整数类型成员, 直接抛出了异常, 这提供了一个类型安全的保证。除此之外, 它能自动维护C++ 当中的复杂类型,也就是构造和析构函数的调用。return 0;1010.3。

2024-04-26 23:33:25 1110

原创 C++性能优化实践 三

首先需要知道的是, 多线程加锁和数据竞争是性能杀手。①能用 std::atomic 原子类型就不要使用 std::mutex;②如果多线程读比写多很多时, 优先考虑使用读写锁 std::shared_mutex, 其他情况还是使用 std::mutex;③考虑使用 thread_local 变量, 这个相当于不需要加锁的全局变量, 当线程第一次访问的时候对象才会被创建, 线程退出时对象就会被销毁;④能用标准库里面的高级接口就不要自己写, 比如 std::future, std::async等;

2024-04-26 23:31:06 945 3

原创 C++性能优化实践 二

C++性能优化实践 二。

2024-04-26 23:30:19 328

原创 C++性能优化一

C++性能优化--模板相关的知识点

2023-12-12 22:15:47 941

原创 shared_ptr智能指针注意事项

本文记录几个 shared_ptr 智能指针使用时的注意事

2023-09-10 23:07:11 180

原创 基于ffmpeg封装一个音视频解码器

封装一个 ffmpeg 解码器

2023-09-10 20:18:44 201

原创 VS2019远程调试 Linux 进程

VS2019 远程调试 Linux 进程。

2023-05-07 17:10:21 1340 1

原创 CMake工程实践(二)

本文记录使用 CMake 构建 C++ 项目时的一些常用设置, 以供后面查阅。

2023-04-18 16:54:56 478

原创 OpenGL使用FBO与PBO上行纹理 (YUYV)

OpenGL使用 FBO 加 PBO 上行纹理数据(YUYV)

2023-03-26 22:29:16 1723 1

原创 ubuntu 通过 apt-get 安装软件失败时的解决方案

ubuntu通过 apt-get 安装软件失败时的解决方案

2023-02-15 00:00:28 5793

原创 C++ Idiom: copy-and-swap

C++ 编程习语: 拷贝-交换

2023-02-02 23:37:31 278

原创 CMake工程实践(一)

CMake工程实践

2023-01-20 14:40:54 287

原创 C++ Idiom - Return Type Resolver (返回类型自动解析)

C++ 习语之返回类型解析。Return Type Resolver

2023-01-20 14:39:19 150

原创 C++智能指针 shared_ptr 模仿实现

C++ shared_ptr智能指针模仿实现部分功能,包括自定义析构器,线程安全的引用计数以及一些其他常规的操作

2022-12-10 21:24:19 276

原创 音频可视化(一):音频基础知识

音频基础知识,包括音频的采集和存储两方面, 以及一些常见的参数

2022-12-03 17:29:58 1021

原创 C++线程池任务实现(简洁版)

C++ 线程池中任务实现。相关特性为:类型推导,可变模板参数,绑定器,仿函数

2022-11-23 23:53:36 1870

原创 C++ 单例模式(泛型, 线程安全)

单例模式,支持线程安全初始化, 可变模板参数与完美转发

2022-11-20 23:48:30 474

原创 ffmpeg常用命令总结

ffmpeg 编辑音视频素材文件时指定目标文件的参数

2022-11-15 17:18:45 407

原创 C++实现 defer

C++ 实现 defer, 类似Go里面的defer, 延迟对函数的调用

2022-11-13 18:13:12 578

原创 C++ 实现一个简易版的事件(Event)

C++实现事件系统,支持多线程

2022-11-12 22:51:09 1483

原创 git 常用命令总结(二)

git 常用操作

2022-09-22 23:39:00 219

原创 shared_ptr 智能指针的引用计数类实现

C++智能指针中的引用计数类实现

2022-09-07 23:03:24 631

原创 git与远程仓库建立连接并拉取和推送代码

使用 git bash 获取远程仓库代码并提交修改

2022-08-03 20:36:41 3424

原创 git 常用命令总结(一)

git 常用命令记录

2022-07-30 17:31:55 370

原创 QT 在线安装速度慢解决方案

QT 5.15 之后版本快速安装方案

2022-07-29 15:03:38 6934

原创 FFmpeg获取文件参数

ffmpeg 获取素材信息

2022-06-26 19:12:16 940

原创 Visual Studio 2019 编译相关问题

VS2019一些编译错误对应的解决方案

2022-06-26 19:11:37 1138

原创 AAC音频格式解析(ADTS)

AAC音频格式解析, 主要是常用的 ADTS 格式文件头

2022-05-29 17:38:56 4029 2

原创 OpenGL 渲染 YUYV(YUV422)

OpenGL渲染YUYV(YUV422)

2022-05-28 13:20:15 5025 2

原创 C++ 智能指针简易实现

C++ 智能指针的实现原理(简易版)

2022-05-23 00:04:48 1519

原创 OpenGL渲染YUV420P

一 、YUV420P数据格式二 、GLFW渲染YUV420P2.1 定义顶点数据2.2 创建YUV三张纹理2.3上行YUV420数据2.4 渲染纹理2.5 着色器三、代码地址以及存在的问题四 、解决存在的问题一 、YUV420P数据格式 图片来源于谷歌结合上图可以看出YUV420P的特点如下:①无论在横向还是纵向上都是两个亮度(Y)共享一组色度(UV),所以UV的宽度和高度都是Y的1/2②在内存中有三片数据,也就是三个数据指针分别指向Y、U、V ffmpeg中av.

2022-05-21 22:18:20 2221 4

原创 OpenGL 绘制音频波形

OpenGL,音频波形,重采样

2022-05-04 00:07:32 2156

原创 QT中的时间相关类

QT中与时间相关类的使用

2022-02-09 23:46:44 1104

原创 线性代数基础(变换)

点和向量

2021-10-17 19:19:05 689 1

原创 Windows下编译ffmpeg的几种方式

ffmpeg编译好的库可以直接通过官网下载,地址为 http://ffmpeg.org/download.html#build-windows, 但是平时在调试相关的代码时总是希望通过单步调试进ffmpeg的接口函数看一下其内部的实现方式,通过官网直接下载编译好的因为没有相关符号文件而无法实现这一愿望,所以只好自己编译啦,这里介绍两种常见的方式。ffmpeg的源码直接在 github 下载可以这里写目录标题1. 通过msys2安装1.1 使用MinGW编译1.2 使用 msvc 编译2. 通过vcpkg安

2021-10-10 21:29:30 12010

原创 线性代数基础(点成与叉乘)

本文主要介绍一些图形学相关的线性代数技术知识, 这方面的知识现在自己多数都还给老师了, 工作中需要再来捡一波吧。

2021-10-10 16:44:10 3749

原创 QT中的事件 QEvent

一 父窗口是否响应子窗口的事件

2021-10-10 11:03:35 980

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除