TPEPlatform/WebRTC B2G: Difference between revisions

Jump to navigation Jump to search
Line 116: Line 116:


Here are the threads in WebRTC(signaling threads are excluded)
Here are the threads in WebRTC(signaling threads are excluded)
# Media stream graph run thread: audio/video synchronization and dispatching
#(MediaStreamGraph) Media stream graph run thread: audio/video coding.(MediaStreamGraphImpl::RunThread in MediaStreamGraph.cpp)
# socket transport service: send/receive packets
#(Network) Socket transport service: send/receive packets. (Entry point of user space callback function??)
# camera capture thread (from camera api): get images from camera
#(Capture) Camera capture thread (from camera api): recieve image frame from camera.(Entry point of user space callback function??)
# audio capture thread: get audio streaming from mic
#(Capture) Audio capture thread: recieve audio frame from microphone. (Entry point of user space callback function??)
# process thread (worker thread in GIPS): doing many other tasks. Process thread has a task queue for client to inject tasks into.  
#(Process) Process thread (worker threads in GIPS): doing many other tasks. Process thread has a task queue for client to inject tasks into.  
Basically, we may divide these threads into three categories.  
 
*'''encode path'''
In a nut shell, we can divide these threads into three categories.  
**Encode path start from capture(getUserMedia).
===encode path===
**MediaPipelineListner listen update notification(NotifyQueueTrackChanges) from MSG Run Thread and
*Encode path start from capture(getUserMedia).
***Encode audio chunks in MSG Run Thread.
*MediaPipelineListner listen update notification(NotifyQueueTrackChanges) from MSG Run Thread and
***Encode video chunks in another thread(ViECapter Thread).
**Encode audio chunks in MSG Run Thread.
****Put Encoded media data into Transport Service Thread to network
**Encode video chunks in another thread(ViECapter Thread).
***Put Encoded media data into Transport Service Thread to network
<gallery>
<gallery>
FIle:Camera_cap_.jpg|Camera capture
FIle:Camera_cap_.jpg|Camera capture
File:MicCapture_.jpg|Mic capture
File:MicCapture_.jpg|Mic capture
</gallery>
</gallery>
*'''decode path'''
===Decode path===
**''Steven, please update whole story from network/ jitter buffer to renderer.''
*''Steven, please update whole story from network/ jitter buffer to renderer.''
<gallery>
<gallery>
File:AudioDecode_.jpg|Audio decode
File:AudioDecode_.jpg|Audio decode
Line 139: Line 140:
File:ReceiveRTPPakcets_.jpg|RTP receive  
File:ReceiveRTPPakcets_.jpg|RTP receive  
</gallery>
</gallery>
*'''Process dispatcher threads'''
===Process dispatcher threads===
**RTCP - NACK/ Statistic  
**RTCP - NACK/ Statistic  
<gallery>
<gallery>
Confirmed users
1,643

edits

Navigation menu