WebRTC 源碼目錄結構

轉自:https://blog.csdn.net/garrylea/article/details/77899109

目錄結構分析

api
WebRTC 接口層。包括 DataChannel, MediaStream, SDP相關的接口。各瀏覽器都是通過該接口層調用的 WebRTC。

call
存放的是 WebRTC “呼叫(Call)” 相關邏輯層的代碼。

audio
存放音頻網絡邏輯層相關的代碼。音頻數據邏輯上的發送,接收等代碼。

video
存放視頻邏輯層及視頻引擎層的相關的代碼。視頻數據邏輯上的發送,接收等代碼。

視頻引擎層就是指如何控制視頻採集,處理和編解碼操作的邏輯。

voice_engine
存放音頻引擎代碼。主要是控制音頻的採集,處理,編解碼的操作。

這個目錄後面可能也會被拿掉。

sdk
存放了 Android 和 IOS 層代碼。如視頻的採集,渲染代碼都在這裏。

pc
存放一些業務邏輯層的代碼。如 channel, session等。

common_audio
存放一些音頻的基本算法。包括環形隊列,博利葉算法,濾波器等。

common_video
存放了視頻算法相關的常用工具,如libyuv, sps/pps分析器,I420緩衝器等。

modules
這個目錄是 WebRTC 代碼中最重要的一個目錄。裏面包括了音視頻的採集,處理,編解碼器,混音等。

視頻的渲染部分已經從這裏刪除了。因爲沒有瀏覽器需要用到這裏的渲染代碼。如果使用Native API 做二次開發,需要自己寫視頻渲染相關的代碼。

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特性,原子操作,讀寫鎖,時鐘等。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章