webrtc 源碼結構

api
WebRTC 接口層。包括 DataChannel, MediaStream, SDP相關的接口。各瀏覽器都是經過該接口層調用的 WebRTC。
call
存放的是 WebRTC 「呼叫(Call)」 相關邏輯層的代碼。
audio
存放音頻網絡邏輯層相關的代碼。音頻數據邏輯上的發送,接收等代碼。
video
存放視頻邏輯層及視頻引擎層的相關的代碼。視頻數據邏輯上的發送,接收等代碼。
視頻引擎層就是指如何控制視頻採集,處理和編解碼操做的邏輯。
sdk
存放了 Android 和 IOS 層代碼。如視頻的採集,渲染代碼都在這裏。
pc
存放一些業務邏輯層的代碼。如 channel, session等。
common_audio
存放一些音頻的基本算法。包括環形隊列,博利葉算法,濾波器等。
common_video
存放了視頻算法相關的經常使用工具,如libyuv, sps/pps分析器,I420緩衝器等。
modules
這個目錄是 WebRTC 代碼中最重要的一個目錄。裏面包括了音視頻的採集,處理,編解碼器,混音等。
modules 目錄下還包括如下幾個子目錄:
audio_coding : 音頻編解碼相關代碼。
audio_conference_mixer : 會議混音 相關代碼。
audio_device : 音頻 採集與音頻播放 相關代碼。
audio_mixer : 混音 相關代碼,這部分是後加的。
audio_processing : 音頻先後處理的相關代碼。
bitrate_controller : 碼率控制 相關代碼。
congestion_controller : 流控相關的代碼。
desktop_capture : 桌面採集相關的代碼。
media_file : 播放媒體文件相關的代碼。
pacing : 碼率探測 相關的代碼。
remote_bitrate_estimator : 遠端碼率估算相關的代碼。
rtp_rtcp : rtp/rtcp協議相關代碼。
video_capture : 視頻採集相關的代碼。
video_coding : 視頻編解碼相關的代碼。
video_processing : 視頻先後處理相關的代碼。
media
存放媒體相關的代碼。
p2p
p2p相關的代碼。
rtc_base
存放了一些基礎代碼。如線程,事件,socket等相關的代碼。
rtc_tools
存放了一些工具代碼。如視頻幀比較,I420轉RGB,視頻幀分析。
stats
存放各類數據統計相關的類。
libjingle
網絡庫。
system_wrapper
與操做系統相關的代碼,如 CPU特性,原子操做,讀寫鎖,時鐘等。
相關文章
相關標籤/搜索