码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-05-09 15:00:57      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:android   webrtc   video   语音合成   线程   

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


webrtc实际的ProcessThreadImpl线程主要有:
1. VoiceChannelTransport下的CreateThread(UdpSocketManagerPosixImpl::Run), 用于收发网络包
2. AudioTrackJni::PlayThreadProcess,用于播放
3. OpenSlesInput下的SLAndroidSimpleBufferQueueItf的内部线程,主要是抓取音频
4. VoiceEngine_startSend的线程OpenSlesInput::StartRecording,CreateThread(CbThread)创建硬件资源,用于处理硬件抓取的音频包
5. ViEChannel下的ThreadWrapper::CreateThread(ChannelDecodeThreadFunction),用于视频解码
6. VideoEngine_startRender的线程CreateThread(IncomingVideoStream::IncomingVideoStreamProcess),用来出来已经解码完成的视频数据
7. VideoEngine_startRender的线程CreateThread(VideoRenderAndroid::JavaRenderThreadProcess),用于硬件层面的Render
8. JAVA线程,调用ProvideCameraFrame
9. VideoEngine_allocateCaptureDevice的线程CreateThread(ViECapturer::ViECaptureProcess),用于处理抓取的探头桢




1. 如果是音频接收, 则直接在线程1中收取网络音频包,RTP包解析,NETEQ处理,队列等等; 在线程2中解码,语音合成,放音等
2. 如果是音频发送,则在线程3中(系统API内部)完成音频抓取,并放入webrtc的程序队列; 在线程4中处理音频、编码、打包、发送等
3. 如果是视频发送, 则在线程1中收取网络视频包,解析RTP等; 在线程5中做视频解码; 在线程6中处理解码数据; 在线程7中完成硬件层面的Render
4. 如果是视频发送, 在线程8中抓取硬件摄像头数据,线程9用于处理摄像头数据,编码,RTP打包,发送

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

标签:android   webrtc   video   语音合成   线程   

原文地址:http://blog.csdn.net/wanghorse/article/details/45601081

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!