视频数据由VideoCapture 采集后交给VideoSource,VideoSource 通过VideoBroadcaster成员,把数据发送给每个VideoSink(VideoEncoder和LoacalPreview)。VideoEncoder把视频数据编码之后交给网络层进行发送,LoacalPreview把视频数据渲染到屏幕上。
从网络层收到视频数据后,先交给VideoEncoder LoacalPreview进行解码,解码之后交给VideoBroadcaster,最后由VideoBroadcaster分发给每个VideoSink(RemoteRenderer)。RemoteRenderer把视频数据渲染到屏幕上。
1、视频采集
VideoCaptureModule ,定义了启停采集(启动时设置参数)和视频数据回调的接口 RegisterCaptureDataCallback,内部还有一个DeviceInfo类,定义了获取相机设备信息的接口。
webrtc::videocapturemodule::VideoCaptureImpl 是webrtc::VideoCaptureModule的子类,其中平台无关的视频采集逻辑实现,主要是调用数据回调,以及进行必要的数据格式转换。
此外,webrtc还定义了一个VideoCap