自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 资源 (7)
  • 收藏
  • 关注

原创 web_note

1.vlc-h265插件集成 项目学习笔记2.live555 RTP数据读取流程3.vlc函数文档4.ffmpeg从AVFrame取出yuv数据到保存到char*中5.directdraw离屏表面绘图的问题6.渲染到纹理7.D3D中深度测试和Alpha混合的关系8.音视频参考博客:https://www.cnblogs.com/ranson7zop/ mp4...

2018-10-11 09:32:03 145

转载 Linux多线程信号处理浅谈

​ 2、向指定ID的线程发送sig信号,如果线程代码内不做处理,则按照信号默认的行为影响整个进程,也就是说,如果你给一个线程发送了SIGQUIT,但线程却没有实现signal处理函数,则整个进程退出。4 如果进程中,有的线程可以屏蔽了某个信号,而某些线程可以处理这个信号,则当我们发送这个信号给进程或者进程中不能处理这个信号的线程时,系统会将这个信号投递到进程号最小的那个可以处理这个信号的线程中去处理。于是进程可以通过修改信号掩码来暂时阻塞特定信号的交付,被阻塞的信号不会影响进程的行为直到该信号被真正交付。

2023-03-30 20:05:27 647

转载 晶振和CPU周期

MCS—51单片机的所有指令中,有一些完成得比较快,只要一个机器周期就行了,有一些完成得比较馒,得要2个机器周期,还有两条指令要4个机器周期才行。比如,取值周期,取数周期。晶振好比单片机的心脏,如果没有心脏起跳,单片机无法工作,晶振值越大,单片机运行速度越快,有时并不是速度越快越好,对于电子电路而言,速度够用就是最好,速度越快越容易受干扰,可靠性越差。时钟分频最简单的方法就是用计数器,原理是这样的:原来的多个脉冲产生一个新脉冲,这样频率就比原来的减少了,比如八进制,就是八分频,十进制,就是十分频。

2022-09-16 10:46:23 2203

转载 Linux-workqueue讲解

============= 参考=============代码:linux-3.10.65/kernel/workqueue.c===============================1. workqueue 是什么?  workqueue是对内核线程封装的用于处理各种工作项的一种处理方法, 由于处理对象是用链表拼接一个个工作项, 依次取出来处理, 然后从链表删除,就像一个队列排好队依次处理一样, 所以也称工作队列,所谓封装可以简单理解一个中转站, 一边指向“合适”的内核线程...

2022-01-12 17:09:50 578

转载 通过炒股实现财务自由的人,都做对了什么?

炒股十年,前三年大亏70%,经历各种压力、痛苦、迷茫,最终大彻大悟,将交易技术做减法,化繁为简,终于实现6年持续稳定盈利,如果你未来三年不打算离开股市,立志把炒股当第二职业,一定要看完这10条铁律,都是炒股养家的干货,建议收藏!一:全世界散户的通病,亏了死拿,稍微由亏转盈就会马上卖出,不看趋势,不看成交量,只看账户盈亏比,最后的结果就是亏损无限大,盈利有限小,需要反向操作,盈利了死拿,稍微亏损就割掉,我的止盈止损原则就是盈利15%,利润跌倒10%就止盈,继续涨就继续拿,让利润奔跑,如果买入后跌,亏损超.

2021-11-22 20:00:25 218

转载 Linux系统编程 —读写锁rwlock

读写锁是另一种实现线程间同步的方式。与互斥量类似,但读写锁将操作分为读、写两种方式,可以多个线程同时占用读模式的读写锁,这样使得读写锁具有更高的并行性。读写锁的特性为:**写独占,读共享;写锁优先级高**。对于读写锁,掌握了这12个字就足矣了。Linux环境下,读写锁具有以下三种状态:1. 读模式下加锁状态 (读锁)2. 写模式下加锁状态 (写锁)3. 不加锁状态虽然读写锁有读锁、写锁、不加锁三种状态,但其实它只有一把锁,而非三把。前文提到,读写锁的特性为:写独占,读共享;写锁优先级

2021-06-07 10:11:13 234

转载 【Linux】Bonding配置,管理

1 通过Ifenslave手动配置Bonding该方法适用于某些发行包,它们的网络初始化脚本(sysconfig或initscripts包)没有bonding相关的知识。SuSE Linux Enterprise Server 版本8就是这样的一个发行包。对于这些系统一般的方法是,把bonding模块的参数放进/etc/modules.conf或者/etc/modprobe.conf(针对不同的安装发行包),然后在系统的全局初始化脚本里增加modprobe和/或ifenslave命令。对于sys..

2021-05-20 11:38:23 1847

转载 webrtc QOS方法一(NACK实现)

一、概念与NACK对应的是ACK,ACK是到达通知技术。以TCP为例,他可靠因为接收方在收到数据后会给发送方返回一个“已收到数据”的消息(ACK),告诉发送方“我已经收到了”,确保消息的可靠。NACK也是一种通知技术,只是触发通知的条件刚好的ACK相反,在未收到消息时,通知发送方“我未收到消息”,即通知未达。在rfc4585协议中定义可重传未到达数据的类型有二种:1)RTPFB:rtp报文丢失重传。2)PSFB:指定净荷重传,指定净荷重传里面又分如下三种:1、PLI(Pictur...

2021-03-31 11:03:24 181

转载 linux 内核网络协议栈

Linux网络协议栈之数据包处理过程1前言本来是想翻译《The journey of a packet through the linux 2.4 network stack》这篇文章的。但在查阅相关的资料时,发现需要补充一些技术细节,才使得我这种菜鸟理解更加深刻,所以综合了上面两篇文档,在加上自己的裁减和罗嗦,就有了下面的文字。我不知道这是否侵犯了作者权益。如果有的话,请告知,我会及时删除这篇拼凑起来的文档。引用作者Harald Welte的话:我毫无疑问不是内核导师级人物,也许...

2021-01-28 14:23:04 1007

原创 【随笔】基于gsoap编译onvif代码框架开发记录

1.gsoap下载安装gSOAP官方网址:http://www.cs.fsu.edu/~engelen/soap.htmlgSOAP开源版下载网址(最新版本):http://sourceforge.net/projects/gsoap2gSOAP开源版下载网址(历史版本):https://sourceforge.net/projects/gsoap2/files/gSOAP/我下载的版本是:2.8.109./configure --prefix=/home/gsoap/makema

2020-12-10 11:11:34 508

转载 浅析“远程对象调用”与“远程调用”

版权声明:本文由韩伟原创文章,转载请注明出处:文章原文链接:https://www.qcloud.com/community/article/242来源:腾云阁https://www.qcloud.com/community作者介绍:韩伟,1999年大学实习期加入初创期的网易,成为第30号员工,8年间从程序员开始,历任项目经理、产品总监。2007年后创业4年,开发过视频直播社区,及多款页游产品。2011年后就职于腾讯游戏研发部公共技术中心架构规划组,专注于通用游戏技术底层的研发。...

2020-11-26 15:32:44 420

原创 Live555 直播性能优化

优化1:同步读取数据源修改为异步读取数据源, FramedSource的子类的doGetNextFrame函数中不要阻塞等待数据源, 在无数据时可以重新增加一个定时器任务,延时再读取数据。在无数据时增加一个等待任务:voidMyFramedSource::doGetNextFrame(){ if(无数据可读){//延时3000微妙(3毫秒)再次读取数据 envir().taskScheduler().scheduleDelayedTask(3000,(TaskFunc*)Dela...

2020-11-20 17:40:11 2145

转载 重采样、下采样、上采样三者之间的关系

重采样主要是分为上采样和下采样,在进行采样的过程中,需要注意采样的倍率的问题,并不是可以随意的改变采样率的大小的,根据采样定理:在进行模拟/数字信号的转换过程中,当采样频率大于信号中最高频率的2倍时,采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号是最高频率的5~10倍。采样定理又称奈奎斯特定理。采样频率:采样频率,也称为采样速度或者采样率,定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。采样频率的倒数是采样周期或者叫作采样时间,它是采样之间.

2020-11-19 11:10:03 1442

转载 AAC ADTS格式分析

关于adt里字段的解释有些不全,很可能是因为那些是常量,请参考代码部分(里面可以看出哪些是常量)------------------------------------------------------------------------------------------1.ADTS是个啥ADTS全称是(Audio Data Transport Stream),是AAC的一种十分常见的传输格式。记得第一次做demux的时候,把AAC音频的ES流从FLV封装格式中抽出来送给硬件解码器时,不

2020-10-19 14:40:13 594

转载 简析LIVE555中的延时队列

最近在看LIVE555的源码,感觉其中的延时队列写的不错,于是就总结一下。 首先描述一下LIVE555中的延时队列的设计理念。首先,如下图,A,B,C分别为时间轴上的三个事件点,而head表示当前时间点。 假如我们要描述一个事件发生的时间,可以有两种方法:一种方法直接描述事件发生的绝对时间;另一种方法则是可以描述和另一事件发生的相对时间。而LIVE555中采用的就是后者。在LIVE555中,首先将所有的事件点以发生时间的先后进行排序,然后每个事件对应的时间都是相对于前一事件发生的...

2020-09-14 16:41:14 371

转载 live555ProxyServer.cpp的学习

live555ProxyServer.cpp在live/proxyServer目录下,这个程序展示了如何利用live555来做一个代理服务器转发rtsp视频(例如,IPCamera的视频)。  首先来看一下main函数 1 int main(int argc, char** argv) 2 { 3 // Increase the maximum size of video frames that we can 'proxy' without truncation. 4 // (Su

2020-08-25 10:30:52 1242

原创 关于ActiveX控件中IDL文件的理解整理

IDL的定义idl(Interface Defionition Language),翻译过来就是接口定义语言。应用场景及作用IDL文件主要定义两大类内容:一是定义接口;二是定义类型库。定义接口的关键字是interface。每个接口定义前面方括号里面的内容是该接口的属性,最重要的是uuid的定义。该部分经过midl.exe编译后生成projectName_i.c和projectName_i.h文件,包含着接口本身(属性(uuid,helpstring等)和方法)的信息。该部分作用是定义..

2020-07-09 11:27:56 594

原创 ffmpeg学习笔记之创建音频解码器失败 avcodec_open2() 返回值为-22

由于项目需求,需要开发一个私有播放器,所以就无法使用ffmpeg通用的取流接口:avformat_open_input();其中遇上了一个坑在创建音频解码器的时候返回失败;反复对比视频解码器的创建流程,按理说不应出现问题才对。最终,经过多方探索终于找到了问题所在:调用了avcodec_alloc_context3()之后,其中常规创建解码器的流程如下图所示:创建解码器的关键是根据不同 AVCodecID 调用avcodec_find_decoder();...

2020-06-24 17:35:29 3567

转载 VS调试技巧

来源:了解 Visual Studio 调试器在工作效率方面的提示和技巧固定数据提示如果你在调试时,经常将鼠标悬停在数据提示上,就可能想固定变量的数据提示,方便自己随时查看。即使在重新启动后,固定的变量也能保持不动。要固定数据提示,请在鼠标悬停其上时单击固定图标。你可以固定多个变量。编辑代码并继续调试 (C#,VB、 c + +)在 Visual Studio 支持的大多数语言中,你都可以在调试会话的过程中编辑代码,然后继续调试。要使用此功能,请先在调试器中暂停,用鼠标点击...

2020-06-19 09:29:15 336

转载 extern “C”的含义 和 __stdcall/__cdecl的区别

extern “C”的含义 和 __stdcall/__cdecl的区别extern "C"的含义为什么要加extern "C"动态库调用的注意事项2.1 不同版本的VS编译器编译的库2.2 __cdecl、__stdcall2.3 CRT链接选项(C运行时库的链接选择)extern "C"的含义extern "C"和__stdcall/__cdecl这两个概念都是C和C++语言混用时需要关注的。extern "C"是代码段的修饰, 既可以单独对函数进行修饰也可以放在代码片段前对整段代码进行修饰;是告知

2020-06-10 16:59:57 382

转载 Delphi与C之间的类型对应表

Delphi与C之间的类型对应表.其中左边是C类型,右边是对应的Delphi类型:ABC -> TABCACCEL -> TAccelATOM -> TAtomBITMAP -> TBitMapBITMAPCOREHEADER -> TBitmapCoreHeaderBITMAPCOREINFO -> TBitmapCoreInfoBITMAPFILEHEADER -> TBitmapFileHeaderBITMAPINFO -> TBitm

2020-06-09 15:45:32 349

转载 跨平台开发-cygwin和minGW

为了实现c++的一次编译,到处运行的目的,我们采用cygwin和minGW。minGW给那些习惯于在Linux上开发的人员,在windows上提供了一套类似的工具集。cygwin主要是对于再Linux的程序,无需改动代码即可移植到windows上Unix下编译通过的C代码,在win32下编译是不能通过的 ,当然Unix 和win32的API都是符合标准C,也就是说,大多数函数调用在unix和win32下是相同的.但是,unix有自己一些独特的API(如fork,spawn,signal...

2020-06-04 11:31:51 1080

转载 error MSB3073, MSB3075的解决方案

处理办法:在项目上点右键,选择“属性”->“配置属性”->“常规”->“目标文件扩展名”,设置为.ocx 或者.dll在项目上点右键,选择“属性”->“配置属性”->“链接器”->“ 常规 ”->“输出文件”,设置为$(OutDir)$(ProjectName)$(TargetExt)或者项目属性-配置属性-自定义生成步骤 ,修改“输出”项为“从父级或项目默认属性继承”即可项目属性-配置属性-生成事件 ,修改为否,就是不要执行那个指定的生成事件(生.

2020-06-04 09:42:56 1391 1

转载 QWidget与HWND的互相转换

在编写Windows的应用程序时,我们有时不可避免地要与Windows平台固有的Win32 API打交道,但是Win32 API里面常常用到的HWND等诸多句柄QT并没有。QT作为一款优秀的跨平台GUI库,不可能未作考虑,那么需要互相转换的时候该如何做呢?HWND转QWidget 1 2 3 QWidget *myWidget; HWNDhwnd; myWidget=QWidget::find(hwnd); QWidge..

2020-06-03 19:25:43 284

转载 Delphi Project 之工程管理器(Project Manager)

工程(Project)可以说是Delphi的生命。不可能创建一个没有工程的程序。利用工程可以把全部工作组合到一起,从而创建出可以执行的应用程序。一般来说,每个工程都需要管理。也许要增加一个新的单元到工程中,或是从工程中删除一个单元;也许需要增加另一种类型的文件(比如二进制资源文件)到工程中。增加和删除单元及其他的工程文件,都需要通过Project Manager来进行的。工程组(Project Groups)工程是一个文件集合,这些文件一起起作用即可创建独立的可执行文件或DLL。这就是Delph

2020-05-29 17:16:01 1294

转载 Windows搭建MSYS2和MINGW64环境

0.安装目的为了在windows下编译GDAL和Cesium Terrain Builder等软件,需要搭建MSYS2和MINGW64的编译环境1.安装环境和软件列表Windows Server 2012 R2MSYS2 64位2.配置MSYS2双击安装MSYS2之后,由于MSYS2默认资源站点速度较慢,可以配置国内清华大学开源镜像站安装完成后,编辑 /etc/pacman.d/mirrorlist.mingw32 ,在文件开头添加:Server = https://mir.

2020-05-28 15:20:16 1675

转载 Cygwin、Msys、MinGW、Msys2的区别与联系(转)

网上有很多文章讲它们之间的区别与联系,初学者看的一头雾水,在知乎上看到这篇文章讲的很清楚,容易理解。在讲区别联系之前,我们先看一下这几个东东的前世今生。Cygwin,原 Cygnus 出品(已被红帽收购),目前是 RedHat 名下的项目。项目的目的是提供运行于 Windows 平台的类 Unix 环境(以 GNU 工具为代表),为了达到这个目的,Cygwin 提供了一套抽象层 dll,用于将部分 Posix 调用转换成 Windows 的 API 调用,实现相关功能。这里面最典型的,最基本的模拟层就是

2020-05-28 14:25:04 712

转载 在Delphi中调用外部DLL 之External DLL 导入DLL

调用一个DLL比写一个DLL要容易一些。首先给大家介绍的是静态调用方法,稍后将介绍动态调用方法,并就两种方法做一个比较。同样的,我们先举一个静态调用的例子。unit Unit1;interfaceusesWindows, Messages, SysUtils, Classes, Graphics,Controls, Forms, Dialogs, StdCtrls;typeTForm1 = class(TForm)Edit1: TEdit;Button1: TButton;pr

2020-05-27 10:54:26 2000

转载 Qt项目管理介绍之qmake的33个规则

一、qmake的介绍qmake是Trolltech公司创建的用来为不同的平台和编译器书写Makefile的工具。手写Makefile是比较困难并且容易出错的,尤其是需要给不同的平台和编译器组合写几个Makefile。使用qmake,开发者创建一个简单的“项目”文件并且运行qmake生成适当的Makefile。qmake会注意所有的编译器和平台的依赖性,可以把开发者解放出来只关心他们的代码。Trolltech公司使用qmake作为Qt库和Qt所提供的工具的主要连编工具。qm...

2020-05-14 16:18:25 570

原创 VS2015 + QT5.9编译报错,error: 不包含“ToHashSet”的定义

VS2015 + QT5.9.0(msvc2015_64) 建立qt项目,编译报错:报错原因:ToHashSet 从 .NET 4.7.2 以上版本才支持,之前版本没有。查看自己vs上的Microsoft .NET Framework版本:“帮助”->“关于Microsoft Visual Studio(A)”,显示下面的信息:发现自己的是4.6的版本(下面的4.8是我更新后的版本)点击下载Microsoft .NET Framework4.8注意: ...

2020-05-12 19:52:24 1188

转载 windows7 ie11下 开发者模式浏览器版本不能切换

错误如下:1、切换浏览器处2、DOM资源管理器下:解决方法:microsoft官网下载更新补丁或者可通过如下路径查找下载需要补丁:下载路径:http://www.microsoft.com/en-us/download/details.aspx?id=45134(32 bit)http://www.microsoft.com/en-us/download/details.aspx?id=45154(64 bit)下载后安装重启电脑即可!——————————...

2020-05-11 17:09:12 1023

转载 winpcap 开发

Winpcap是一个强大的网络开发库,可以实现许多功能:获取可用的网络适配器;获取指定适配器信息(比如名称和描述信息);捕获指定网卡的数据封包;发送数据封包;过滤捕获的包以获取特定包等。首先到http://www.winpcap.org/install/default.htm下载安装winpcap驱动和DLL组件。然后到http://www....

2020-04-29 11:41:50 941

转载 list使用中遇到的erase问题(List Iterator Not Incrementable)

在VS2005中使用list的erase遇到了"List Iterator Not Incrementable"问题举个例子:1.list<int> sList;list<int>::iterator sP;sList.push_back(1);sList.push_back(3);sList.push_back(5);sList.push_bac...

2020-04-20 18:11:09 260

转载 vlc源码分析(二) 播放流程

当点击播放文件或者输入要播放的文件后,vlc会执行一系列的流程。  首先需要了解视频以及流媒体处理及播放的流程,由链接中的描述,视频以及流媒体处理时,首先要解协议(http,rtmp,rtsp等),然后是解封装(mp4,mkv,avi等),获得音频码流和视频码流,分别解码后,再根据时间戳进行同步。使用vlc点击播放后,就是这一系列的流程。  点击播放支持RTSP协议的摄像头后,vlc会开启...

2020-04-10 17:14:53 605

转载 音视频处理之PS封装的介绍与使用

1.PS封装介绍MPEG2-PS是一种多路复用数字音频,视频等的封装容器。PS是Program Stream(程序流或节目流)的简称。程序流将一个或多个分组但有共同的时间基准的基本数据流(PES)合并成一个整体流。它是为可靠稳定的储存媒介如光盘而设计的。一般来说,采用MPEG2-HD格式的高清数码摄像机一般以"MPEG2-PS"来保存文件;而采用AVCHD格式的高清摄像机则通常以".M2...

2020-04-09 22:23:33 1856 3

转载 音频格式转换

前段时间,在学习试用FFmpeg播放音频的时候总是有杂音,网上的很多教程是基于之前版本的FFmpeg的,而新的FFmepg3中audio增加了平面(planar)格式,而SDL播放音频是不支持平面格式的,所以通过FFmpeg解码出来的数据不能直接发送到SDL进行播放,需要进行一个格式转换。通过网上一些资料,也能够正确的播放音频了,但是对具体的音频转换过程不是很了解,这里就对FFmpeg的对音频的存...

2020-04-09 17:22:40 255

转载 FFmpeg库视频解码初探(软硬件解码)

ffmpeg最近有工作需求用到ffmpeg,分享下。包括一些编码的基础知识,ffmpeg视频解码基础,还有GPU解码的部分。属于科普工作,并不深入,记录了踩过的一些坑,希望有用饮水思源:雷霄骅(雷神)&代码部分参考自 同事***(打码)代码,谢谢大神!FFmpeg是一种功能强大的常用的视频/音频处理开源框架。支持几乎所有主流格式音视频的编解码,并能进行拼接等操作。基础知...

2020-04-02 10:55:01 1216

转载 git add all和git add .区别

先来回顾一下git add命令。如果要将单个文件加入到暂存区,可采用如下类似代码: 1 $ git add readme.txt 如果要将多个文件加入到暂存区,可以采用如下类似代码: 1 $ git add readme.txt ant.txt 文件与文件之间用空格分隔;也可以使用通配符方式批量提交文件:...

2020-03-13 17:39:34 11533 1

原创 【随笔】Easysize使用方法及注意要点

选择exsysize.h文件加入到项目,这一步不是必须的,只是觉得加入项目中比较好看。一、 使用步骤包含头文件:在stdafx.h包含头文件或者DemoEasysizeDlg.h(对应窗口头文件下) 在类内声明: 在DemoEasysizeDlg.h(窗体头文件)中加入DECLARE_EASYSIZE// CDemoEasysizeDlg 对话框class CDemoEasy...

2020-01-17 18:06:36 1185 2

转载 UniCode 下char*转CString ,利用MultiByteToWideChar进行转换,中文乱码的解决方案

使用A2W,A2T这些宏函数是常见的方法,但是中文会乱码,所以采用MultiByteToWideChar进行转换//计算char *数组大小,以字节为单位,一个汉字占两个字节 int charLen = strlen(sText); //计算多字节字符的大小,按字符计算。 int len = MultiByteToWideChar(CP_ACP,0,sText,cha...

2020-01-16 22:00:06 1695

gsoap windows下编译onvif代码框架脚本

gsoap windows下编译onvif代码框架脚本;把它放入gsoap/bin目录下,需要根据自己gsoap版本进行相关脚本的配置

2020-12-09

gsoap_2.8.109.zip

gsoap最新版本2.8.109;可用于onvif开发,是web soap开发的编译开发工具;生成代码框架

2020-11-24

net4.8_25623.zip

.netframework 4.8;主要用于升级windows下vs+qt模式下的开发环境;解决vs+qt开发程序编译报错 MSB3758 MSB4036

2020-05-12

bookmarks_2020_3_30.html

一些个人平时收集的网页资料,为谷歌浏览器导出书签类型----一些个人平时收集的网页资料,为谷歌浏览器导出书签类型

2020-03-30

VLC插件工程

VLC插件工程,主要将各个模块分割成各个工程编译调试!

2018-11-13

epoll学习实例

epoll学习实例,epoll是Linux内核为处理大批量文件描述符而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。另一点原因就是获取事件的时候,它无须遍历整个被侦听的描述符集,只要遍历那些被内核IO事件异步唤醒而加入Ready队列的描述符集合就行了。

2018-04-09

华三交换机笔试题

这是本人收集的华三通信交换机方面的笔试题,请大家放心下载

2018-02-06

空空如也

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

TA关注的人

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