webrtc(3) 模块

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/NB_vol_1/article/details/82118086

模块

  • webrtc是基于模块的,每个模块的工作职责分的很清楚,各个模块之间的交互通过回调函数、信号槽、消息机制进行

模块流水线

发送侧

Created with Raphaël 2.1.2 开始 采集模块 编码模块 平滑发送模块 RTP打包模块 网络发送 结束

接收侧

Created with Raphaël 2.1.2 开始 网络接收 RTP解包模块 jitter buffer 显示模块 结束

模块的特点

  • 每一个模块都由一个线程来执行

  • 每个模块有一个基类Module,它的定义如下,需要注意的是,有的类名带有Module,但是并没有继承Module,因此这个模块可能不能单独由线程来执行

class Module {
public:
virtual int64_t TimeUntilNextProcess() = 0;
virtual void Process() = 0;
virtual void ProcessThreadAttached(ProcessThread* process_thread) {}
protected:
virtual ~Module() {}
};

猜你喜欢

转载自blog.csdn.net/NB_vol_1/article/details/82118086