开源代码阅读
文章平均质量分 79
MeRcy_PM
England expects that every man will do his duty
展开
-
Webrtc delay-base-bwe代码分析(5): AimdRateControl模块
@(webrtc)[webrtc, congestion control]Webrtc delay-base-bwe代码分析(5): AimdRateControl模块0. 简介这个模块是根据OveruseDetector模块计算出来的状态来维护码率控制模块的自动状态机,并更新估算出来的对端发送速率,提供给REMB进行反馈。1. 原理一共维持三个状态,增长、保持、衰减,状态转换根据OveruseDe原创 2017-05-22 19:44:11 · 2118 阅读 · 2 评论 -
Webrtc delay-base-bwe代码分析(4): OveruseDetector模块
@(webrtc)[webrtc, congestion control]Webrtc delay-base-bwe代码分析(4): OveruseDetector模块0. 简介这个模块主要是根据OveruseEstimator模块校正后的到达时间差来对链路使用状态进行评估,为有限自动状态机提供状态转换的条件,同时本模块还有GCC文档中提到的自适应阈值计算。阈值自适应原因如下: 个人理解: -原创 2017-05-22 19:35:49 · 1564 阅读 · 0 评论 -
Webrtc delay-base-bwe代码分析(3): OveruseEstimator模块
@(webrtc)[webrtc, congestion control]Webrtc delay-base-bwe代码分析(3): OveruseEstimator模块该模块是一个卡尔曼滤波,根据当前到达时间差和传输大小的值,对到达时间差进行滤波,计算更精准的到达时间差。0. 卡尔曼滤波基础公式从参考文档中获得基础公式及对应变量意义。公式: 变量:1. OveruseEstimator的卡尔曼滤原创 2017-05-22 19:32:48 · 2072 阅读 · 0 评论 -
Webrtc delay-base-bwe代码分析(2): InterArrival模块
@(webrtc)[webrtc, congestion control]Webrtc delay-base-bwe代码分析(2): InterArrival模块0. 参考文档[1] google congestion control [2] Rtp payload format for h2641. 功能该模块主要对到达的时间进行小范围内的统计、采样,并根据一定的时间间隔计算出对应的延迟、传输大原创 2017-05-22 19:30:18 · 1808 阅读 · 1 评论 -
Webrtc delay-base-bwe代码分析(1): RateStatistics模块
@(webrtc)[webrtc, congestion control]Webrtc delay-base-bwe代码分析(1): RateStatistics模块RateStatistics这个类的作用为记录一个时间窗口内的速率值,并返回当前时间区域内的码率值。单独开一个文章主要是用来描述其用来记录速率值的桶,一开始看的比较迷糊。class RateStatistics { // Count原创 2017-05-22 19:22:43 · 1697 阅读 · 0 评论 -
webrtc中rtcp反馈与码率控制模块分析
webrtc中rtcp反馈与码率控制模块分析原创 2017-05-09 15:10:34 · 5267 阅读 · 1 评论 -
Glib内存管理模块之magazine layer
Glib中使用了slab进行内存管理,同时引入了magazine cache来进行多级缓存。本文主要介绍magazine cache部分实现。原创 2016-12-01 15:09:31 · 1841 阅读 · 0 评论 -
state-threads的协程切换
state-threads是一个C语言实现的轻量级协程库,基于setjmp和longjmp来对不同协程进行切换。本文将先分析其保存上下文的setjmp和longjmp的汇编代码,简单分析其上下文切换的过程。原创 2016-11-10 11:58:50 · 1572 阅读 · 0 评论 -
gstreamer的collectpad源码分析
gstreamer的collectpad是一类特殊的pad,这类pad工作于收集模式,用于管理控制若干个pad组成的pad集合的数据同步处理。大部分的合成器(muxer)均使用collectpad来收集音视频数据,并根据可重载的收集条件判断函数对不同pad之间的数据进行处理(或同步)。 由于collectpad中大部分处理函数均可重载(set_func),因此本文只讨论默认的处理函数。原创 2016-11-08 10:16:40 · 4181 阅读 · 0 评论 -
gstreamer中rtpjitterbuffer的定时器线程及重传请求代码分析
本文主要描述gstreamer中rtpjitterbuffer的定时器线程的处理流程原创 2016-10-12 23:26:13 · 3399 阅读 · 4 评论 -
gstreamer中的rtpjitterbuffer代码分析:推送线程
本文主要分析gstreamer中的rtpjitterbuffer中推送数据线程的代码。原创 2016-10-09 22:20:56 · 3047 阅读 · 0 评论 -
gstreamer中的rtpjitterbuffer
本文主要介绍了gstreamer中的rtpjitterbuffer功能、简要处理流程及一些参数。原创 2016-10-09 22:20:28 · 3495 阅读 · 0 评论 -
[源码]SQUID的简单内存调试方法
SQUID自身使用了一种简单的内存调试方式,可以在程序运行的时候对内存的使用情况进行监控调试(指开发层面的监控,如泄漏,内存合法性,不是运维层面的内存监控)。本文简单介绍其内部实现。不过对于其内存泄漏检查的部分代码仍有疑惑。原创 2016-04-09 15:01:42 · 953 阅读 · 0 评论 -
Nginx负载均衡代码之加权轮询
NGX的加权轮询实现代码原创 2016-01-07 10:40:06 · 967 阅读 · 0 评论 -
NGX的第三方负载均衡模块fair
nginx第三方负载均衡模块upstream_fair代码阅读原创 2016-02-15 09:05:48 · 2669 阅读 · 0 评论 -
Webrtc delay-base-bwe代码分析(6): 整体分析
Webrtc delay-base-bwe代码分析(6): 整体分析原创 2017-05-22 19:46:27 · 2027 阅读 · 0 评论