WebRTC源码目录结构

源码地址:

https://webrtc.googlesource.com/src.git/+/b0cc68e61205fd11a7256a6e85307ec17ad95790/

目录结构主要分为:

        1、接口层;

        2、业务处理层;

        3、音视频处理层;

        4、基础支持层;

以webrtc120源码目录为例:

     

api:WebRTC对外提供的所有接口都存放在这个目录下,如果要为WebRTC增加新的接口,也需要将编写的接口文件放在该目录下;

pc:PeerConnection目录,PeerConnection可以做很多事情,包括:媒体协商、收集Candidate、传输音视频数据等;

call:Call目录里存放的是与“呼叫”相关的文件,表示的是用户之间建立的会话,call这个词是从程控电话交换系统衍生而来的,实际上与互联网中的Session是同一概念。一个WebRTC终端可以同时发起多个“呼叫”,即创建多个call实例,而在每个call实例中,又可以包含多个发送/接收流;

media:media目录用于存放与媒体引擎相关的代码,媒体引擎包括音频引擎和视频引擎,主要用于音视频的控制;

audio:用于存放与音频流相关的代码;

video:用于存放与视频流相关的代码;

common_audio:用于存放一些音频的基本算法,包括环形队列、傅里叶算法、滤波器等;

common_videosdk:存放与视频相关的算法及工具,如 libyuv、sps/pps分析器、I420缓冲器等;

 sdk:存放移动端特定的代码,如:Android端的视频采集、iOS端的视频采集等;

p2p:存放端到端网络连接相关的代码,如:DTLS、STUN协议的实现等;

 stats:存放各种数据统计相关的类,如:发送了多少包、丢失了多少包、带宽大小等;

rtc_base:存放一些基础代码,如:线程、事件、socket等;

rtc_tools:存放一些与服务质量相关的工具;

tools_webrtc:存放一些与WebRTC性能相关的工具;

system_wrapper:存放与操作系统相关的代码,如:CPU特性、原子操作、读写锁、时钟等;

modules:组件库

        是WebRTC中特别重要的一个目录,包括音视频的采集、处理、各种编解码器等模块都存放在这个目录下。该目录存放的模块都是比较独立的,可以单独的抽取出来,例如:回音消除、降噪等模块。modules目录下的子目录也分为几个大类:

1、文件

        include:module头文件;

        third_party:第三方依赖,fft、g711等;

2、音频处理类

        audio_coding:存放音频编解码相关的代码;

        audio_device:存放PC端音频采集和音频播放相关的代码(注意WebRTC移动端的音频设备采集和播放的代码不在其中,而是在一级目录sdk/目录下);

        audio_mixer:存放混音相关的代码;

        audio_processing:存放音频前后处理相关的代码,例如回音消除、降噪的代码都在该目录下;

        async_audio_processing:异步音频处理类;

3、视频处理类

        video_capture:存放视频采集相关的代码;

        video_coding:存放视频编解码相关的代码;

        video_processing:存放视频前后处理相关的代码;

        desktop_capture:存放PC端桌面采集相关的代码;

4、网络及流控类

        rtp_rtcp:存放的是RTP/RTCP协议代码;

        bitrate_controller:存放的是Transport-CC算法中码率控制的相关代码;

        congestion_controller:存放的是用于判定是否有拥塞发生的相关代码;

        remote_bitrate_estimator:存放是的是Goog-REMB评估算法的相关代码(该算法实际已被淘汰,只是因为兼容的问题所以一直保留);

        pacing:存放的是用于平滑发送数据,防止网络的数据出现堆积的代码。

        utility:线程相关工具;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值