WebRTC视频数据统计之延时、抖动与丢包

一、前言 这篇文章主要想说明的是WebRTC内部对视频上下行延时、抖动、丢包如何更新,上层又怎么获取到这些统计信息的。对应的WebRTC版本:63。 二、背景 最近在内网情况下测试视频会议,视频下行延时很大,很多时候超过100ms。另外,视频的上下行抖动总是稳定在30~40ms这个区间。这些...

2019-04-25 21:43:13

阅读数 128

评论数 0

C/C++ 日期时间整理备忘

在平时的开发过程中,难免会遇到时间相关的处理,比如心跳、定时任务、超时处理等等,总是很难在众多时间处理函数中选择一个。在假期这几天把经常用到的一些时间处理函数整理了一下,算是个梳理也是备忘吧。 一、一些常用时间类型 1、time_t 在VS2015中,time_t的定义为: #...

2018-04-07 17:11:22

阅读数 182

评论数 0

什么是devops,基于Gitlab从零开始搭建自己的持续集成流水线(Pipeline)

持续集成 devops pipeline CI/CD Gitlab 运维

2017-12-12 01:27:30

阅读数 16592

评论数 15

建造者模式——设计模式之创建型

建造者模式介绍及如何在代码中使用该模式

2017-08-07 21:43:25

阅读数 523

评论数 0

GNU profiler(gprof)使用介绍及遇到的问题总结

GNU profiler、gprof、性能测试分析、图形化调用关系

2017-02-24 14:08:24

阅读数 924

评论数 0

Google开源协议Protobuf的简介及其序列化原理

protobuf介绍及其序列化原理什么是probobuf、作用是什么:   Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式...

2016-11-17 14:13:49

阅读数 21791

评论数 1

仿迅雷实现下载工具,支持断点续传和多线程下载以及简单界面展示

这篇博客介绍一下在公司实习时选做的一个项目,虽然实习期间没有全部完成,但觉得这个项目做好的话挺有意思的,就在之后几天赶着完善了这个项目。 博客最后给出代码地址 这个项目是仿照迅雷,实现一个下载工具。 (开发平台: Ubuntu 16) 功能:能由一个基于HTTP协议的网络资源链接,把该链接...

2016-11-04 18:58:37

阅读数 3766

评论数 1

SGI-STL内存池实现及简单使用

这篇博客主要讲一下SGI-STL中的空间配置器的工作流程。我自己实现模仿STL实现了一个空间配置器,并且用两个容器list和vector测试使用了空间配置器。这里只给出模型,如果要看源码,请到https://github.com/common1994/Project/tree/master/STL...

2016-08-15 12:51:26

阅读数 2473

评论数 0

STL算法之 copy、copy_backward、copy_n

这些函数都定义在stl_algobase.h里面,使用时只需要包含 algorithm 头文件就行。copy :STL 的SGI版本中的copy函数声明如下:template <class InputIterator, class OutputIterator> inline Outp...

2016-07-20 23:03:46

阅读数 2007

评论数 0

文件压缩(平台Linux & 语言C++)

这篇博文没有给出源码,如果需要这个项目的源码,可以到https://github.com/common1994/Project/tree/master/FileCompress下载。 (1)项目背景:练习哈夫曼树时,了解了哈夫曼树的应用,开始着手写这个文件压缩项目。 (2)项目描述: 哈夫曼...

2016-07-13 23:11:31

阅读数 1803

评论数 0

GitHub版本控制使用(命令行实际操作图解Git使用方法)

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目Git的优势: (说到优势,那么自然是相对与SVN而言的) 版本库本地化,支持离线提交,相对独立不影响协同开发。每个开发者都拥有自己的版本控制库,在自己的版本库上可以任意的执行提交代码、创建分支等行为。例如,开发者认为...

2016-06-14 18:26:33

阅读数 14427

评论数 0

外排序的实现(平台Linux & 语言C++)

前面两篇博客介绍了一下内部排序,也就是待排序的文件或数据可以一次加载进内存,之后进行排序; 读者可以参考之前的博客: http://blog.csdn.net/chengzi_comm/article/details/51429165 http://blog.csdn.net/chengzi...

2016-05-24 23:32:25

阅读数 674

评论数 0

两种非比较排序的原理和实现(计数排序和基数排序)

前些天总结并实现了一些常见的比较排序算法,主要有这三大类: 插入排序、交换排序、选择排序,读者可以参考一下之前的博文:http://blog.csdn.net/chengzi_comm/article/details/51429165 这些排序方法都是直接或间接比较两个数之间的大小,从而得出数...

2016-05-24 22:43:39

阅读数 732

评论数 0

常见比较排序算法的实现(归并排序、快速排序、堆排序、选择排序、插入排序、希尔排序)

这篇博客主要实现一些常见的排序算法。例如: //冒泡排序 //选择排序 //简单插入排序 //折半插入排序 //希尔排序 //归并排序 //双向的快速排序 //单向的快速排序 //堆排序对于各个算法的实现原理,这里不再多说了,代码中注释较多,结合注释应该都能理解算法的原理,读者...

2016-05-16 22:27:55

阅读数 7413

评论数 0

静态链表(C++实现)

对于线性链表,用一维数组来进行描述。这种描述方法便于在没有指针类型的高级程序设计语言中使用链表结构。

2016-05-13 18:23:17

阅读数 4197

评论数 0

Linux I/O复用中select poll epoll模型的介绍及其优缺点的比较

**关于I/O多路复用:** I/O多路复用(又被称为“事件驱动”),首先要理解的是,操作系统为你提供了一个功能,当你的某个socket可读或者可写的时候,它可以给你一个通知。这样当配合非阻塞的socket使用时,只有当系统通知我哪个描述符可读了,我才去执行read操作,可以保证每次read都能读...

2016-04-22 14:48:10

阅读数 11279

评论数 2

基于HTTP协议的Web服务器

这篇博文只给出运行截图,没有附上源代码。 如果想要参考源码,请到 https://github.com/common1994/httpd.git * 下载。**下面简单讲述一下HTTP协议和项目描述:* HTTP协议是一个属于应用层的协议,主要特点可概括如下: 1)...

2016-03-22 17:05:55

阅读数 2454

评论数 2

【C++】二叉树的创建方法及其遍历的递归与非递归方法总结

二叉树的创建方法及其遍历的递归与非递归方法总结

2015-09-15 11:00:51

阅读数 1345

评论数 0

数组和指针的区别

C++/C程序中,指针和数组在不少地方可以相互替换着用,让人产生一种错觉,以为两者是等价的。          数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变;数组实际上就是一个常量指针,例如:     char a...

2015-09-03 21:29:06

阅读数 532

评论数 0

vld 内存泄露检测工具vld的实现

Visual Leak Detector (vld)内存检测工具的实现

2015-09-01 21:00:44

阅读数 858

评论数 0

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