自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(3)
  • 资源 (13)
  • 收藏
  • 关注

原创 srs ffmpeg拉取rtsp流,推送rtmp流到srs,vlc播放花屏、srs网页播放器播放跳秒/跳帧的问题。

现象如下。折腾了好几天,不容易。最开始ffmpeg推流花屏、公司自己做的国标推流器也会花屏,初步把问题定位到srs里面。但是检查几遍srs_app_rtmp_conn.cpp 吞吐message 包是否丢包,没有问题。尝试修改 conf文件里面srs各种配置依然没有问题。中途也尝试过只开启一路视频流、一路视频流不用1080p,用720p,甚至更小分辨率,也会出现花屏现象。当时整个人已经懵了。...

2019-12-04 15:50:45 6937 3

原创 Qt 无边框,可移动窗体公共类实现。封装成模板,只需继承就可用

Qt 无边框,可移动窗体公共类实现。封装成模板,只需继承就可用在qt开发中,很多时候需要自定义窗体,网上也有很多无边框、可移动的代码。但是真正用在工程开发上,每次实现一个窗体就拷贝、粘贴代码相当麻烦,也不利于工程化。所以本人就针对这一特性将无边框、可移动窗体封装成了模板,希望对广大qt开发者有一些帮助。使用非常简单:只需要继承FramelessBase, 然后 installFrameles...

2019-11-12 19:19:17 710 1

原创 C++实现内存池

C++实现内存池参考:https://www.cnblogs.com/dylantsou/archive/2012/05/13/2498491.html详细原理可以上面的链接。内存池是由block链表实现,每个block(块)链表上挂载了多个unit (单元)。本人在链接基础上封装了block 成员变量。并且block 中的unit 采用链表方式,一个unit 指向 下一个可用的unit。...

2019-11-09 16:07:34 155

ImageWatch,vs 2015, vs 2017调试的时候查看cv::Mat 图片插件

vs 2015, vs 2017调试的时候查看cv::Mat 图片插件。调试的时候,断点就可以看到mat 里面的图片了

2019-11-12

qt 单例模式,模板

只需要引用 #include "Singleton.h", 然后就可以用。记得 DBManager(QObject *parent = 0); 设置parent默认参数0;

2019-11-12

cv::mat 和 QImage 互转

cv::mat 和 QImage 互转

2019-11-12

LogQtTest.zip

只需一个文件LogHelper.hpp, 使用也非常简单。包含LogHelper.hpp,然后注册一下就行了 qInstallMessageHandler(LogHelper::myMessageOutput); 具体可参考demo。 记得 在程序运行目录建立 log文件夹,不然无法生存log日志

2019-11-12

NoBorderTest.zip

支持mainwindow, Dialog, widget。 只需要继承 MainWindowBase 自定义类就行了。需要关闭,最小化等按钮,在ui里面加 就行了。很简单

2019-11-12

MemoryPool.zip

C++实现内存池,可在linux ,Windows上使用,只依靠C++库实现

2019-11-09

qt下OpenGL做的3d扫雷

qt + OpenGL,做的3D扫雷,包括3D场景的旋转,鼠标位置计算,雷的计算等。

2015-11-25

C++实现26进制

string band26(int index) { string str; if(index == 0) return "a"; while(index != 0) { int remainder = index % 26; char c = singleBand26(remainder); str = c + str; index = index / 26; } return str; }

2015-04-25

qgrapthic画图例子

class FAVView : public QGraphicsView { Q_OBJECT public: FAVView(QWidget *parent = NULL); ~FAVView(); private slots: }; class FAVScene : public QGraphicsScene { Q_OBJECT public: FAVScene(int wave_amplitude = 10, int wave_density = 5); ~FAVScene(); void setWaveAmplitude(int n) {mWaveAmplitude = n;}; void setWaveDensity(int n) {mWaveDensity = n;}; private slots: void slotUpdate(); protected: void drawBackground(QPainter *painter, const QRectF &rect); void drawForeground(QPainter *painter, const QRectF &rect); private: void setBuf(void); QPainterPath mPath; int mWaveAmplitude; //波形振幅 int mWaveDensity; //波形的疏密程度,模拟频率高低 int *mBuf; };

2015-04-16

qt分析标准wav文件

char wavHeader[44]; //用来保存头部44字节 sfile.read(wavHeader, sizeof(wavHeader)); //将文件头44字节保存到wavHeader数组中 int width = *(ushort *)(wavHeader + 34); //将量化样本(本文件是16bit)数据赋值到width变量 int dataSize = sfile.size() - 44; //去除头部44字节后数据大小 int step = dataSize / maxSampleNum; //确定步长 if (dataSize % maxSampleNum) //如果没完全整除步长应该+1 { step ++; }

2015-04-16

qt写入excel

qt写入excel 基本的操作, QString fileName = QFileDialog::getSaveFileName(NULL,"Save File",".","Excel File (*.xls)"); fileName.replace("/","\\"); //这一步很重要,c:/123.xls保存失败,c:\123.xls保存成功! QAxWidget _excel("Excel.Application"); _excel.setProperty("Visible",false); QAxObject * _workbooks = _excel.querySubObject("WorkBooks"); _workbooks->dynamicCall("Add"); //添加一个新的工作薄 QAxObject * _workbook = _excel.querySubObject("ActiveWorkBook"); _workbook->dynamicCall("SaveAs (const QString&)",fileName); //保存 _workbook->dynamicCall("Close (Boolean)", false); _excel.dynamicCall("Quit (void)");

2015-04-10

qt自己做的按钮

qt自己重写的鼠标移动,单击,双击,释放事件

2015-04-10

qt的进度条

自制的qt经度条 #ifndef PROGRESS_H #define PROGRESS_H #include<QProgressDialog> class Progress:public QProgressDialog

2015-04-08

空空如也

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

TA关注的人

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