WebRTC代码走读(十一):video_coding模块分析

1. 对外提供的主要接口

VideoCodingModuleImpl::IncomingPacket, 收包处理接口,在RTP解析流程之后调用

VideoCodingModuleImpl::Decode, 处理解码的接口

VCMReceiveCallback 解码完成之后的回调接口

VideoCodingModuleImpl::AddVideoFrame 发送frame接口,原始的视频数据I420

VCMPacketizationCallback 编码完成之后提供给外面的回调接口

2. 主要的处理类

VideoCodingModuleImpl, module处理和控制类,管理和维护VideoSender和VideoReceiver

VideoReceiver, Video收包和解码的处理,调用DecodedImageCallback进行进行解码

VCMReceiver, video收包的处理,管理VCMJitterBuffer

VCMJitterBuffer, video的buffer,组桢,乱序,抖动等处理

VideoSender,视频发送的具体的类, 管理VCMGenericEncoder接口类

VCMGenericEncoder, 具体的管理编码类,维护VideoEncoder

VCMEncodedFrameCallback,实现Encode模块提供的回调接口,用于编码完成之后的处理

VP8Encoder/VP8Decoder/..., 具体的编解码封转类

3. 主要功能

处理jitterbuffer,组桢、抖动、乱序等处理; 处理编码解码;管理video的编码解码流程

时间: 2024-11-04 23:01:59

WebRTC代码走读(十一):video_coding模块分析的相关文章

WebRTC代码走读(十):rtp_rtcp模块分析,webrtcrtp_rtcp

转自:http://www.bkjia.com/Androidjc/1020017.html 1. 对外提供的主要流程接口       收包的调用接口RtpReceiverImpl::IncomingRtpPacket 发包的调用接口ModuleRtpRtcpImpl::SendOutgoingData 收包处理之后的回调接口RtpData 2. 主要处理类   ModuleRtpRtcpImpl, 控制模块,是个Module,自己能够独立处理 RtpPacketizer/RtpPacketiz

WebRTC代码走读(十):rtp_rtcp模块分析

1. 对外提供的主要流程接口 收包的调用接口RtpReceiverImpl::IncomingRtpPacket 发包的调用接口ModuleRtpRtcpImpl::SendOutgoingData 收包处理之后的回调接口RtpData 2. 主要处理类 ModuleRtpRtcpImpl, 控制模块,是个Module,自己能够独立处理 RtpPacketizer/RtpPacketizerH264/RtpPacketizerVp8 具体格式的解桢处理类 RtpDepacketizer/RtpD

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

转载注明出处http://blog.csdn.net/wanghorse ├── ./base //基础平台库,包含线程.锁.socket等 ├── ./build //编译脚本.gyp ├── ./common_audio //基础公共的音频处理 │ ├── ./common_audio/include //就一个类型转换头文件 │ ├── ./common_audio/resampler //音频重採样代码 │ ├── ./common_audio/signal_processing //音

2016年大数据Spark“蘑菇云”行动代码学习之AdClickedStreamingStats模块分析

    系统背景:用户使用终端设备(IPAD.手机.浏览器)等登录系统,系统采用js脚本发送用户信息和广告点击信息到后台日志,进入flume监控,通过kafka消息中间件传输数据,由Spark Streaming消费后将信息存储到后台.本模块主要就是实现将kafka发送的信息进行过滤,动态更新黑名单,生成有效的广告点击数据,形成广告点击趋势,将相关信息通过数据库连接池写入数据库MySql.     实现思路:由于kafka传输的广告点击数据中有一些是无效数据,需要根据一定的规则进行过滤(本方案采

学生信息管理系统(四)——模块分析

学生信息管理系统已经敲完了,也进行了第一次验收,结果不是太理想.之前的总结也没有及时发表.现在重新复习一遍,把它发表. 从今天开始,我们就进入了代码分析阶段.现在我们就来分析一下模块中的几个函数. Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.Recordset 'executes SQL and returns Recordset Dim cnn As ADODB.Connection

ABP之模块分析

ABP之模块分析 本篇作为我ABP介绍的第三篇文章,这次想讲下模块的,ABP文档已经有模块这方面的介绍,但是它只讲到如何使用模块,我想详细讲解下它模块的设计思路. ABP 框架提供了创建和组装模块的基础,一个模块能够依赖于另一个模块.在通常情况 下,一个程序集就可以看成是一个模块.在 ABP 框架中,一个模块通过一个类来定义,而这 个类要继承自 AbpModule. 其实它的设计思路很简单: 1.加载bin目录下的所有dll 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Android WIFI模块分析

一:什么是WIFI WIFI是一种无线连接技术,可用于手机.电脑.PDA等终端.WIFI技术产生的目的是改善基于IEEE802.11标准的无线网络产品之间的互通性,也就是说WIFI是基于802.11标准的,但WIFI不等同无线网络. 二:Android平台下的WIFI模块 简单介绍一下,WIFI模块的基本功能: 1. 开关WIFI 除了在WIFI设置界面可以开关WIFI,还有其他的方法可以设置,要查看这些开关状态是否一致.还有就是飞行模式对WIFI开关的影响,由于WIFI开和关都有一个时间过程,

基于Android6.0的RIL框架层模块分析

本文与另外一篇分析RIL底层模块的文章是姐妹篇:基于Android6.0的RIL底层模块分析 根据手机网络制式的不同,通常系统中会扩展Phone.java这个类,扩展成GSMPhone和CDMAPhone.这个类主要是抽象整个手机来处理通信过程中与其他模块的交互.我们以GSMPhone为例,分析来电流程如何从底层传递到上层.该分析主要基于代码,所以会比较啰嗦. 以GSMPhone为例,在PhoneFactory类中有实例化该类的方法: public static Phone getGsmPhon

WebRTC中的AppRTCDemo.apk简单分析

以前一直在QQ空间记录一些简单的关于webrtc的笔记.博说不如发布CSDN,想想也可以,解决了一些小问题,也可以帮助一下其它碰到该同样问题的人. 上周试着将WebRTC中的PeerConnection_client进行改写,拿 掉了PeerConnection_Server端,改用openfire服务器,信令采用xmpp,主要代码来源于call.主要还是将http请求用xmpp重写了,原理上很简单,合并后,效果还可以. 现在开始看android版本的peerconnection,也就是标题的A