WebRTC的线程事件处理

1. 不同平台下处理事件的API:

  1. Linux系统下,处理事件的API是epoll或者select;
  2. Windows系统下,处理事件的API是WSAEventSelect,完全端口;
  3. Mac系统下,kqueue

2. WebRTC下的事件处理类:

  1. NullSocketServer(处理无socket的事件)(工作线程)
  2. PhysicalSocketServer(处理有socket事件)(网络线程)

事件如何协调线程工作:

信令线程--->触发事件--->公共对象(NullSocketServer或PhysicalSocketServer)(唤醒睡眠线程)--->等待事件(睡眠状态)--->工作线程/网络线程

webrtc下事件的发生:

等待线程处理逻辑:

cpp 复制代码
while(true)
{
	...
	Get(&msg, ...); // 如果没有时间,在Get()函数中睡眠等待事件
	...
	Dispatch(&msg);
	...
}

Get函数:

如果队列不为空,则取出事件后调用Dispatch处理;如果队列为空,则调用Wait等待事件发生

Wait函数:

相关推荐
EasyDSS1 小时前
EasyDSS如何基于LiveKit/AI大模型/AI会议助手/语音转写STT技术破解音视频应用核心痛点
人工智能·音视频·webrtc·语音识别·点播技术·流媒体直播
EasyDSS2 天前
音视频技术迭代下EasyDSS直播点播视频会议能力的发展方向与价值升级
音视频·webrtc·语音识别·点播技术·流媒体直播
你好音视频2 天前
WebRTC 视频编码丢帧与降低分辨率机制深度剖析
音视频·webrtc
EasyDSS2 天前
WebRTC/语音转文字STT/AI语言大模型重构EasyDSS视频会议
音视频·webrtc·语音识别·hls·实时字幕
CrystalShaw2 天前
WebRTC QoS方法之NetEQ在流量卡下应用的局限
webrtc
用户59049696941602 天前
媒体流的发送(二):Track 的参数是如何写进SDP的
webrtc
TSINGSEE2 天前
WebRTC/视频转码/RTMP推流EasyDSS何让每一类用户都能实现高效便捷操作
音视频·webrtc·实时音视频·语音转写·ai字幕
爱丽_2 天前
WebRTC 从信令到 NAT 穿透(SDP / ICE / STUN / TURN)
webrtc
却道天凉_好个秋3 天前
WebRTC(十五):NAT穿透机制深度解析
后端·webrtc·stun·turn·ice·net网络穿透
Arman_3 天前
深入浅出 RTP 协议:从原理到 WebRTC 实践
webrtc·tcp