自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 使用libyuv解决ffmpeg sws_scale效率不高问题

原项目使用 ffmpeg 库函数 sws_scale 进行色彩空间转换,转换3840*2160视频时发现转换效率低,耗费时间长,造成录制的视频卡顿。经查找发现可以使用 libyuv 库代替 sws_scale 提高转换效率。参考和使用了博主startAt24提供的静态库,有效提高了转换效率,解决了视频卡顿问题,感谢博主。参考文章链接:https://blog.csdn.net/fengch...

2019-09-24 11:43:11 3761

原创 vue使用

前些天学习了一下前端框架vue,参考知乎登录页面做个了简单的登录页面。参考了https://www.jianshu.com/p/32beaca25c0d这篇文章建立了vue脚手架。主要流程如下:1. 安装node.js2. 运行后台npm run dev3. 打包上线 npm run build主界面:项目主要文件和打包的文件上传到百度云。链接: https:/...

2019-09-24 11:09:40 205

原创 在VS中使用正则表达式统计代码行数及正则表达式含义

统计方法在VS中可以在查找页面“查找选项”中选择“使用正则表达式”,“查找范围”选择“整个解决方案”,“查找内容”填写正则表达式“^:b*[^:b#/]+.*$”来统计项目总代码行数。 点击“查找全部”之后查找结果页面统计的匹配行即为代码总行数。 这个表达式统计的总行数不包括空行、“#”开头的包含文件行、以及“/”开头的注释行。如果需要统计#开头的行,可以去掉“#”使用表达式“^:b*[^...

2019-08-19 16:34:36 1454

原创 htc vive 开发时手柄识别经常识别到追踪器上的问题解决办法

项目中使用了两个手柄和一个追踪器,以前使用vr::IVRSystemhmd->GetTrackedDeviceIndexForControllerRole(vr::TrackedControllerRole_LeftHand)hmd->GetTrackedDeviceIndexForControllerRole(vr::TrackedControllerRole_RightH...

2019-03-01 15:52:30 1750

原创 结构体中有string成员时使用memset会发生内存泄漏

使用一份代码时发现了内存泄漏,费了半天劲查了一遍发现所有new的成员都释放掉了,很不解。再看了下内存泄漏的地方几乎都跟某个结构体有关系,这个结构体中有string成员变量。网上搜了下有人说string作为结构体成员变量时如果memset此结构体时会有内存泄露,再在代码里搜了下发现代码里果然memset了一个带string成员变量的结构体。去掉memset后不再有内存泄漏。strin...

2018-11-28 18:39:51 1749

原创 从外部软件给用wps或office打开的PPT发送WM_KEYDOWN按键消息实现翻页

最近软件有个需求:从软件中点击按钮实现外部 wps 或 office 打开的 ppt 翻页功能。软件可以得到 ppt 窗口的句柄,因此可以向窗口发送按键消息实现ppt翻页。总结:使用::PostMessage::PostMessage(hWnd, WM_KEYDOWN, MAKEWPARAM(VK_LEFT, 0), NULL);::PostMessage(hWnd, WM_KEY...

2018-11-05 17:29:35 1122 1

原创 PCM声音数据保存成WAV格式音频

解码音频之后如果播放出现问题,首先需要知道解码的音频是不是正确,然后再看播放是否有问题。看解码的音频是否正确可以将PCM声音数据保存成WAV格式音频,用其他播放器播放看是否正确。namespace { FILE *pFile = NULL; int g_nData = 0; typedef char s8; //有符号8位整数 typedef short s...

2018-10-30 17:50:42 1183

原创 vs调试时出现乱跳断点执行异常变量值异常情况的处理方法

参考 了https://blog.csdn.net/dj0379/article/details/13290591给出的处理方法,发现问题可能在回车符和换行符上。使用了下面的方法处理成功。1. 使用UltraEdit打开文件,“格式”->“换行转为回车符”。2. 保存文件。清理重新编译工程。再调试就正常了。(vs编译时若出现文件不能为MAC格式错误,使用UltraEdit “...

2018-10-25 11:09:18 5069

原创 基于obs开发的一款软件中obs_source_release遇到问题

问题描述:最近在以 OBS 源码为基础开发一款软件。发现代码在某处执行到 obs_source_release(srcCanvas) ---> obs_ref_release(&control->ref) 处时判断为假,以致obs_source_destroy(source) 不能正常执行,资源不能正常释放,导致新的同名资源添加不上。解决思路:转到函数最底层定义发现...

2018-10-16 16:32:27 867

原创 求x的n次幂算法Pow(x, n)

以下算法复杂度为log(n)。 class Solution {public: double myPow(double x, int n) { double ans = 1; unsigned long long p; if (n < 0) { p = -n; x = 1 / x; } else { ...

2017-06-27 17:24:30 1670

原创 大数加法

一般的编译器认为 int 型是 4 个字节(32位),long long 型是 8 个字节(64位)。根据类型的取值范围可以知道,超过20位的整数加法就不能使用一般的数据类型直接相加了。取值范围:int -2^31 ~ 2^31-1 即 -2147483648 ~ 2147483647unsigned int0 ~ 2^32-1 即0 ~ 4294967296long

2017-06-26 14:27:56 346

原创 不要在使用Sleep等待线程结束,不要在线程中操作界面

本来想实现在双击消息响应时执行创建线程 LoadAVThread, 需要线程执行结束后再执行ImportSignal,所以加了Sleep(3000)函数,但是测试发现程序还是没有按照预想的3秒之内完成线程,3秒改成10秒20秒也无济于事。但是线程执行其实并不需要很长时间,就觉得莫名其妙。后来调试发现线程卡在了按钮设置文字m_btnDDRPlay.SetWindowText处,感觉应该是需要等双击消

2017-06-07 16:11:43 1956 1

原创 ffmpeg avcodec_encode_video2 函数报错

总结此次出现错误原因是:提供给avcodec_encode_video2函数的frame数据的yuv格式和编码器所能编码的yuv数据格式不符。项目之前使用ffmpeg完成了将yuv数据保存成视频文件的功能,最近需要添加一项新功能:满足条件时裁剪视频画面大小(不同于压缩画面大小)。网上查找资料之后知道可以用filter的crop功能来实现。因此在源代码基础上添加filter相关代码。完成之后

2017-05-12 13:51:07 6087

原创 vs2010 标识可以右键转到定义,但是编译时提示未声明的标识符

问题描述:使用了pugixml库,包含了头文件。编译时显示xml_document  xml_node等为未声明的标识符,但是可以声明F12可以转到定义。问题原因:未使用 pugi:: 命名空间解决方法:使用 pugi::xml_document  pugi::xml_node,或在文件前加上using namespace pugi;

2017-05-03 11:42:59 6507

原创 ffmpeg h264 硬编码 nvenc

最近项目需要录制摄像机拍摄的视频,使用h264编码。测试发现h264编码2k(1980×1080)视频还算流畅,但编码4k(3840×4120)视频出现明显卡顿丢帧现象。因此考虑使用h264 nvenc硬件编码。 将原本代码 AVCodec *codec = avcodec_find_encoder(AV_CODEC_ID_H264);改为 AVCodec * codec = av

2017-02-09 13:59:24 15964 9

原创 定位MFC程序GDI对象泄漏过程中的一些经验

定位MFC程序GDI对象泄漏过程中的一些经验之前接触MFC比较少,最近一个程序需要使用MFC写界面。写完之后发现程序运行一段时间后异常卡顿,并且WIN7系统任务栏图标出现一些毛边等异常情况。重新运行程序,打开任务管理器发现GDI对象不断增加,且数量到达9999后程序开始异常。因此判断程序可能存在GDI对象泄漏,即创建的GDI对象没有及时释放。

2017-02-04 11:06:55 3127 1

原创 CreateEvent WaitForSingleObject

CreateEvent WaitForSingleObject

2016-12-28 14:09:38 289

原创 ScreenToClient GetClientRect

ScreenToClient 该函数实现Screen(屏幕坐标) 到 Client(客户区坐标)的转换。也就是说这个函数可以把在屏幕上鼠标的坐标转换为程序的客户区的坐标。可以配合CRect::PtInRect(ptClient)使用来判断某个坐标是否在某个区域内。CPoint ptClient = point;ScreenToClient(&ptClient);

2016-12-28 11:21:41 411

原创 ffmpeg库时Debug下运行正常,Release异常有问题。无法定位程序输入点GdiplusStartup于动态链接库avcodec-57.dll上

使用ffmpeg库时Debug下运行正常,Release时出现“无法定位程序输入点GdiplusStartup于动态链接库avcodec-57.dll上”的错误。解决办法:将Release下属性 链接器--优化--引用 由“是 (/OPT:REF)”改为“否 (/OPT:NOREF)”...

2016-12-22 17:51:06 2987

原创 记录一些linux下python flask mysql使用过程中常用的命令

记录一些linux下python flask mysql使用过程中常用的命令

2016-10-08 10:54:21 458

空空如也

空空如也

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

TA关注的人

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