转自:http://www.bkjia.com/Androidjc/1020017.html

1. 对外提供的主要流程接口      

收包的调用接口RtpReceiverImpl::IncomingRtpPacket

发包的调用接口ModuleRtpRtcpImpl::SendOutgoingData

收包处理之后的回调接口RtpData

2. 主要处理类  

ModuleRtpRtcpImpl, 控制模块,是个Module,自己能够独立处理

RtpPacketizer/RtpPacketizerH264/RtpPacketizerVp8 具体格式的解桢处理类

RtpDepacketizer/RtpDepacketizerH264/RtpDepacketizerVp8/ 具体格式的解析RTP包头的处理类

RtpReceiverImpl 接受RTP包的处理和接口类

RTPReceiverStrategy/RTPReceiverVideo/RTPReceiverAudio 具体的处理接受RTP包的类,Audio包含TelephoneEven的处理

RTPSender/RTPSenderAudio/RTPSenderVideo 发送RTP包类,被ModuleRtpRtcpImpl管理和调用,其中还需要解桢,管理和组FEC

FecReceiverImpl,FEC收包处理函数,被VIE调用

3. 主要功能:

解析RTP包头,解桢分包,FEC解析和封装;负责调用发包模块

不包含功能:RTP的组桢功能,乱序,buffer,纠错

WebRTC代码走读(十):rtp_rtcp模块分析,webrtcrtp_rtcp的更多相关文章

  1. WebRTC代码走读(八):代码目录结构

    转载注明出处http://blog.csdn.net/wanghorse ├── ./base //基础平台库,包括线程.锁.socket等 ├── ./build //编译脚本,gyp ├── ./ ...

  2. WebRTC代码走读(八):代码文件夹结构

    转载注明出处http://blog.csdn.net/wanghorse ├── ./base //基础平台库,包含线程.锁.socket等 ├── ./build //编译脚本.gyp ├── ./ ...

  3. geotrellis使用(十)缓冲区分析以及多种类型要素栅格化

    目录 前言 缓冲区分析 多种类型要素栅格化 总结 参考链接 一.前言        上两篇文章介绍了如何使用Geotrellis进行矢量数据栅格化以及栅格渲染,本文主要介绍栅格化过程中常用到的缓冲区分 ...

  4. nginx事件模块分析(一)

    nginx ngx_events_module模块分析 ngx_events_module模块是核心模块之一,它是其它所有事件模块的代理模块.nginx在启动时只与events模块打交道,而由even ...

  5. OpenRisc-43-or1200的IF模块分析

    引言 “喂饱饥饿的CPU”,是计算机体系结构设计者时刻要考虑的问题.要解决这个问题,方法大体可分为两部分,第一就是利用principle of locality而引进的cache技术,缩短取指时间,第 ...

  6. OpenRisc-41-or1200的cache模块分析

    引言 为CPU提供足够的,稳定的指令流和数据流是计算机体系结构设计中两个永恒的话题.为了给CPU提供指令流,需要设计分支预测机构,为了给CPU提供数据流,就需要设计cache了.其实,无论是insn还 ...

  7. OpenRisc-45-or1200的ID模块分析

    引言 之前,我们分析了or1200流水线的整体结构,也分析了流水线中IF级,EX级,本小节我们来分析ID(insn decode)级的一些细节. 1,基础 or1200的pipeline的ID阶段包含 ...

  8. 【转】python模块分析之typing(三)

    [转]python模块分析之typing(三) 前言:很多人在写完代码一段时间后回过头看代码,很可能忘记了自己写的函数需要传什么参数,返回什么类型的结果,就不得不去阅读代码的具体内容,降低了阅读的速度 ...

  9. 【转】python模块分析之hashlib加密(二)

    [转]python模块分析之hashlib加密(二) hashlib模块是用来对字符串进行hash加密的模块,明文与密文是一一对应不变的关系:用于注册.登录时用户名.密码等加密使用.一.函数分析:1. ...

随机推荐

  1. openstack 常用命令

    转自: docs.openstack.org $ nova boot --image ubuntu-cloudimage --flavor 1 --user-data mydata.file

  2. 十一天 python操作rabbitmq、redis

    1.启动rabbimq.mysql 在""运行""里输入services.msc,找到rabbimq.mysql启动即可 2.启动redis 管理员进入cmd, ...

  3. http apr 8080 exec 3解决

    IDEA运行tomcat,总是出现这个错误. 解决: 在tomcat的配置里,加上下面这句话: -Xms256m -Xmx512m -XX:MaxNewSize=64m -XX:MaxPermSize ...

  4. python: extend (扩展) 与 append (追加) 的差别

    >>> li = ['a', 'b', 'c'] >>> li.extend(['d', 'e', 'f']) >>> li ['a', 'b', ...

  5. linux下用cronolog分割apache日志

    linux下用cronolog分割apache日志,大神莫拍砖,菜鸟留一记录,小白请默默转载.连linux登陆和vi编辑都不会的,请默默关闭此页面.入正题 说明:淡绿色底的为linux命令,其他的为备 ...

  6. the XMLHttpRequest Object

    Ajax的核心是XMLHttpRequest对象.XMLHttpRequest对象允许异步发送请求并且以文本的形式返回结果.发送什么样的请求(what),在服务器端怎样处理这个请求(how),返回什么 ...

  7. Greedy:Cow Acrobats(POJ 3045)

    牛杂技团 题目大意:一群牛想逃跑,他们想通过搭牛梯来通过,现在定义risk(注意可是负的)为当前牛上面的牛的总重量-当前牛的strength,问应该怎么排列才能使risk最小? 说实话这道题我一开始给 ...

  8. SQL删除约束

    )禁止所有表约束的SQL select 'alter table '+name+' nocheck constraint all' from sysobjects where type='U' )删除 ...

  9. 【编程题目】查找最小的 k 个元素

    5.查找最小的 k 个元素(数组)题目:输入 n 个整数,输出其中最小的 k 个.例如输入 1,2,3,4,5,6,7 和 8 这 8 个数字,则最小的 4 个数字为 1,2,3 和 4. 算法里面学 ...

  10. cocos2d-x 第三篇 基本概念介绍

    场景(scene): 也有人叫做屏幕或舞台,是一个独立的程序流,一个程序可以有很多场景但当前运行的场景就只有一个.比如游戏中可以有介绍场景,菜单场景,第一关场景,过场1场景,第二关场景,胜利场景等.一 ...