WebRTCDemo.apk代码走读(九):VoiceEngine和VideoEngine主要的控制类说明

转载注明出处http://blog.csdn.net/wanghorse

1. VideoEngineImpl

VideoEngine对外提供的集成接口实现类, 其继承了VideoEngine对外提供的所有接口实现类,包括

ViEBaseImpl/ViECaptureImpl/ViEFileImpl/ViEImageProcessImpl/ViENetworkImpl/ViERTP_RTCPImpl/ViEExternalCodecImpl/VideoEngine

2. ViEBaseImpl

VideoEngine对外提供的操作类,基本都有此类提供,如创建删除通道、开始停止发送、开始停止接受等

3. ViEChannel

VideoEngine的channel类,一个视频收发通道一个VieChannel对象, 管理channel的信息,管理ModuleRtpRtcpImpl,VideoCodingModuleImpl

负责channel处理流程控制,如开始发送、接受等;音频通道的链接

4. ViEEncoder

类似ViEChannel,在某些应用场景下可以替换VieChannel;但只负责发送Channel

5. ViERenderImpl

VideoEngine的Render流程控制类,控制Render的流程,如启动、暂停,处理回调数据,管理具体的Render操作类; 注册进VieChannel

6. ViECaptureImpl

VideoEngine中Capture的流程控制类,控制Capture流程,管理具体的Capture操作类,和VIEEncoder关联起来

7. VoiceEngineImpl

VoiceEngine对外提供的集成接口类,其集成了VoiceEngine对外提供的所有接口实现类,包括

VoEAudioProcessingImpl/VoECodecImpl/VoEDtmfImpl/VoEExternalMediaImpl/VoEFileImpl/VoEHardwareImpl/VoENetEqStatsImpl/VoENetworkImpl/VoERTP_RTCPImpl/VoEVideoSyncImpl/VoEVolumeControlImpl/VoEBaseImpl

8. VoEBaseImpl

VoiceEngine对外提供的基本操作类,包括创建删除通道,开始停止发送,开始停止接受等; 管理放音设备和采集设备

其继承AudioTransport类,还需处理抓取的音频(送至channel中),和需要放音的音频(从channel中取)

9. Channel

VoiceEngine的channel类,一个音频收发通道一个Channel对象,管理channel的信息,管理AudioCodingModule,ModuleRtpRtcpImpl,AudioProcessing等

控制channel的处理流程

时间: 2024-12-25 12:58:06

WebRTCDemo.apk代码走读(九):VoiceEngine和VideoEngine主要的控制类说明的相关文章

WebRTCDemo.apk代码走读(一):初始化

MediaEngine.java:MediaEngine初始化 转载注明出处http://blog.csdn.net/wanghorse new VoiceEngine/VoiceEngine_create new VoiceEngineData webrtc::VoiceEngine::Create GetVoiceEngine new VoiceEngineImpl 初始化SharedData ProcessThread::CreateProcessThread OutputMixer::C

WebRTCDemo.apk代码走读(三):音频接收流程

收到音频包 UdpSocketManagerPosixImpl::Run UdpSocketManagerPosixImpl::Process UdpSocketPosix::HasIncoming(recvfrom) UdpTransportImpl::IncomingRTPCallback UdpTransportImpl::IncomingRTPFunction VoiceChannelTransport::IncomingRTPPacket VoENetworkImpl::Receive

WebRTCDemo.apk代码走读(八):代码目录结构

转载注明出处http://blog.csdn.net/wanghorse ├── ./base //基础平台库,包括线程.锁.socket等 ├── ./build //编译脚本,gyp ├── ./common_audio //基础公共的音频处理 │ ├── ./common_audio/include //就一个类型转换头文件 │ ├── ./common_audio/resampler //音频重采样代码 │ ├── ./common_audio/signal_processing //音

WebRTCDemo.apk代码走读(六):视频发送流程

转载注明出处http://blog.csdn.net/wanghorse JNI调用 ProvideCameraFrame VideoCaptureAndroid::OnIncomingFrame VideoCaptureImpl::IncomingFrame 申请内存,转换层I420 VideoCaptureImpl::DeliverCapturedFrame 计算时间戳 ViECapturer::OnIncomingCapturedFrame OveruseFrameDetector::Fr

WebRTCDemo.apk代码走读(二):发送Call

转载注明出处http://blog.csdn.net/wanghorse VoiceEngine_startListen VoEBaseImpl::StartReceive channelPtr->StartReceiving设置channel的receiving的状态 VoiceEngine_startPlayout VoEBaseImpl::StartPlayout VoEBaseImpl::StartPlayout--没有channelId,涉及到硬件,所以是唯一全局的 AudioDevi

WebRTCDemo.apk代码走读(四):音频发送流程

转载注明出处http://blog.csdn.net/wanghorse 发送音频 OpenSlesInput::RecorderSimpleBufferQueueCallback OpenSlesInput::RecorderSimpleBufferQueueCallbackHandler,保存数据 OpenSlesInput::CbThreadImpl AudioDeviceBuffer::SetRecordedBuffer, 复制数据 AudioDeviceBuffer::SetVQEDa

WebRTCDemo.apk代码走读(五):视频接受流程

转载注明出处http://blog.csdn.net/wanghorse 收到视频包 UdpSocketManagerPosixImpl::Run UdpSocketManagerPosixImpl::Process UdpSocketPosix::HasIncoming(recvfrom) UdpTransportImpl::IncomingRTPCallback UdpTransportImpl::IncomingRTPFunction VideoChannelTransport::Inco

WebRTCDemo.apk代码走读(七):线程关系

转载注明出处http://blog.csdn.net/wanghorse webrtc实际的ProcessThreadImpl线程主要有: 1. VoiceChannelTransport下的CreateThread(UdpSocketManagerPosixImpl::Run), 用于收发网络包 2. AudioTrackJni::PlayThreadProcess,用于播放 3. OpenSlesInput下的SLAndroidSimpleBufferQueueItf的内部线程,主要是抓取音

Qt Creator插件工作流程代码走读

Qt Creator有个很风骚的插件管理器PluginManager,还有个很骚包的插件说明PluginSpec.基本上,所有的Qt程序的入口都是传统的C程序一样,代码流程从main()函数开始.  在main()中,先初始化用于国际化的translator,然后获取程序配置settings,接着就在栈上创建了PluginManager对象,之后为PluginManager设置搜索用的文件扩展名pluginspec,设置配置,再设置插件搜索路径.  设置好插件搜索路径后,PluginManage