自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(147)
  • 资源 (12)
  • 收藏
  • 关注

原创 Windows下的QT程序如何感知DPI变化

在qt5.12.2的QtWebEngine模块的QtWebEngineProcess子模块中的下图文件提供了让Windows下的QT程序感知DPI变化的完整代码代码如下:#include <qlibrary.h>#include <qsysinfo.h>#include <qt_windows.h>#include <Tlhelp32.h>class User32DLL {public: User32DLL() : s

2020-08-14 15:17:09 1770 2

原创 _cdecl、_stdcall、_fastcall函数调用约定区别

1. 函数调用过程在C语言中,假设我们有这样的一个函数:int function(int a,int b);调用时只要用result = function(1,2)这样的方式就可以使用这个函数。但是,当高级语言被编译成计算机可以识别的机器码时,有一个问题就凸现出来:在CPU中,计算机没有办法知道一个函数调用需要多少个、什么样的参数,也没有硬件可以保存这些参数。也就是说,计算机不知道怎么给这个函数传递参数,传递参数的工作必须由函数调用者和函数本身来协调。为此,计算机提供了一种被称为栈的数据结构来支持参

2020-08-12 19:01:59 496

转载 【转】Windows中虚拟内存、物理内存、页面文件、工作集概念

虚拟内存(VirtualMemory)是Windows管理所有可用内存的方式。对于32位Windows系统,每个进程所用到的虚拟内存地址从0到2^32-1,总容量4GB,其中2GB是与操作系统以及其他所有进程所共享,另外2GB分派给进程独占(这就是常说的32位Windows中一个进程最多能用2G内存的由来)。  4GB虚拟地址空间(VirtualAddressSpace,VAS)中,2GB的进程独占VAS是进程隔离的,换句话说,每个进程都可以从RAM或者硬盘上映射到属于自己的2GBVAS。所以虽然32位W.

2020-06-27 22:13:02 2002

原创 Win10右键菜单添加在此处打开CMD命令窗口(亲测有效)

引言Win10系统默认 “Shift+右键” 只能打开powershell,不能打开cmd,只能打开powershell。如果想在该文件夹目录下打开cmd,并且路径指向该目录,可以如下操作,非常快捷,一分钟搞定,亲测有效,特此记录途径在磁盘任意位置建立一个文本文档,打开后复制粘贴如下内容Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\cmd_h

2020-06-20 10:47:58 5696 5

转载 【转】Windows-Git之右键没有Git Bash Here的解决办法

操作步骤1、Win+R 打开运行输入regedit 回车打开注册表2、找到[HKEY_CLASSES_ROOT\Directory\Background]。3、在[Background]下如果没有[shell],则右键-新建项[shell]。4、在[shell]下右键-新建项[Git Bash Here],其值为“Git Bash Here",此为右键菜单显示名称。此时在任意位置鼠标右击就能看到Git Bash Here但是没有关联程序,现在还没有实际作用5、 在[Git Bash Here]下右

2020-06-20 08:53:12 1566

原创 WebRTC源码分析-呼叫建立过程之五(创建Offer,CreateOffer,下篇)

介绍MediaSessionDescriptionFactory::CreateOffer过程 && 相关的结构体

2020-06-19 08:42:19 1305 3

原创 WebRTC源码分析——弱指针WeakPtrFactory && WeakPtr

分析完CreateOffer来完成这篇文章

2020-06-16 09:08:56 771 1

原创 WebRTC源码分析——操作链实现OperationsChain

占位,在完成CreateOffer文章之后,来分析

2020-06-15 09:48:28 1111 2

原创 WebRTC源码分析——写时复制缓存CopyOnWriteBuffer

1. 引言先立个flag:写完sdp交换过程,回头来补充2. 什么是写时复制3. CopyOnWriteBuffer实现4. 总结

2020-06-12 17:22:28 1226

原创 Windows上抽取头文件脚本命令

引言有时候会遇到抽取第三方开源库所有头文件的需求,比如抽取WebRTC/Potocbuf的所有头文件Windowsecho off:: 定义源目录set sourcePath=%1::定义目标路径set resulePath=%2xcopy %sourcePath%\*.h %resulePath%\ /s /e /c /y /h /rpause可以将上述脚本放到一个copyh.bat文件中,并且将该文件放到系统的Path路径下,这样就可以随意使用该bat文件来抽取源目录下的所

2020-05-20 20:35:29 541

原创 WebRTC源码分析——Transport层

引言Transport对象分层先贴个图,占位

2020-05-17 22:46:49 1271 2

原创 WebRTC源码分析——DataChannel及其相关类

1. 引言2. DataChannelController3. DataChannelTransportInterface4. DataChannel

2020-05-14 22:03:04 4352 4

原创 WebRTC源码分析——记一次Offer && Answer SDP备用

1. 引言这两个sdp是进行1v1会话时获取的,这个会话中有:双向传递音视频 + 单向传递1路白板视频(抓取桌面) + 双向数据通道。此处记录下来,用于后续分析2. Offer SDPv=0o=- 6577481781483453854 2 IN IP4 127.0.0.1s=-t=0 0a=group:BUNDLE 0 1 2 3a=msid-semantic: WMS audio_label video_labelm=audio 9 UDP/TLS/RTP/SAVPF 111 103

2020-05-10 17:57:00 1068

原创 WebRTC源码分析-呼叫建立过程之四(下)(创建数据通道DataChannel)

1. 引言创建完PeerConnectionFactory 和 PeerConnection这两个API层的操盘对象之后,紧接着需要初始化本地的媒体,也即创建本地的音频轨、视频轨、数据通道,并将这些本地的媒体轨道添加到PeerConnection对象中。如图中红色标注所示。本文将详细描述上述数据通道的创建细节。2. 数据通道的创建3. 数据通道对象4. 总结...

2020-05-07 10:49:45 4448 2

原创 WebRTC源码分析-呼叫建立过程之四(中)(创建并添加本地视频轨到PeerConnection)

引言

2020-05-05 11:15:33 3538 9

原创 WebRTC源码分析——RtpTransceiver类

1. 引言RtpTransceiver类实现了api层的RtpTransceiverInterface接口,2. RtpTransceiver3. 总结

2020-04-29 23:21:11 1426 1

原创 WebRTC源码分析-呼叫建立过程之十(获取远端流,OnAddTrack)

占位

2020-04-26 10:40:02 1780 3

原创 WebRTC源码分析-呼叫建立过程之八(创建Answer,CreateAnswer)

占位

2020-04-26 10:38:50 1409

原创 WebRTC源码分析-呼叫建立过程之七(设置远端SDP,SetRemoteDescription)

占位

2020-04-26 10:38:09 2538 1

原创 WebRTC源码分析-呼叫建立过程之六(设置本地SDP,SetLocalDescription)

占位

2020-04-26 10:37:34 2524 5

原创 WebRTC源码分析-呼叫建立过程之五(创建Offer,CreateOffer,上篇)

占位

2020-04-26 10:36:32 5101 11

原创 WebRTC源码分析-呼叫建立过程之四(上)(创建并添加本地音频轨到PeerConnection)

占位

2020-04-26 10:35:45 4446 3

原创 WebRTC源码分析——引用计数系统

1. 引言WebRTC中自己实现了一套引用计数系统,在其基础库模块rtc_base/refcount中提供了相关实现,如下图所示:主要由四个类RefCountInterface、RefCounter、RefCountedObject、scoped_refptr一起构建起WebRTC中的引用计数系统。2. RefCountInterfaceRefCountInterface是一个抽象接口类...

2020-04-21 00:14:21 2781 9

原创 WebRTC源码分析——随机值(数、字符串)生成系统

1 引言WebRTC的rtc_base/helpers.h 和 rtc_base/helpers.cc提供了生成随机值的各种方法:生成多样长度的随机字符串、生成UUID、生成32位/64位的整数随机ID、生成随机的Double浮点型值,生成大于0的32位整数随机ID值等等。本文将对这个随机值生成模块进行详细的介绍,由于时间关系,暂且先放置到这儿占位,以便其他文章引用,有时间就来完成文本的详细描...

2020-04-19 12:13:20 1401

原创 WebRTC源码分析——Call模块

目录1. 引言2. Call对象的创建2.1 创建CallFactory对象2.2 创建Call对象2.2.1 PeerConnection.CreateCall_w2.2.2 CallFactory.CreateCallCall::Create3 Call功能详述4 总结1. 引言Call模块是WebRTC会话中不可缺少的一个模块,一个Call对象可以包含多个发送/接收流,且这些流对应同一个...

2020-04-18 22:16:56 2809 4

原创 WebRTC源码分析——RtcEventLog事件日志模块

1. 引言从RtcEventLog的名称粗略看来是WebRTC中的事件日志系统,具体是做什么,如何做的,当前还未看全源码,所以不便下结论。比较确定的是RtcEventLog和WebRTC中RTC_LOG宏所输出的日志是不相干的两个系统。2. RtcEventLog对象的创建3. RtcEventLog对象的作用4. 总结...

2020-04-17 09:42:29 1206 7

原创 WebRTC源码分析——共享智能指针rtc::scoped_refptr

先占位,给其他文章引用

2020-04-04 16:28:20 805

原创 WebRTC源码分析——引用计数rtc::RefCountedObject

先占个位置,方便其他文章引用,后续将进行分析

2020-04-04 16:15:05 1114

原创 WebRTC源码分析——视频流水线建立

由于文章在有道云笔记中写的,粘贴复制到简书很多图片没法一次性上传上,偷懒,想看图片的可以看下面笔记的链接:文档:WebRTC视频流水线建立.note1. 引言常见的音视频会话中,一端将本地的音视频数据传输给对端将至少经历3个步骤:采集->编码->传输,将数据从采集模块到发送模块的流动称为音视频数据的流水线。接下来几篇文章中将以视频数据为本来讨WebRTC是如何建立...

2020-01-17 21:21:28 1385 2

原创 Windows平台下WebRTC源码下载及编译

由于文章在有道云笔记中写的,粘贴复制到csdn很多图片没法一次性上传上,因此就不在博客上粘贴了,此处粘贴下我的有道云笔记的链接:文档:Windows平台下Webrtc编译.note...

2020-01-17 21:16:21 892 6

原创 保存webrtc::VideoFrame到YUV文件

void SaveVideoFrameToFile(const webrtc::VideoFrame& frame, std::string file) { rtc::scoped_refptr<webrtc::VideoFrameBuffer> vfb = frame.video_frame_buffer(); static FILE *fp = fo...

2020-01-02 15:58:10 2010

原创 存HBITMAP到位图bmp文件

BOOL SaveBitmapToFile(HBITMAP hBitmap, CString szfilename) { HDC hDC; //当前分辨率下每象素所占字节数 int iBits; //位图中每象素所占字节数 WORD wBitCount; //定义调色板大小, 位图中像素字节大...

2020-01-02 15:53:04 466

转载 技术文章配图指南(转)

https://draveness.me/sketch-and-sketch

2019-12-18 10:50:28 332

原创 WebRTC源码分析——呼叫建立过程之三(创建PeerConnection)

0 前言当端与服务器建立连接之后,可以通过与服务器的信令交互获知对等端点的存在。当需要与对方端点建立P2P连接时,第一步是先创建PeerConnectionFactory对象,然后再通过PeerConnectionFactory工厂来创建PeerConnection对象。如图中红色字体所示。在example/peerconnection_client工程中,发起方调用如下代码来创建PeerC...

2019-11-25 23:32:53 8299 11

原创 WebRTC源码分析-PeerConnectionFactory简述

前言本文简单的描述下PeerConnectionFactory类持有的数据成员,以及除了创建PeerConnection外还提供哪些能力,但不对这些方法进一步跟踪源码,留待以后。PeerConnectionFactory的数据成员 bool wraps_current_thread_; // 信令线程是否Wrap而来 rtc::Thread* network_thread_; ...

2019-11-22 17:13:00 1367

原创 WebRTC源码分析-线程安全之Proxy,防止线程乱入

占位

2019-11-21 21:59:01 2172 3

原创 WebRTC源码分析-线程基础之跨线程同步MethodCall

前言MethodCall类位于WebRTC的api/proxy.h中,如其名而知该类的作用是进行某个方法调用。实际上,是用来实现某个指定方法在指定线程上同步执行并返回结果的效果。其实该文件中并没有真正的MethodCall类,而是MethodCall0,MethodCall1,…,MethodCall5,还有ConstMethodCall0,ConstMethodCall1。这些数字代表什么意思...

2019-11-21 21:49:13 1488 3

原创 WebRTC源码分析-呼叫建立过程之一(综述)

前言基于WebRTC源码下example/peerconnect_client,example/peerconnect_server工程打算写一个典型的呼叫建立过程的源码分析系列文章,本文是一个序章。example/peerconnect_client与,example/peerconnect_server实现了一个Demo性质的P2P音视频会话程序,其中有3个主要的类:MainWnd类进行界面...

2019-11-20 18:08:02 5602 3

原创 WebRTC源码分析——呼叫建立过程之二(创建PeerConnectionFactory)

占位

2019-11-20 18:06:50 6105 11

原创 博客搬家

为了同步简书和CSDN博客,此篇为本人的搬家权限声明

2019-11-20 14:35:59 204

Windows Internals, Part 1 7th.pdf

covers the architecture and core internals of Windows 10 and Windows Server 2016.

2020-07-27

STUN-RFC3489中英文合集.zip

STUN协议-Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)的中英文合集pdf

2019-09-28

STUN-RFC5389中英文合集.zip

STUN协议的规范性文档RFC5389合集,包含中文翻译pdf以及英文原版pdf

2019-09-27

ffmpeg源码windows上编译的工具打包

ffmpeg源码windows上编译的工具打包,有些工具比较难找,因此在此打包处理

2019-03-08

RTMP规范中英文对照版 带书签 PDF

RTMP规范中英文对照版(带书签),是学习RTMP协议的最好资料。不可错过

2019-02-13

ffplay功能流程图

ffplay的功能流程图,比较清晰简洁的告知ffplay解码播放的整个流程

2018-12-12

ffplay源码解析图

雷神总结的关于ffplay.c的函数调用结构流程图,相当清晰

2018-12-12

《FFMPEG源码深入解析.pdf》

非常棒的FFMPEG源码分析书籍,拒绝隔靴搔痒,直戳重点

2018-10-10

FFMPGE源码解析

FFMPEG源码解析文献,非常好的参考资料。出去avfilter外其他库很全

2018-10-09

<>

音视频编解码技术的经典之作,JPEG,MPEG-1, MPEG-2,MPEG-4,H263,H264编码原理

2018-10-09

数据库系统概念中文版-第五版

非常经典的外文翻译后的数据库书籍,非常详细地介绍了数据库的方方面面,并且例子也很多

2014-05-05

空空如也

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

TA关注的人

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