自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

突围

智慧改变人生,奋斗创造生活。改变命运,从此刻做起。

  • 博客(32)
  • 资源 (147)
  • 收藏
  • 关注

原创 【算法】 二分查找

二分查找看着是个最简单的算法没想到细节很头疼细节是魔鬼啊leecode标准二分查找内存占用很大??注意, lo 可以== hileft > right (这种情况发生于当left, mid, right指向同一个数时,这个数还不是目标值,则整个查找结束。)注意循环条件: left <= right中间位置计算: mid = left + ((right -left) >> 1)左边界更新:left = mid + 1右边界更新: right = m

2020-06-30 11:23:06 2785

原创 【算法】【sort 2.2.1】归并排序

分治法代表递归sort + mergelabuladong排序过程[Running] g++ test_sort_guibing_2.2..1.cpp -std=c++14 -o test_sort_guibing_2.2..1.exe && ./test_sort_guibing_2.2..1.exe 81 72 67 89 80 65 77 83 82 68 70 88--resize--12--b--sort;lo 0 hi 11sort;lo 0 hi..

2020-06-28 22:47:14 362

原创 【算法】【sort 2.1.3】希尔排序

shell sort是一种优化的 插入排序基于插入排序,每个不断缩小的区间得到后,都要做插入排序效率不稳定,但是一般比 插入排序好插入排序主要是做相邻的交换这东东有三层for执行过程:[Running] g++ test_sort_xier_2.3.cpp -std=c++14 -o test_sort_xier_2.3.exe && ./test_sort_xier_2.3.exe 100 99 8 7 200 3 1 4337 max h 7 43 99

2020-06-28 13:10:29 841

原创 【粗读webrtc】 jitterbuffer 2 音视频抖动缓冲区

webrtc音视频抖动缓冲区伪代码webrtc音视频抖动缓冲区伪代码rtp包几个时间值: 接收时间 ,发送时间,网络传输时间,网络延迟时间(网络排队)rtp包的接收时间 = sendtime + transferTimertp包的接收时间 = sendtime + transferTime + netdelayTime抖动缓冲区目的就是为了消除网络延迟对音视频的平滑播放造成的影响,如果没有抖动缓冲区,就可能播放的视频时快时慢,播放的音频断断续续。计算抖动的第一步就是计算网络的延迟,第二部根据.

2020-06-28 01:56:36 1407

原创 【粗读webrtc】jitterbuffer 3 :VCMInterFrameDelay 帧间延迟

代码量不大核心VCMInterFrameDelay计算framedelay 帧间延迟 公式: *delay = static_cast<int64_t>(currentWallClock - _prevWallClock - _dTS);帧时间戳的补偿值 dTS 计算: // Compute the compensated timestamp difference and convert it to ms and round // it to closest inte..

2020-06-28 01:27:42 783

原创 【MBP】macos 中使用 wintogo 安装 win10到NVME,然后虚拟机引导启动

设备挂载到win10 虚拟机的方法win to gogithub开源的cs工程5.42 版本win10 专业版企业版会蓝屏因为我没有usb 转typec所以我只能用mac 虚拟机 虚拟一个windows可大了,24G,我只好删除了好多东东NVME + typec1 tb ns550 wb绿联 typecmac 虚拟机没断网安装会有这个提示:虚拟机 引导外部设备,只有65Mwintogo 安装后,usb设备启动 1TB WB 硬盘的系统然后没有..

2020-06-27 23:23:21 2700

原创 【粗读webrtc】RTCP扩展反馈报文 接收 触发 nack重传

RTCP扩展反馈报文webrtc的rtp重传代码分析rtp也有nack机制,webrtc基于rtp实现了重传在一定程度上保证可靠性。rfc4585,看到了这么一段 : RTCP扩展反馈报文,有一种nack报文当FMT=1并且PT=205时,代表此报文是个NACK报文NameValueBrief DescriptionRTPFB205Transport layer FB messagePSFB206Pyload-specific FB message.

2020-06-27 11:00:38 732

原创 【粗读webrtc】视频帧接收到渲染 : VCMReceiver

VCMReceiverO:\WEBRWTCSTORE\webrtc-checkout\src\modules\video_coding\receiver.ccVCMReceiver 提供NACKLIST对外apistd::vector<uint16_t> VCMReceiver::NackList(bool* request_key_frame) { return jitter_buffer_.GetNackList(request_key_frame);}...

2020-06-27 07:50:58 548 1

原创 【macbook】vscode 配置支持c++11

快吐血了c++98 就是改不过来重新建立一个目录执行code runner,说没配置加了根据文件类型来的配置 竟然不跑安装code runner 插件安装后,会有一个三角在右边,点一下就可以编译运行加 task.json 都不行自己简历一个 .vscode 目录新建 task.json改g++ 都不行//I used this to solve my problem. Open your terminal//bashecho "alias g++='g++ ..

2020-06-26 18:53:23 5759 3

原创 【粗读webrtc】 jitterbuffer1: VCMJitterBuffer

VCMJitterBufferVCMJitterBuffer 是JB的核心类了把2019年的版本,webrtc已经不用这个机制了收到视频数据解析出rtp包后,会调用InsertPacket 插入JB中//向frame中插入一个包,frame是GetFrame() 返回的,如果GetFrame 返回值小于等于0,//那么,这个frame是无效的,那么InsertPacket 返回后,这个(frame指针??)必须丢弃。 // Inserts a packet into a frame ret

2020-06-26 15:12:54 695

原创 【粗读webrtc】RtpPacket

涉及到rtp 协议,完全说清楚,应该比较麻烦。封装的包数据:CopyOnWriteBuffer // Buffer. rtc::CopyOnWriteBuffer Buffer() const { return buffer_; }获取内存数据 const uint8_t* data() const { return buffer_.cdata(); }扩展:获取扩展 bool GetExtension(FirstValue, Values...) const;..

2020-06-26 12:25:57 402

原创 【粗读webrtc】 RtpPacketToSend

rtp_rtcp_format 模块O:\WEBRWTCSTORE\webrtc-checkout\src\modules\rtp_rtcp\source\rtp_packet_to_send.hRtpPacketToSend继承 RtpPacket业务数据包:封装在rtpsend包里,业务自定义 std::vector<uint8_t> application_data_;业务包访问: // Additional data bound to the RT..

2020-06-26 12:05:05 402

原创 【粗读webrtc】NACK 重传 :RtpPacketHistory NackList

webrtc支持RTPFB和PLI FB两种重传方式建立连接时,写入SDPO:\WEBRWTCSTORE\webrtc-checkout\src\media\engine\webrtc_video_engine.ccvoid AddDefaultFeedbackParams(VideoCodec* codec) { // Don't add any feedback params for RED and ULPFEC. if (codec->name == kRedCodecNam.

2020-06-26 11:48:10 474

原创 【粗读webrtc】创建mediaengine

本人也写过自己mediaengine现在看下webrtc是怎么做的O:\WEBRWTCSTORE\webrtc-checkout\src\media\engine\webrtc_media_engine.hMediaEngineInterfacemediaengine 是一个 MediaEngineInterface// MediaEngineInterface is an abstraction of a media engine which can be// subclassed..

2020-06-25 21:22:42 485

原创 【粗读webrtc】UnhandledPacketsBuffer

media 里面有个 UnhandledPacketsBuffer#include <stdint.h>#include <functional>#include <tuple>#include <utility>#include <vector>#include "rtc_base/copy_on_write_buffer.h"namespace cricket {class UnhandledPacketsBuff..

2020-06-25 21:14:55 234

原创 【整理】webrtc 线程模型

webrtc 线程模型整理陈子兴 [WebRTC架构分析]WebRTC 的线程模型前言WebRTC 作为一个实时音视频通信系统,包含了信令控制、音视频传输、音视频采集、音视频编码、音视频解码、音视频渲染等所有功能。由于其功能多样性,注定了系统结构的复杂性,再加上音视频需要做很多编码前后的处理,算法非常复杂,逻辑结构也复杂。为了在复杂网络环境下,保证音视频通信的流畅性,WebRTC 还做了很多流控、带宽预测、拥塞控制算法。为此,为了降低系统的复杂性,提高系统的运行效率,WebRTC 设计了一套多线程框

2020-06-25 09:36:15 1162

原创 webrtc架构整理

webrc架构 整理对外的api 是 peerconnection类内部是会话管理层引擎层(ve ae 传输)系统/硬件 相关 适配层webrtc里有一些名词架构图webrtc架构为2层:应用层、核心层最核心的是绿色的部分,是WebRTC提供的核心功能。紫色部分是浏览器提供的js API层。[即浏览器对WebRTC核心层的C++做了封装]WebRTC库属于核心层(绿色部分)。核心层比较复杂:分为4层:1 C++ API: 提供给外边的API接口(主要是对等连接P

2020-06-25 09:16:35 495

原创 【grpc】内存分配封装

grpc cpp的内存相关封装内存分配封装了好几种malloc方法,可选?static gpr_allocation_functions g_alloc_functions = {malloc, zalloc_with_calloc, realloc, free};使用前set一个方法进来void gpr_set_allocation_functions(gpr_allo

2020-06-20 10:23:23 539

原创 【grpc resolver】 socket 工具类

grpc 1.22.0最近实现了基于c core的resolver 插件grpc 是跨平台的 c core实现字节序转换grpc_htons 本地的整型转为网络字节序列相关跨平台实现//grpc_htons 转换输入的端口号 存储到地址的 sin_port中 ((grpc_sockaddr_in*)addr)->sin_port = grpc_htons(static_cast<uint16_t>(port)); ..

2020-06-20 10:01:09 329

原创 ns_turn_khash.h

ns_turn_khash.h/* The MIT License Copyright (c) 2008, by Attractive Chaos <attractivechaos@aol.co.uk> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (th.

2020-06-10 13:41:18 259

原创 windows10 vs2019 远程ubuntu 生成并运行ACoturn

上一篇 cmake已经ok了,很多库都安装了现在构建coturnninja +clang与gcc 不同的,生成的位置不是cmake-build这样的vs 生成的是out这样的,具体路径/root/.vs/coturn/aa25c316-6fa3-4ba1-87b0-c90eed75c387/out/build/event2-config.h/root/.vs/coturn/aa25c316-6fa3-4ba1-87b0-c90eed75c387/out/build/Linux-C..

2020-06-09 23:46:48 660

原创 visual studio 2019 远程ubuntu18.04 使用clang 构建 coturn

clion 远程linux 是可行的,这个我已经在ubuntu上试过了clion会通过ssh ftp什么的协议,在远程linux上创建一个临时目录当然,这个目录是可以让你来配置的,也可用默认的然后可以debug 远程,远程跑,本地代码断点配置自动同步,可以把本地修改实时自动更新过去windows 上可用visual studio ,vs 我感觉实际使用上比clion要好用一些。clion也可以配置为vs的功能,但是速度上,查找上,还是vs强大。vs2019 打开cmake拉取我再..

2020-06-09 12:58:19 830

原创 [zz] WebRTC 之ICE 流程

turn stun ice 协议 ,包括了好几个rfc知道协议的内容/流程,才能看懂 服务端代码这个时候,这种科普的文章方便入门在Chrome中使用WebRTC ICE服务进行端口扫描在Chrome中使用WebRTC ICE服务进行端口扫描什么是ICE Server?如前所述,扫描技术使用WebRTC ICE服务。ICE服务是WebRTC RTCPeerConnection用于自我发现、NAT遍历和中继的STUN或TURN服务,通过将服务器列表传递到RTCPeerConnectio..

2020-06-09 01:23:55 987

原创 【ICE】coturn 使用CMake方式引入spdlog预编译库

coturn目录结构预先构建spdlog官方仓库root@zhangbin-i7660u:/home/zhangbin/ICE/debug_coturn/coturn/thirdparty# git clone https://github.com/gabime/spdlog.git正克隆到 'spdlog'...remote: Enumerating objects: 71, done.remote: Counting objects: 100% (71/71), done..

2020-06-07 13:07:00 1179

原创 【libevent2】clion构建cmake工程: coturn 集成libevent2

coturn和libevent2 工程一起 cmake 化,cmakelist.txt方cortun目录下,libevent2在src/libevent2-2.1-stable下add subdirecotry后,libevent2 会自动生成,libevent2 会自动在coturn的编译目录下生成event2-config.h![在这里插入图片描述](https://img-blog.csdnimg.cn/20200606184322322.png?x-oss-process=image/..

2020-06-06 21:33:10 675

原创 【ICE 】 coturn :开源TURN and STUN Server 实现

coturnwebrtc 使用coturn作为ICE 服务器通过ICE 可以基于DTLS 作音视频传输原生p2p 技术原子rfc5766 turn serverThis project evolved from rfc5766-turn-server project (https://code.google.com/p/rfc5766-turn-server/). There are many new advanced TURN specs which are going far beyond

2020-06-06 17:23:30 1144

原创 windows打印GetLastError

DWORD winErr = GetLastError();std::string Error(DWORD dwErr){ char buff[512]; DWORD systemLocale = MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL); FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM/* | FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_ALLO...

2020-06-05 17:16:04 735

原创 【UML】一个升级程序的类图看升级程序等功能

优秀的研发人员首先是一个设计师cpp的开发离不开面向对象java这种高级语言更是抽象封装的提现本文以自己遇到的一个升级程序为例,说说UML 图解设计模式UML 里用到的几种关系-<> 抽象类带空心箭头的虚线 表示 【实现继承】,A继承B 暨 A 实现了B带空心箭头的实线 标识 【泛化继承】,带实心箭头的实线 【组合】(A是B其中的一部分)带空心箭头的实线 【聚合】 (A参与到B其中)一根实线 【关联】带箭头的虚线 【依赖】一条直线 【关联关系(asso..

2020-06-03 17:22:41 372

原创 【libevent2】最小堆和libevent2的实现

libevent2 的最小堆最小堆一颗完全二叉树每个根节点都比自己的叶子小左、右(如果有) 叶子之间没有大小关系具体对外api 有 插入、删除(根据啥来删除呢?位置索引?)、获取最优(就是根节点)、主要操作:上浮、下沉、获取左叶子、获取右叶子、比较大小关键插入是在最后插入,然后上浮删除是与最后一个对调,然后下沉每次操作后,这棵树还是一颗最小堆上浮、下沉这俩操作最难,为什么呢,因为要遍历、要交换、要比较。labuladong说过:因为⼆叉树是最容易培养框架思维的..

2020-06-03 12:59:10 362

原创 [zz] P2P通信原理与实现

P2P通信原理与实现转载这位大神前言当今互联网到处存在着一些中间件(Middle Boxes),如NAT和防火墙,导致两个(不在同一内网)中的客户端无法直接通信. 这些问题即便是到了IPV6时代也会存在,因为即使不需要NAT,但还有其他中间件如防火墙阻挡了链接的建立. 目前部署的中间件多都是在C/S架构上设计的,其中相对隐匿的客户机主动向周知的服务端(拥有静态IP地址和DNS名称)发起链接请求. 大多数中间件实现了一种非对称的通讯模型,即内网中的主机可以初始化对外的链接,而外网的主机却不能初始化

2020-06-02 00:46:49 534

原创 【zz】WebRTC TURN协议

P2P通信标准协议之TURN转载这位知乎大神简单点说,NAT的作用就是借一个公网地址给CLIENT, 然而这个公网地址并不好使, 于是turn server 就是再借一个好使的公网地址给CLIENT,这样谁都可以发起与CLIENT的通讯。 STUN的作用就是让CLIENT探测到自己的NAT是什么类型,CLIENT_A与CLIENT_B之间需要打洞,先各自通过STUN探测到自己的NAT是什么类型, 然后通过turn 建立通讯, 交换信息后,发现可以打洞,就喊一二三大家一起发力打洞,打洞成功,CLIE

2020-06-01 23:15:40 393

原创 windows 宽窄字符串转换

static std::string str2UTF8(std::string &str) { int nwLen = ::MultiByteToWideChar(CP_ACP, 0, str.c_str(), -1, NULL, 0); wchar_t * pwBuf = new wchar_t[nwLen + 1]; ZeroMemory(pwBuf, nwLen * 2 + 2); ::MultiByteToWideChar(CP_ACP, 0, str.c_str(...

2020-06-01 16:37:23 1503

DX910-SW-99002-r3p2-01rel1.tgz

DX910-SW-99002-r3p2-01rel1.tgz ,arm mali r3p2 01r1 open source driver for linux

2015-09-01

usb转串口适用于win8/8.1/10

usb转串口,在win8.1上用最新版的1.11驱动安装后无法启动设备,参考了大牛http://tieba.baidu.com/p/3279470230文章后,用了10518版本,2009年的驱动,迎刃而解。腻害啊!

2015-08-02

nexus5-cm11 提取的boot.img

nexus5-cm11 提取的boot.img,可单独烧录boot.img,用于恢复损坏了boot.img的cm11系统。在nexus5 cm11 4.4上测试通过。

2015-03-30

nexusd5 android5.0 型号LRX210 ROOT所需文件打包

nexusd5 android5.0 型号LRX210 ROOT 所需文件打包 适用于NRT_v1.9.8.sfx

2014-11-23

Creating Android Applications: Develop and Design 源码

Creating Android Applications: Develop and Design android应用开发,一书源码。来自 http://www.peachpit.com/store/creating-android-applications-develop-and-design-9780321784094

2014-04-16

moto 刷机 RSDLite6.1.6.msi

moto 刷机 RSDLite6.1.6.msi

2014-03-28

moto MB865 ROOT 工具包

Motorola Atrix 2 MB865 Root ADB. ADB 方式root。 http://mytiankong.com/?p=5626

2014-03-28

UPnP-arch-DeviceArchitecture-v1.1.pdf

UPnP arch Device architecture v1.1.pdf 2008年的1.1版本。

2014-03-14

nexus 5 root工具

CF-Auto-Root-hammerhead-hammerhead-nexus5.zip,windows平台,一键root。

2014-03-10

foxit reader 东亚语言支持 6.0以上

foxit reader 东亚语言支持安装包,适用于 6.0以上 。

2013-12-10

技嘉主板BIOS更新工具

技嘉主板BIOS更新工具兼容win7 64

2013-11-09

GA-MA785GT-UD3H主板 BIOS备份F3和F8

GA-MA785GT-UD3H 的BIOS备份,包括F3和F8版本。

2013-11-09

罗技c270软件

罗技c270 网络摄像头 适配软件 用于编辑视频、移动视频和图片。

2013-10-31

chm所有文件转为html

chm转html: 提取chm的所有文件,并转换为html网页的形式。

2013-10-30

live.2013.10.18windows

live 版本2013.10.18 windows vs2010 编译的整个工程文件,含编译脚本,参考http://www.cnblogs.com/skyseraph/archive/2012/04/11/2442840.html

2013-10-19

右键CMD打开

鼠标右键上增加CMD打开方式,脚本,导入reg,而后在文件夹上右键,选择CMD打开。

2013-10-19

live555_20131018_android

live555 20131018 移植android 后,make install 得到的生成文件。

2013-10-19

sourceinsight 配置文件

sourceinsight 配置文件 vim风格

2013-04-29

update-cm-7.0.3-N1-signed

update-cm-7.0.3-N1-signed ffmpeg build stagefright 脚本要下载的。

2013-04-14

编译VLC4Android所需要依赖包

编译VLC4Android所需要依赖包 tarballs打包。

2013-04-11

VisualAssist 注册表清理助手

用于对注册信息清理,以便重装

2024-04-15

Whole Tomato Visual Assist X 2023.1 v10.9.2476.0 (19 Jan 2023)

小番茄。 Visual Assist X 。 适配于vs2022. 2023.1 v10.9.2476.0 最新版本 请按说明操作,vs2022 是x64的 。 亲测可用。 非piaoyun版本。

2023-05-28

vs2022 visual assist x10.9.2451.0 by piaopyun/oledlg

汇总,总有一款适合你: visual assist x10.9.2451.0 by.piaoyun VA_X_Setup2451_0_oledlg Visual Assist X10.9.2440.0_Piaoyun 使用前先去VS插件管理里卸载掉之前的visual assist 插件。 飘云2440会无法启动vs2022,那么尝试2451或者oledlg

2022-09-23

VS2022 VISUAL ASSIST X 小番茄 v10.9.2435.0 VA_X_Setup2440_0.exe

VS2022 VISUAL ASSIST X 小番茄 v10.9.2435.0 VA_X_Setup2440_0.exe

2022-02-25

[FLV 解析工具]FLV_UI_Parse.exe

[FLV 解析工具] 带控制台,打印FLV header、previous tag size 等明细信息。 解析FLV 各TAG信息,带UI 界面展示。 读取本地文件。

2021-10-08

【右键菜单直接修改工具】shmnviewRightMenuModiy.zip

解决win10 win11 右键卡顿,转圈圈,直接修改禁用右键选项,F7 ,shift 多选,官方免费版本。亲测可用。

2021-10-08

【飞秋无 广告老版本】FeiQ.zip

飞秋无 广告老版本 直接双击运行

2021-10-08

BinaryViewerPortable.zip

【二进制查看工具】免费的binary viewer ,官方便携版

2021-10-08

Local IM.exe

经典版本的飞秋

2021-08-04

右键vscode.reg

VSCODE 添加到windows右键菜单

2021-08-03

官方照片处理工具.zip

照片处理 方便变为证件照

2021-07-09

node-v10.21.0-headers.tar.gz

node 10.21.0 owt server 构建nodejs工具

2021-07-09

mac-GitKraken-v5.0.4.zip

mac 版本的 GitKraken-v5.0.4.zip 未收费版本

2021-07-09

openssl-OpenSSL_1_1_1-stable.7z

webrtc owt 构建: openssl-OpenSSL_1_1_1-stable VS2019 X86 源码动态库静态库 解决 Can’t locate Win32/Console.pm in @INC (you may need to install the Win32::Console module)

2020-07-04

Resource 5.1.7 繁体可用.zip

EXE资源提取 工具,可用于对EXE程序中,二进制资源文件 进行提取。 适配 中文、英文、繁体都可用。

2020-05-28

VS2019_VisualAssistX10.9.2331_with_CRACK.7z

小番茄 适用于vs2019 visual studio 增强工具 亲测可用。

2019-10-14

ROCKCHIP 固件升级

win10 64 升级nand镜像,支持win10 rockusb驱动,支持batch tool win10识别和更新

2018-04-14

OPENGL ES 3.0编程指南 原书第2版 中文版 2015年出版

OPENGL ES 3.0编程指南 原书第2版 中文版 2015年出版

2017-10-04

consola 字体

consola 字体 可用于mac 系统 Android studio 字体的替换安装

2017-09-29

source insight 4 破解版下载最新版

source insight 4 破解版,里面包含原版v4.08, 破解补丁是pediy。

2017-02-20

空空如也

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

TA关注的人

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