MCU_node

MCU服务节点结构:

MCU_node

  • 原则:对象实例都使用智能指针(避免裸指针),资源维护者使用shared_ptr/unique_ptr,其他关联引用使用weak_ptr
  • av_room对象由erizo_agent维护(资源/控制),同时av_room维护内部所有资源
  • 创建房间后初始化media_server,media_server注册到av_room,随av_room销毁释放
  • 添加媒体流时创建见media_channel, 注册到media_server和av_room

关键类

AVRoom

  • 维护media_server对象
  • 维护media_channel列表(增删等),实现混画、混音、rtmp推流
  • 混流参数变更

Media

  • udp接收媒体数据
  • 维护streamID/ssrc/media_channel的映射关系,媒体数据分发
  • media_channel增删
  • 流量统计(TODO)

MediaChannel

  • 媒体数据(RTP包)解码/同步/渲染
  • Nack请求/PLI请求