本文在上篇的基础上介绍WebRTC视频部分的模块结构,以进一步了解其实现框架,只有了解了整体框架结构,对局部算法修改才能够胸有成竹。
一、对外接口
对外接口有ViEBase,ViECapture,ViECodec,ViEEncryption,ViEFile,ViEImageProcess,ViENetwork,ViERender和ViERTP_RTCP。主要接口有:
1)ViEBase:负责创建和管理视频会话链路;
2)ViECapture:设置采集设备和参数;
3)ViEImageProcess:视频画面处理配置;
4)ViENetwork:通信端口设置;
5)ViERender:渲染设备选择与设置。
与音频类似,对外接口都是通过VideoEngine对象来获取:
ViEInterfaceXX*pInterface = ViEInterfaceXX:GetInterface(pVideoEngine);
二、模块组成
模块之间的关系如图1所示,红色标明的模块与视频产生相关,VideoCaptureModule负责产生视频数据,