SRS4.0源码分析-main
本文采用的 SRS 版本是 4.0-b8 , 下載地址:github
本文開始講解 SRS 的入口文件。SRS 源碼里 其實(shí)有 3 個?main()?函數(shù),分別在?srs_main_ingest_hls.cpp?,srs_main_mp4_parser.cpp,srs_main_server.cpp?3 個文件里面,如圖:
不過?srs?可執(zhí)行文件,是srs_main_server.cpp?生成的,所以先分析?srs_main_server.cpp,其他兩個文件不管。
main()?函數(shù)的流程圖如下:
main()?函數(shù)的內(nèi)部邏輯實(shí)際上比較簡單,因?yàn)樗械牟僮鞫挤庋b在其他函數(shù)里面。特別是?srs_thread_initialize()?跟?run_directly_or_daemon()?函數(shù)。
所以 main() 函數(shù)本文只會提及一些重點(diǎn),重點(diǎn)如下:
1,srs_thread_initialize()?里面有非常多的初始化操作,日志操作,配置文件,等等,請看《SRS4.0源碼分析-srs_thread_initialize》。
2,srs_assert(srs_is_little_endian());,srs 只支持小端序機(jī)器,大端序機(jī)器不支持。
3,用了大量的?GPERF?來檢測內(nèi)存泄漏,具體請看 《SRS4.0源碼分析-內(nèi)存泄漏檢測》。
3,show_macro_features(),這個函數(shù)打印 srs 支持哪些功能,例如 srt,dvr 是否支持。
4,run_directly_or_daemon()?,此函數(shù)開始運(yùn)行 SRS,可能在前臺運(yùn)行,也可能以守護(hù)進(jìn)程運(yùn)行。
相關(guān)閱讀:
1,《SRS流媒體服務(wù)器基本流程》
TODO:
1,寫一篇文章講解?gperftools?的使用。
由于筆者的水平有限, 加之編寫的同時還要參與開發(fā)工作,文中難免會出現(xiàn)一些錯誤或者不準(zhǔn)確的地方,懇請讀者批評指正。如果讀者有任何寶貴意見,可以加我微信 Loken1。QQ:2338195090。
推薦一個零聲學(xué)院免費(fèi)公開課程,個人覺得老師講得不錯,分享給大家:
Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒體,CDN,P2P,K8S,Docker,TCP/IP,協(xié)程,DPDK等技術(shù)內(nèi)容,立即學(xué)習(xí)
總結(jié)
以上是生活随笔為你收集整理的SRS4.0源码分析-main的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 精品英文字体:20款免费的的圣诞节艺术字
- 下一篇: ZCMU 1600: 卡斯丁狗要吃糖葫芦