OWT WebRTC win客户端示例程序UML源码分析

目录

一,对象创建, 连接OWT服务器过程

1.1 主要类功能概述:

1.2 用户点击“connect”, 对象创建与连接时序图:

二,订阅流

2.1   订阅流 subscribe创建并初始化peerconnection

2,2 订阅流 CreateOffer

2,3 订阅流交换Answer SDP

三,发布流

3.1Publish创建过程

3.2 Publish_Offer

3.3 Publish_Answer

3.4 Publish_failed

 四,解码过程

4.1 解码器创建过程

4.2 解码过程

五,编码过程

5.1 编码器创建和初始化过程

5.2 编码并发送RTP/RTCP过程


      OWT在windows的客户端,是了解OWT与webrtc C++代码很好的途径,下载编译好之后,在visual studio可以同时单步调试 OWT客户端、OWT SDK、WebRTC全部C++源代码,方便理解掌握源码结构。下载编译教程见:visual studio 2019单步调试OWT webrtc client环境搭建

一,对象创建, 连接OWT服务器过程

1.1 主要类功能概述:

CConfSampleMFCDlg: 主要窗口对话框,显示合成流视频,转发流视频,见下图

OWT WebRTC win客户端示例程序UML源码分析_第1张图片

CConfServer: 用户点击"connect"按钮,弹出的对话框,要求用户输入OWT server URL,见下图

 OWT WebRTC win客户端示例程序UML源码分析_第2张图片

 owt::base::VideoRenderWindow: owt sdk封装的视频输出窗口,需要调用层提供窗口句柄hwnd;

owt::conference::ConferenceClient : owt sdk封装的视频会议房间管理类,加入、退出指定的房间:Join()/Leave(), 发布流到当前房间:Publish(), 从当前房间订阅流:Subscribe();发送文本消息:Send();

owt::conference::ConferenceSocketSignalingChannel: 会议房间与OWT server之间的信令通道,基于c++ socket.io库(与js socket.io 相似)

1.2 用户点击“connect”, 对象创建与连接时序图:

OWT WebRTC win客户端示例程序UML源码分析_第3张图片

二,订阅流

2.1   订阅流 subscribe创建并初始化peerconnection

owt::conference::ConferencePeerConnectionChannel: 管理一个与MCU的PeerConnection,以及它基于Socket.IO的信令通道ConferenceSocketSignalingChannel

owt::base::PeerConnectionChannel:

      持有并管理一个webrtc::PeerConnectionInterface peer_connection_

VideoEncoderFactory: 视频编码器工厂类

VideoDecoderFactory: 视频解码器工厂类

webrtc:PeerConnectionInterface:  WebRTC 目录内的PeerConnection类,最主要的接口类

 OWT WebRTC win客户端示例程序UML源码分析_第4张图片

2,2 订阅流 CreateOffer

OWT WebRTC win客户端示例程序UML源码分析_第5张图片

 

2,3 订阅流交换Answer SDP

OWT WebRTC win客户端示例程序UML源码分析_第6张图片

三,发布流

3.1Publish创建过程

OWT WebRTC win客户端示例程序UML源码分析_第7张图片

NOTE: ConferencePeerConnectionChannel创建过程,与2.1节一致,会创建对应的编解码器工厂类

3.2 Publish_Offer

 ​OWT WebRTC win客户端示例程序UML源码分析_第8张图片

Note: Publish Offer/Answer过程,与2.2节、 2.3节 Subscribe 过程一致,只是功能参数不同

3.3 Publish_Answer

OWT WebRTC win客户端示例程序UML源码分析_第9张图片

3.4 Publish_failed

这是失败的执行顺序之一:

OWT WebRTC win客户端示例程序UML源码分析_第10张图片

 四,解码过程

4.1 解码器创建过程

创建外层对象:

OWT WebRTC win客户端示例程序UML源码分析_第11张图片

 创建decoder实例:

OWT WebRTC win客户端示例程序UML源码分析_第12张图片

4.2 解码过程

OWT WebRTC win客户端示例程序UML源码分析_第13张图片

五,编码过程

5.1 编码器创建和初始化过程

OWT WebRTC win客户端示例程序UML源码分析_第14张图片

5.2 编码并发送RTP/RTCP过程

OWT WebRTC win客户端示例程序UML源码分析_第15张图片

你可能感兴趣的:(OWT,git,webrtc,网络,网络协议,p2p)