自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(162)
  • 资源 (14)
  • 收藏
  • 关注

原创 c++ 句柄池模版类实现

5:非常巧妙的是,资源释放时候,可以感知到引用计数,同步释放,保证Free 时候已经没有使用者,Free 后句柄不可用。6:需要频繁调用的Get 函数,测试100万次,执行时间约90ms, 性能有保证,本人机器(cpu i7-8700)3:资源释放时候,句柄还给资源池。1:实现裸指针转化成句柄的功能。2:实现通过句柄获取智能指针。4:资源从始至终不会释放。

2026-01-29 16:56:16 15

原创 c++ 转化句柄,解决多线程安全释放问题

1: 可以把指针转化成句柄,通过句柄来管理释放,保证创建,使用,释放实现多线程安全。2:代码性能基本高效,unordered_map 的时间复杂度平均O(1)3:可以很方便改造已有的代码。

2026-01-14 15:49:58 223

原创 基于ffmpeg8.0录制mp4文件

基于ffmpeg8.0 的录制demo

2025-11-13 16:37:28 477

原创 生成pcm 正玄波代码和生成YUV420数据,用于测试

【代码】生成pcm 正玄波代码和生成YUV420数据,用于测试。

2025-11-03 11:01:15 113

原创 exosip2 5.3 windows 编译

exosip2 5.3 windows 编译

2025-10-18 10:43:59 293

原创 linphone + minisipserver 下载和配置

minisipserver 和linphone 搭建环境

2025-10-08 16:37:30 388

原创 windows usb插拔事件上报

usb 插拔事件回调

2024-12-30 16:07:00 263

原创 rtp_over_udp 分析代码c++

【代码】rtp_over_udp 分析代码c++

2024-10-22 16:32:57 458

原创 Windows命令行执行cmake

设置临时环境变量 msbuild 命令在这个路径下。-A Win32 表示生成 Win32 工程。-A x64 表示生成 x64 工程。用vs 工程选的时候,如图这样。生成Win32 工程并编译。生成X64 工程并编译。根据需要配置不同选项。

2024-10-10 19:09:54 396

原创 std::thread 设置线程名字

为了方便调试,有时候崩溃或者打断点,为了知道运行代码在哪个线程中执行,所以可以给线程设置名字。

2024-08-28 14:53:05 646

原创 EventLoopMngr

【代码】EventLoopMngr。

2024-05-08 15:47:23 180

原创 c++多线程安全同步释放示例

1:最大限度减少锁2:保证多线程安全3: 保证释放同步

2024-04-16 19:54:19 891

原创 ffmpeg命令行

【代码】ffmpeg命令行。

2024-03-27 16:50:54 644

原创 如何在CMakeLists.txt设置多线程编译加速

在windows cmake-gui 编译时候,没有像linux 一样有make -j 实现多线程编译。但是没有多线程编译速度会很慢,为了windows 编译程序时候实现多线程加速可以在。cmakelists.txt 添加下面两句就可以实现多线程编译。

2024-01-07 22:08:27 1347 1

原创 安卓adb网络调试

8:adb -s 192.168.60.67:5555 push C:\Users\Administrator\Desktop\2023年度总结草稿\libVideoNetOptimization.so /sdcard/T30/3: setprop service.adb.tcp.port 5555 设置端口。2:ip addr 可以看ip。1:adb shell 进入。

2024-01-03 16:38:28 762

原创 c++ 写一个TaskQueue类

2:当没有数据时候,获取数据会卡住,当有数据时候自动唤醒。1:list 封装,采用c++11 条件变量。

2023-10-26 20:16:54 358

原创 CMakeLists.txt同时生成多个测试工程

【代码】CMakeLists.txt同时生成多个测试工程。

2023-06-26 18:18:53 564

原创 c++11 sleep_for 的设计缺陷

std::this_thread::sleep_for 的设计缺陷在于,依赖系统时间,系统时间修改后,就不准确了。

2023-06-15 16:07:09 1860

原创 Java 返回一个数组

【代码】Java 返回一个数组。

2023-04-04 16:58:32 743

原创 c++ 读写文件调试

由于每次调试视频音频时候经常需要写文件的操作,感觉累的慌,内部实现一个map , 文件名和FILE * 对应起来。所以写一个类,不用每次都打开文件。

2023-03-29 14:38:50 214

原创 c++11 写一个定时器模型

WorkerThread.cpp 文件。1:单个线程可以添加多个定时器。3:添加删除定时器是同步的。2:完全依赖c++11。

2023-03-24 19:41:56 433

原创 c++11 任务队列

用c++11 写一个任务队列,支持模板的输入。

2023-03-24 19:30:03 278

原创 用脚手架创建express工程

express 工程创建

2022-06-18 15:35:35 389

原创 写一个脚本记录运行程序的top

#保存文件名字LOGNAME=111.logEXE=python#排除python3EXE1=python3for((i=0;;i++));doTIME=`date`RET=`top -b -n 1 | grep $EXE| grep -v $EXE1 | awk '{print systime(), $0}'`echo $RET $TIME $i >> $(pwd)/$LOGNAMEsleep 1done

2022-01-14 14:32:58 430

转载 Windows下模拟linux pipe

linux下的管道可以通过select来捕获事件,在某些场景下非常有用,但Windows下提供的管道就不具备这种特性,为了在Windows环境下也可以实现类似的功能特性,可以用socket模拟pipe实现。代码如下:from http://www.cppblog.com/isware/archive/2011/06/30/149807.htmlint pipe(int fildes[2]){int tcp1, tcp2;sockaddr_in name;memset(&name, 0,

2021-08-07 09:21:08 423

原创 cmakelists.txt 里去除ffmpeg 安全映像

在CMakeLists文件中的`add_executable`或`add_library`之前加set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SAFESEH:NO")set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /SAFESEH:NO")set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /SA

2021-04-07 15:06:34 321

原创 ffmpeg 命令行操作

从mp4 中提取YUV数据.\ffmpeg.exe -i D:\Home\baibai.avi -pix_fmt yuv420p ./note2.yuv播放yuv数据ffplay -f rawvideo -video_size720x480 .\note2.yuv

2020-12-30 22:58:13 245

原创 循环buffer的c++实现

实现一个循环buffer, 新数据会覆盖旧数据RingBuffer.h#pragma once#include <stdio.h>#include <string.h>class RingBuffer{public: RingBuffer() { size = 0; } ~RingBuffer() { if (buffer) { d...

2020-04-26 00:18:39 1270

原创 c++ 快速排序算法

#include <stdio.h>// 冒泡排序void sortMaoPao(int * array, int len){ for (int i = 0; i < len; i++) { for (int j = 0; j < len - i - 1; j++) { if (array[j] > array[j + 1]) { ...

2020-03-22 18:27:01 456

原创 c++11条件变量和互斥锁

1:写一个链表2:如果超过固定大小push阻塞3:如果链表为空,pop也会阻塞直接看代码,main.cpp#include <stdio.h>#include <list>#include <iostream>#include <thread>using namespace std;class listPack{publi...

2020-03-06 11:53:29 530

原创 nginx+rtmp 服务器搭建,以及ffmpeg 推流拉流

首先安装依赖zl@ubuntu:~$ sudo apt-get install libpcre3 libpcre3-devzl@ubuntu:~$sudo apt-get install zlib1g-devzl@ubuntu:~$sudo apt-get install opensslwget http://nginx.org/download/nginx-1.11.3.tar.gz,...

2020-02-12 12:48:08 850

原创 std::vector 中存储类

在cpp 中vector存储类的时候,什么时候调用构造函数,什么时候调用拷贝构造,什么时候调用等号,删除vector 中的一个类,这个问题值得测试了解一下首先写一个类 FaceInfo.h#pragma onceclass FaceInfo{public: FaceInfo(); ~FaceInfo(); FaceInfo & operator=(const FaceInf...

2020-02-02 11:41:37 1316

原创 Android studio 权限问题

android6.0 后权限比较严格,折腾很久需要两个步骤就可以1:在AndroidManifest.xml 中加入<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.RE...

2020-01-10 11:20:55 1340

转载 cmake 编写

非常不错的一个学习cmake 的链接https://blog.csdn.net/afei__/article/details/81201039

2019-10-25 14:40:19 273

原创 vscode 如何编辑python 代码

1: 假设你已经安装了anaconda3然后安装了vscode , 怎么配置才可以在写代码时候可以自动补齐方法如下:1: ctrl + p 会弹搜索框, 输入json找到 launch.json 打开,修改成{ // Use IntelliSense to learn about possible attributes. // Hover to view descript...

2019-08-16 08:53:57 908

原创 cmake 添加opencv 动态库

CMakeLists.txtcmake_minimum_required (VERSION 2.8)# 项目信息project (server)SET(CMAKE_C_COMPILER g++)add_compile_options(-std=c++11)# 查找当前目录下的所有源文件# 并将名称保存到 DIR_SRCS 变量aux_source_directory(. DIR...

2019-08-13 10:36:37 5260

原创 Cmake 实践

Cmake实践

2019-08-12 14:49:53 267

翻译 ffmpeg 设置问题总结

1.设置rtsp超时AVDictionary* opts = NULL;av_dict_set(&opts, “rtsp_transport”, m_bTcp ? “tcp” : “udp”, 0); //设置tcp or udp,默认一般优先tcp再尝试udpav_dict_set(&opts, “stimeout”, “3000000”, 0);//设置超时3秒int ...

2019-07-23 14:58:33 4178

原创 c++ sleep 用法

#include #include int main(){std::chrono::milliseconds dura(40);std::this_thread::sleep_for(dura);}

2019-07-12 11:10:04 822

原创 protobuf 静态编译

一.protobuf 安装protobuf版本:2.6.1下载地址:https://github.com/google/protobuf/archive/v2.6.1.zip解压之后进入目录修改autogen.shecho "Google Test not present. Fetching gtest-1.5.0 from the web..."curl http://google...

2019-06-19 11:30:57 2374

ffmpeg3.4.1 将YUV数据封装成Mp4文件

封装了ffmpeg api 只调用三个函数,初始化,反初始化,编码生成Mp4 , 方便工程嵌入

2019-04-04

c++ log日志

将打印日志输出到文件中,方便查看bug , 类似于glog 一样,只是更简单

2019-01-24

vs的属性配置文件

每一次都配置vs属性太麻烦,所以保存起来,里面配置了opencv的路径,下次直接改就好了

2017-07-11

c++ 打印log 日志到文件

1:可以删除旧的log日志 2:可以设置每个日志的大小 3:c++ 代码简单

2019-03-20

Linux 下实现的聊天系统,TCP实现

实现一个服务器程序和一个客户端程序,开启服务器后,客户端可以注册账号,然后登陆,可以实现多个客户端之间的相互聊天,代码简单易懂,主要用到TCP和多线程的知识,仅供初学者参考。

2017-04-25

Fast 算法C++代码

本人近来研究OpenCV的Fast 的源码,发现opencv 对Fast 的算法写的有优化,并不方便初学者来理解代码,本人根据Fast 算法的原理,写了一个相对非常好理解的Fast 算法,在速度上不如opencv, 但是在代码的理解和简洁上绝对是更胜一抽,希望能帮助更多学习Fast 算法的同学们,请大家相信,本程序Fast 的结果经过验证和opencv 结果一样,请大家放心使用。

2017-06-16

安卓打开摄像头,通过jni将预览数据NV12传到底层,底层打印成图片

安卓打开摄像头,通过jni将预览数据NV12传到底层,底层打印成图片,也可以进行其他处理,将结果返回给安卓层

2017-04-18

jni c++ 返回一个类

本例子包含一个eclipse 工程和vs2015 工程, 可以实现c++ 返回一个java 的类

2018-12-20

C++连接activityMQ

c++ 连接activityMQ, 本代码创建两个线程,一个生产者线程,一个消费者线程。前提是先装好运行activityMQ这个服务

2018-09-26

cmakelists 生成静态库,然后用静态库生成动态库,然后生成测试程序

1:模块化CMakeLists 的写法 2:每个模块先生成静态库 3:把各个静态库生成一个动态库 4:生成一个测试demo 验证动态库

2020-10-12

Qt5多线程同步

用信号量实现两个线程间的交替执行,相对于条件变量更简单

2018-08-14

android 点击图片通过jni在底层处理,然后在屏幕上显示

通过一个按钮,选择一张图片,通过jni 将图片信息传到底层,然后将处理后的数据传回安卓层,手写通用版的Android.mk ,让你迅速搭建一个工程测试你的底层代码,一个积分,绝对值得。

2017-03-02

jni传参实例

主要帮助我们知道如何把android的参数传递到c++,然后让c++如何的使用,以及c++的返回值给android使用,如何在底层开辟安卓空间

2017-09-05

CJSON库的应用

如何把结构体数据存储为CJSON的格式,然后再从 字符串中解析出来用到的数据

2018-05-17

空空如也

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

TA关注的人

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